您好,登錄后才能下訂單哦!
mysql數(shù)據(jù)庫磁盤io高的排查是怎樣的,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
最近,數(shù)據(jù)庫會報磁盤IO高的告警,但是cpu不高。
故障
● 主機名稱: xxxx
● 告警信息: Disk I/O is overloaded on xxxx
● 告警時間: 2020.04.10-13:09:06
● 主機地址: xxxxxx
● 當前狀態(tài): 36.14 %
數(shù)據(jù)庫磁盤io高時,執(zhí)行的sql如下:
|
也就是數(shù)據(jù)庫會批量的執(zhí)行insert ignore into 語句。
|
可以看到,每個事務都在flushing log中,說明刷redo log比較慢??赡苁莚edo log 比較小。
|
事實證明,innodb_log_file_size確實比較小,才50M,建議增大至2個4G。
繼續(xù)分析:
|
上述看到log thread 掛起的fsync()操作數(shù)據(jù)為1,說明log thread刷盤有等待。
另外,last checkpoint落后于log flushed up to太多,接近于redo log文件的大小,這時會觸發(fā)innodb瘋狂刷redo,從而導致磁盤io高,對性能影響非常糟糕。
還有,這個數(shù)據(jù)庫的innodb buffer pool也很小,使用的默認值為128M,也需要調大。
優(yōu)化方法:
設置innodb_log_file_size=4G,設置innodb_buffer_pool_size=4G。
經(jīng)過觀察,數(shù)據(jù)庫磁盤io高、cpu不高的問題消失。
看完上述內容,你們掌握mysql數(shù)據(jù)庫磁盤io高的排查是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。