1. 程式人生 > >記一次database cpu high的處理

記一次database cpu high的處理

業務 read 需要 十分 時有 一次 -1 技術 ima

基本上,我們的數據庫實例每次cpu飆升都是因read而起,很少有write導致的cpu高。這說明read,隨機讀,排序,都會占用cpu。而寫入主要是io行為,尤其是順序寫,不需要占cpu。

今次問題,rds在三個小時內都很高,始終維持50+,最高甚至到98 。當然我們的業務可用性並不依賴rds。

觀察一段時間,並沒有很明顯的大的慢查詢。但是會有一些小查詢時有時無,其實這些能被肉眼看到的就可能是問題的所在

最終定位為一個復合primary key的第二個字段單獨查詢太多,造成全表掃描。單獨添加索引後fix。

不算太慢,查詢數據量不算太多,但是十分頻繁,查詢量非常大,往往這類小sql會很隱蔽地把cpu搞上去。

技術分享

記一次database cpu high的處理