場景:
最近一台DB服務器偶爾出現CPU報警,我的郵件報警阈(請讀yù)值設置的是15%,開始時沒當回事,以為是有什麼統計類的查詢,後來越來越頻繁。
探索:
我決定來查一下,究竟是什麼在作怪,我排查的順序如下:
1、首先打開Cacti監控,發現最近CPU均值在某天之後驟然上升,並且可以看到System\Processor Queue Length 和 sqlservr\%ProcessorTime 也在顯著的變化。
2、從最容易入手的低效SQL開始,考慮是不是最近業務做了什麼修改?連接到該SQL實例,打開活動監視器,展開“最近耗費大量資源的查詢”,並CPU時間倒序,在這裡並未發現有即時的耗費資源的查詢。據個人經驗,這裡的值如果是4位數,分鐘內執行次數3位數,一般的服務器CPU大概就10%以上,如果cpu時間那裡是5位數,且分鐘內執行次數也很高,幾百次以上,那CPU一般就會不淡定了。圖片僅為演示