mysql資料庫磁碟io高的排查
最近,資料庫會報磁碟IO高的告警,但是cpu不高。
故障
● 主機名稱: xxxx
● 告警資訊: Disk I/O is overloaded on xxxx
● 告警時間: 2020.04.10-13:09:06
● 主機地址: xxxxxx
● 當前狀態: 36.14 %
資料庫磁碟io高時,執行的sql如下:
也就是資料庫會批次的執行insert ignore into 語句。
可以看到,每個事務都在flushing log中,說明刷redo log比較慢。可能是redo log 比較小。
事實證明,innodb_log_file_size確實比較小,才50M,建議增大至2個4G。
繼續分析:
上述看到log thread 掛起的fsync()運算元據為1,說明log thread刷盤有等待。
另外,last checkpoint落後於log flushed up to太多,接近於redo log檔案的大小,這時會觸發innodb瘋狂刷redo,從而導致磁碟io高,對效能影響非常糟糕。
還有,這個資料庫的innodb buffer pool也很小,使用的預設值為128M,也需要調大。
最佳化方法:
設定innodb_log_file_size=4G,設定innodb_buffer_pool_size=4G。
經過觀察,資料庫磁碟io高、cpu不高的問題消失。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28916011/viewspace-2685616/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mysql】是什麼導致MySQL資料庫伺服器磁碟IO高?MySql資料庫伺服器
- MySQL 磁碟 IO 過高MySql
- MySQL之磁碟I/O過高排查MySql
- MySQL資料庫環境如何調整磁碟IO排程演算法MySql資料庫演算法
- 資料庫高io問題調查資料庫
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- 【Mysql】JDB2導致磁碟io使用率高 導致mysql延遲過高MySqlDB2
- MySQL資料庫高可用方案MySql資料庫
- 記一次 MySQL 資料庫問題排查MySql資料庫
- 磁碟IO過高時的處理辦法
- MySQL資料庫的高可用性分析MySql資料庫
- 將高版本mysql資料庫的資料匯入低版本mysql中MySql資料庫
- 瀚高資料庫相容Mysql的unhex函式資料庫MySql函式
- Python高階 -- 07 MySQL資料庫PythonMySql資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- 資料庫IO有多慢?資料庫
- Oracle資料庫伺服器IO高的分析方案和案例探討Oracle資料庫伺服器
- 執行ORACLE資料庫的AIX Kernel CPU使用率高達40%的排查Oracle資料庫AI
- MySQL資料庫SYS CPU高的可能性分析MySql資料庫
- MySQL資料庫架構——高可用演進MySql資料庫架構
- MySQL·專家投稿·MySQL資料庫SYSCPU高的可能性分析MySql資料庫
- MySQL資料庫高併發最佳化配置MySql資料庫
- 騰訊雲推高IO版雲資料庫,滿足遊戲等IO密集型行業需求資料庫遊戲行業
- 磁碟佔用高問題如何排查?三步教你搞定
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- 紹Oracle資料庫的最佳化之資料庫磁碟I/OOracle資料庫
- 【資料庫】mysql資料庫索引資料庫MySql索引
- Oracle 11g 資料庫伺服器CPU、IO負載高的故障排除流程Oracle資料庫伺服器負載
- 執行oracle資料庫的AIX系統記憶體使用率高時的排查思路Oracle資料庫AI記憶體
- mysql資料庫的索引MySql資料庫索引
- 【轉】Oracle資料庫優化之資料庫磁碟I/OOracle資料庫優化
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- 記憶體與IO,磁碟IO,網路IO記憶體
- 【MySql】mysql 資料庫資料訂正MySql資料庫
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- oracle 資料庫磁碟組屬性Oracle資料庫
- oracle 資料庫磁碟組屬性Oracle資料庫