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 磁碟 IO 過高MySql
- MySQL之磁碟I/O過高排查MySql
- MySQL資料庫環境如何調整磁碟IO排程演算法MySql資料庫演算法
- 資料庫高io問題調查資料庫
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- MySQL資料庫高可用方案MySql資料庫
- 磁碟IO過高時的處理辦法
- mysql資料庫Cpu利用率100%問題排查MySql資料庫
- Python高階 -- 07 MySQL資料庫PythonMySql資料庫
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- 瀚高資料庫相容Mysql的unhex函式資料庫MySql函式
- 資料庫IO有多慢?資料庫
- MySQL資料庫SYS CPU高的可能性分析MySql資料庫
- MySQL資料庫架構——高可用演進MySql資料庫架構
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- mysql資料庫的索引MySql資料庫索引
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- MySQL資料庫中timediff()函式,在瀚高資料庫中如何替換使用?MySql資料庫函式
- 資料庫(MySQL)資料庫MySql
- MYSQL資料庫MySql資料庫
- 資料庫-MySQL資料庫MySql
- 資料庫 MySQL資料庫MySql
- 記憶體與IO,磁碟IO,網路IO記憶體
- 磁碟佔用高問題如何排查?三步教你搞定
- Mysql資料庫-資料模型MySql資料庫模型
- MySQL資料庫資料管理MySql資料庫
- ORACLE 資料庫11.2.0.4 單例項伺服器IO等待高問題分析Oracle資料庫單例伺服器
- MySQL資料庫實現高可用架構之MHA的實戰MySql資料庫架構
- MySQL預設資料庫之mysql庫MySql資料庫
- PG資料庫IO最佳化技巧資料庫
- MySQL資料庫的恢復MySql資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【MySQL 資料庫】MySQL目錄MySql資料庫
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 磁碟IO效能監控