国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL服務器 IO 100%的分析與優化方案

2024-07-25 19:09:10
字體:
來源:轉載
供稿:網友

前言

壓力測試過程中,如果因為資源使用瓶頸等問題引發最直接性能問題是業務交易響應時間偏大,TPS逐漸降低等。而問題定位分析通常情況下,最優先排查的是監控服務器資源利用率,例如先用TOP 或者nmon等查看CPU、內存使用情況,然后在排查IO問題,例如網絡IO、磁盤IO的問題。 如果是磁盤IO問題,一般問題是SQL語法問題、MYSQL參數配置問題、服務器自身硬件瓶頸導致IOPS吞吐率問題。

本文主要給大家介紹的是關于MySQL服務器 IO 100%的分析與優化方案,下面話不多說了,來一起看看詳細的介紹吧

【問題】

有臺MySQL 5.6.21的數據庫實例以寫入為主,IO %util接近100%

MySQL,服務器,IO,優化方案

寫入IOPS很高

MySQL,服務器,IO,優化方案

【分析過程】

1、通過iotop工具可以看到當前IO消耗最高的mysql線程

MySQL,服務器,IO,優化方案

2、查看線程49342的堆棧,可以看到正在進行redo log的刷新,對應的是9號文件

MySQL,服務器,IO,優化方案

3、9號文件對應的是redo log的第一個文件

MySQL,服務器,IO,優化方案

為什么mysql進程會頻繁的刷新redo log文件,要結合redolog的刷盤策略來分析,關鍵是innodb_flush_log_at_trx_commit參數,

默認是1,最安全,但在寫壓力大的情況下,也會帶來較大的性能影響,每次事務提交時MySQL都會把log buffer的數據寫入log file,并且flush(刷到磁盤)中去。

MySQL,服務器,IO,優化方案

結合這個集群的寫入場景來看,大部分都是小事務的寫入,每次事務提交都會觸發刷盤動作,這種場景下通過增大innodb_log_buffer_size和innodb_log_file_size的優化效果不明顯

MySQL,服務器,IO,優化方案

【優化方案】

1、應用層面,對于寫壓力大的系統,可以將單條的insert語句優化為小批量的insert語句,這樣事務commit的次數減少,redo log刷盤減少,性能理論上會有提升

2、MySQL層面,對于日志類型的系統,如果允許宕機的情況下少量數據丟失,可以將innodb_flush_log_at_trx_commit參數調整為2,

當設置為2時,則在事務提交時只做write操作,只保證寫到系統的page cache,因此實例crash不會丟失事務,但宕機則可能丟失事務

在這臺服務器上測試,將參數調整為2時,IO的請求從200M/S降到約10M/S壓力會減少10倍以上

MySQL,服務器,IO,優化方案

3、系統層面,更換性能更佳的磁盤

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 融水| 金川县| 阳西县| 宁强县| 福清市| 沭阳县| 和硕县| 开阳县| 井陉县| 延吉市| 枝江市| 威信县| 邵阳县| 聊城市| 台南市| 晋宁县| 内黄县| 永年县| 天长市| 白城市| 水富县| 迁安市| 临泉县| 夏邑县| 安康市| 远安县| 中宁县| 车致| 右玉县| 枞阳县| 鄂尔多斯市| 桦南县| 博白县| 灵寿县| 宁夏| 筠连县| 武宁县| 临高县| 斗六市| 册亨县| 咸宁市|