中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql數據庫磁盤io高的排查是怎樣的

發布時間:2021-10-08 16:25:56 來源:億速云 閱讀:770 作者:柒染 欄目:MySQL數據庫

mysql數據庫磁盤io高的排查是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

     最近,數據庫會報磁盤IO高的告警,但是cpu不高。

故障 
● 主機名稱: xxxx
● 告警信息: Disk I/O is overloaded on xxxx 
● 告警時間: 2020.04.10-13:09:06 
● 主機地址: xxxxxx
● 當前狀態: 36.14 %

   數據庫磁盤io高時,執行的sql如下:

2527 | xxxx | 172.xxxx:35072 | xxxx | Query | 0 | update | insert ignore into `xxxxannotations` (`trace_ |

2528 |xxxn | 172.xxxx:37270 | xxxx | Query | 0 | update | insert ignore into `xxxxannotations` (`trace_id`, `s

2530 | xxxx | 172.xxxx:44210 | xxxx | Query | 0 | update | insert into `xxxx_spans` (`trace_id`, `id`, `debug`, `start_ts`, `name

2531 |xxxx | 172.xxxx:45910 | xxxx | Query | 0 | query end | insert ignore into `xxxx_annotations`4'', -14081082788031) |

2532 | xxx | 172.xxxx:58890 | xxxx | Sleep | 0 | | NULL

    也就是數據庫會批量的執行insert ignore into 語句。

mysql> show engine innodb status \G

 

---TRANSACTION 1557551308, not started flushing log

 

---TRANSACTION 1557551309, not started flushing log

 

---TRANSACTION 1557551310, not started flushing log

 

---TRANSACTION 1557551311, not started flushing log

 

---TRANSACTION 1557551313, not started flushing log

 

---TRANSACTION 1557551304, not started flushing log

............


    可以看到,每個事務都在flushing log中,說明刷redo log比較慢。可能是redo log 比較小。

mysql> show variables like '%innodb_log_file_size%';

+----------------------+----------+

| Variable_name | Value |

+----------------------+----------+

| innodb_log_file_size | 50331648 |

+----------------------+----------+

1 row in set (0.00 sec)

   事實證明,innodb_log_file_size確實比較小,才50M,建議增大至2個4G。

   繼續分析:

mysql> show engine innodb status \G

--------

FILE I/O

--------

..........

Pending flushes (fsync) log: 1; buffer pool: 0

1 pending preads, 0 pending pwrites

................

 

 

LOG

---

Log sequence number 988322448590

Log flushed up to 988322444468

Pages flushed up to 988311239867

Last checkpoint at 988309561881

1 pending log writes, 0 pending chkp writes

23371463 log i/o's done,  132.33 log i/o's/second

    上述看到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不高的問題消失。

看完上述內容,你們掌握mysql數據庫磁盤io高的排查是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

日土县| 莱芜市| 开江县| 马尔康县| 商丘市| 余姚市| 太原市| 云龙县| 临朐县| 南和县| 那坡县| 盐池县| 吉林市| 宁乡县| 平塘县| 吉木乃县| 北安市| 玉环县| 兴国县| 六枝特区| 哈密市| 滕州市| 舞阳县| 宁津县| 上林县| 同江市| 南靖县| 无锡市| 突泉县| 永靖县| 信宜市| 大安市| 壶关县| 冷水江市| 巫溪县| 揭西县| 肇州县| 册亨县| 临湘市| 英吉沙县| 张家界市|