MySQL 業務表索引過多導致業務高峰期伺服器CPU使用率百分百

清風艾艾發表於2021-11-05

    最近,一套MySQL資料庫伺服器週期性的在業務高峰期出現CPU使用率百分百。

    問題現象:

    MySQL資料庫伺服器週期性的CPU使用率百分百

    問題分析:

    1、伺服器配置:8核的CPU、記憶體為32G

    2、業務變更:經瞭解有新的業務模組上線

    3、資料庫鎖排查:透過show full processlist觀察只有insert語句insert into values()()()()()

    4、監控檢視:監控均是上午業務高峰期CPU出現間歇性的滿載,但是,同一時間段的資料庫伺服器的IO卻不高

    5、日誌資訊檢視:檢視作業系統日誌和mysql資料庫日誌,沒有任何錯誤或者警告資訊提示

    6、資料庫BUG排查:社群查了下倒是有可能是MySQL5.6/5.7的BUG#77827

    reduce cpu time costs of creating dummy index while change buffer is enabled。順著 BUG#77827的提示

看了下相關業務表的索引,居然有7個之多,但是並不是 BUG#77827本身引起的。

    小結:到此,可以確定是表上的索引過多,導致insert批次插入,索引維護成本過高引起CPU滿載。

    問題處理:

    與業務溝通,刪除使用率較低的索引,業務處理時效大大縮短,CPU平穩不超過20%。




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29357786/viewspace-2840757/,如需轉載,請註明出處,否則將追究法律責任。

相關文章