SQL SERVER日常運維巡檢系列之八——效能
前言
做好日常巡檢是資料庫管理和維護的重要步驟,而且需要對每次巡檢日期、結果進行登記,同時可能需要出一份巡檢報告。
本系列旨在解決一些常見的困擾:
- 不知道巡檢哪些東西
- 不知道怎麼樣便捷體檢
- 機器太多體檢麻煩
- 生成報告困難,無法直觀呈現結果
效能是系統好壞的重要指標之一,而效能問題可能是因為某一個小點而引起(如引數配置、作業配置、結構設計、軟硬體環境等)。前面七篇文章從不同的方面對系統進行了巡檢,本篇將介紹系列巡檢中最重要的一項(效能)。
效能基線
效能巡檢的指標非常多,情況變化也很大,所以對自己的系統應該建立起一套完整的效能評價模型,何為效能評價模型,就是當系統進入一個平穩期,經過了優化,系統性能已經達到了一個穩定值,那麼我們可以用這個穩定的專案作為後期巡檢,及功能上線,結構變更等操作效能對比的基線。
在【體檢專案】頁我們可以使用一個比較穩定的體檢專案的歷史版本作為效能基線,為了區分其他專案可以重新命名為”效能基線“。
基於效能基線對比
總體指標
在【概覽】頁我們可以從整體檢視系統的效能現狀,主要從【查詢語句-執行時間】、【會話-等待型別】、【檢查項】等,與基線進行對比。檢視巡檢中的指標是否與基線指標有較大的差異。
例:當巡檢時【查詢語句-執行時間】中各個時間段的慢語句數量明顯高於基線,那麼可以說明系統中的語句可能有變慢的情況。CPU、記憶體、IO等系統指標壓力升高,說明你係統的壓力變大,變大的原因可能因為有新增的不優化語句或硬體資源出現問題。
注:基線與巡檢的收集時間應保證相同或小幅差異。如果差異很大,可能不具有說明性。
具體指標
計數器
- 系統計數器
- 資料庫計數器
查詢語句
在巡檢中,我們可以主要關注:
- 慢語句數量
- 執行次數top 10
- 持續時間top 10
- CPU消耗top 10
- 讀次數 top 10
- 寫次數top 10
- 影響行數top 10
系統等待與阻塞
在巡檢中,我們可以主要關注:
- 等待的型別及數量分佈
- 等待時間分佈
- 等待次數top 10
- 等待時間top 10
- CPU時間top 10
- 邏輯讀次數 top 10
- 物理讀次數top 10
- 物理寫top 10
其他指標
資料庫的效能巡檢指標很多,可以根據自己系統的情況選擇,具體指標及優化方式請參見:效能診斷系列
總結
前面的一些巡檢項及配置項,在管理比較規範的系統下,一般並不會出現什麼問題,而效能不同,這是一個受很多因素影響,並且比較容易產生問題的項。同時效能對系統的總要程度是不言而喻的,做好前面的巡檢也是效能穩定的保證。