- 監控 CPU 使用
- CPU 升高時處理流程
建立 Alter - [CPU High] 並選擇 [WMI 事件警示] 來進行監控
- 命名空間:\\.\root\cimv2
- 查詢:透過 WQL 每 5 秒查詢 CPU loading 是否超過 50%
SELECT *
FROM __InstanceModificationEvent WITHIN 5
WHERE TargetInstance ISA 'Win32_Processor'
AND TargetInstance.loadpercentage > 50
回應- 執行 Job - CPU High Process (後面介紹)
- 使用 [通知操作員] 來發 Mail 通知 DBA
- 將警示的錯誤文字包含於:可以把特定訊息或是語法塞在這,以該練習為例,可以塞擴充事件查詢語法,收到 mail 當下就可以抓出來查詢
- 回應之間延遲:避免 Alter 一直觸發,依管理需求設定多久間隔觸發一次,該練習是設定 10分鐘
CPU 升高時處理流程
建立 Job - CPU High Process,並設定處理流程,該練習只有一個步驟,開啟事先建立的擴充事件收集 TSQL
啟用擴充事件
ALTER EVENT SESSION TSQLCollection ON SERVER
STATE = start;
GO
收集 TSQL 語法除了擴充事件,也可以利用 SQL Trace 或是 WhoIsActive 來達成喔。
另外發信通知部分,不使用操作員的話,也可以在 Job 內建立一個步驟,透過 sp_send_dbmail 來送出通知信
監控測試
該 文章 內有 CPU High 語法可以使用,當 CPU 超過設定的 50% 就會發出 mail 通知囉
有主動 mail 通知,也有發生當下的 TSQL 語法側錄,就可以知道當下 SQL Server 情況,方便釐清問題點囉
其他相關測試紀錄
一開始其實是朝 Alert 搭配 [SQL Server 效能條件警示] 來偵測 CPU High,測試過程一直沒有辦法觸發 Alert,後來才轉向 WMI,記錄這三篇參考資料
沒有留言:
張貼留言