資料庫優化(一)性能名額(伺服器硬體)
-
-
-
-
- 1.工具 Perfmon
- 2.硬體一 CPU
-
- ①System\%Total Processor Time
- ②Processor\%User Time
- ③Processor\%DPC Time
- ④System\Processor Queue Length
- 3.硬體二 記憶體
-
- ①Memory\Available Mbytes
- ②Memory\Pages/sec 、 Pages Read/sec 和Page Faults/sec
- 4.硬體三 磁盤I/O
-
- ①Physical Disk\Disk Time、Processor\Privieged Time
- ②Physical Disk\Transfers/sec
- 5.硬體四 網絡
-
- ①Network Interface\Byte Total/sec
-
-
-
我們在進行資料庫調優之前,除了知道通過哪些操作去調整,首先要了解的是都有哪些個資料庫調優相關的性能名額。了解之後,我們才能 明現狀–有哪些地方是可以進行優化的地方,定目标–可以優化到什麼樣的程度,後我們才能針對性進行操作。
本篇文章主要包括 伺服器硬體名額 + 資料庫資源情況名額,兩個部分。
由于伺服器硬體名額内容超出預設,另作一篇文章進行介紹。
1.工具 Perfmon
以下性能名額我們均在Windows自帶的Perfmon(性能螢幕)進行檢視。
打開方式:
①在搜尋框輸入“perfmon”即可。

②點選“性能螢幕” → 點選 “+”,即可添加監控名額
③在相應的類别下選擇要檢視的計數器,添加–确認即可
④對于螢幕圖示的樣式,可以輕按兩下對應的計數器–修改樣式後儲存即可
2.硬體一 CPU
我們知道 性能 = 1/ 響應時間,
檢視名額:
①System%Total Processor Time
定義:
Total Processor Time,系統中所有處理器都處于繁忙狀态的時間百分比,展現的是伺服器整體處理使用率。是以如果是多處理器系統,該數值展現的是所有CPU的平均使用率。
參考值:
如果伺服器專用于sql server 可接受的最大上限是80% -85 %。
如果該值持續超過90%,則說明整個系統面臨着處理器方面的瓶頸,需要通過增加處理器來提高性能。
②Processor%User Time
定義:
User Time,系統的非核心消耗的CPU時間,在使用者狀态模式下(即非特權模式)的操作所花的時間百分比。
參考值:
處理:
如果該值較大,可以考慮是否通過算法優化等方法降低這個值。
如果該伺服器是資料庫伺服器,導緻此值較大的原因很可能是資料庫的排序或是函數操作消耗了過多的CPU時間,此時可以考慮對資料庫系統進行優化。表示耗費CPU的資料庫操作,如排序,執行aggregate functions等。如果該值很高,可考慮增加索引,盡量使用簡單的表聯接,水準分割大表格等方法來降低該值。
③Processor%DPC Time
定義:
DPC Time,處理器在網絡處理上消耗的時間,該值越低越好。
參考值:
在多處理器系統中,如果這個值大于50%并且Processor:% Processor Time非常高,加入一個網卡可能會提高性能。
④System\Processor Queue Length
定義:
Processor Time,處理器用來執行非閑置線程時間的百分比。 線程在等待配置設定CPU資源所排隊列的長度,此長度不包括正在占有CPU資源的線程。
參考值:
如果該隊列的長度大于處理器個數+1,就表示處理器有可能處于阻塞狀态(參考值:<=處理器個數+1)
3.硬體二 記憶體
①Memory\Available Mbytes
定義:
Available Mbytes,剩餘的可用實體記憶體,以 MB 為機關表示。等于配置設定給待機(緩存的)、空閑和零分頁清單記憶體的總和。
參考值:
保留10%的可用記憶體。對于較小記憶體也需要大于4MB空間可用 。
如果Available Mbytes的值很小,則說明計算機上總的記憶體可能不足,或某程式沒有釋放記憶體。
②Memory\Pages/sec 、 Pages Read/sec 和Page Faults/sec
定義:
Pages/sec,為解決硬頁錯誤從磁盤讀取或寫入磁盤的頁數。
這個值包括為滿足錯誤而在檔案系統緩存(通常由應用程式請求)的非緩存映射記憶體檔案中檢索的頁 是 Memory\Pages Input/sec 和 Memory\Pages Output/sec 的總和。
參考值:
Pages/sec ≤ 20
此值持續高于幾百,說明記憶體中有很多東西需要與硬碟交換。可能有記憶體問題,應考慮增加記憶體或更換記憶體 。
定義:
Pages Read/sec,為解決硬錯誤而從硬碟上讀取的頁數。
定義:
Page Faults/sec,每秒鐘處理的錯誤頁數,包括硬錯誤和軟錯誤。
當處理器在記憶體中讀取某一頁出現錯誤時,就會産生缺頁中斷,也就是 page Fault。如果這個頁位于記憶體的其他位置,這種錯誤稱為軟錯誤;如果這個頁位于硬碟上,必須從硬碟重新讀取,這個錯誤成為硬錯誤。
每秒發生頁面失效的次數,頁面失效次數越多,說明作業系統向記憶體讀取的次數越多。
參考值:
該計數器的閥值為5,如果計數值超過5,則可以判斷記憶體存在問題。
4.硬體三 磁盤I/O
①Physical Disk\Disk Time、Processor\Privieged Time
定義:
Disk Time,磁盤驅動器為讀取或寫入請求提供服務所用的時間百分比。
參考值:
Disk Time若數值持續超過80%,則可能是記憶體洩漏。應當總小于90%
說明:
(Disk Time、Physical Disk、)
1)如果隻有%Disk Time比較大,硬碟有可能是瓶頸。指所選磁盤驅動器忙于為讀或寫入請求提供服務所用的時間的百分比。
2)如果三個計數器都比較大,那麼硬碟不是瓶頸。
3)如果隻有%Disk Time比較大,另外兩個都比較适中,硬碟可能會是瓶頸。
②Physical Disk\Transfers/sec
定義:
Transfers/sec,在此盤上讀取/寫入操作速率。
參考值:
一般來說,定義該數值小于15ms為優秀,介于15-30ms之間為良好,30-60之間為可接受,超過60ms則需要考慮更換或是硬碟的RAID方式
5.硬體四 網絡
①Network Interface\Byte Total/sec
Byte Total/sec,網絡中接受和發送位元組的速度。
參考值:
和目前網絡的帶寬進行比較。該計數器和網絡帶寬相除,<50%。
參考資料來源:
1.Windows性能名額分析https://blog.csdn.net/lluozh2015/article/details/50755480
2.性能測試知多少–系統計數器與硬體分析https://www.cnblogs.com/fnng/archive/2012/10/30/2747246.html