程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> Windows下使用性能監視器監控SqlServer的常見指標

Windows下使用性能監視器監控SqlServer的常見指標

編輯:關於SqlServer

上邊文章中提到win的性能監視器是監控數據庫性能必備的工具,接下來我就給大家介紹一些常見的監控指標,其實無非就是磁盤,cpu,內存等硬件的運行指標還有數據庫自身的像鎖啊、用戶連接數啊、還有就是根據自身業務決定的需要注意的參數指標。

1.SQL Server Buffer: Buffer Cache Hit Ratio

  這是一個很重要查看內存是否不足的參數。SQL Server Buffer中的計數器Buffer Cache Hit Ratio用來指出SQLServer從緩存中而不是磁盤中獲得數據的頻率。sqlserver會將某些查詢過的數據緩存在內存中用於以後再次查詢使用。當一個查詢A進來了以後數據庫會編譯這個sql看看需要哪些數據,然後執行計劃首先去內存中找看是否有這次查詢所需要的數據,如果這個同樣的sql剛才已經執行過了或者該表的數據已經緩存在內存中,但是卻沒有在內存中找到數據,那就有可能是因為內存不足引起內存擠壓將緩存數據寫回硬盤或者釋放掉來提供數據庫其他請求來使用。一般來說oltp的系統,這個值最起碼也應該在90%以上,理想值是99%。如果這個值低於90%,那建議你應該添加內存了。

2.Memory: Pages/sec

  這個也是監控內存是否不足的一個比較重要的參數。這個計數器記錄的是每秒鐘內存和磁盤之間交換的頁面數。頻繁的交換頁面就會消耗更多的io,這會影響到服務器的性能。打個比方,超市有一個貨架上邊擺滿了新進的各種商品a、b、c,當你去超市想買a的時候直接去貨架就能拿到a,方便的很,當顧客進超市逛一圈以後跟你說我怎麼沒有發現舊商品d呢,我就想買這個d,然後工作人員就會去倉庫把商品d拿出來擺放到貨架上供下次顧客來買。但是貨架擺滿了怎麼辦呢,只能將時間長沒有人問津的a下架放到倉庫然後空出來地方擺放d,但是下次另一個顧客來了又有想要購買a的意向,工作人員就得再次把a拿出來替換掉貨架上的d。其實內存就是這個貨架,硬盤就是倉庫。因為貨架太小了,導致只能頻繁的更換貨架上的商品來提供正常的運營,想減少反復來回搬運產生的io開銷,只能換個更大的貨架來滿足需求。

  如果服務器上只跑的sqlserver,那這個指標的理想范圍應該是0-20之間,偶爾超過20的話影響不大,如果這個值頻繁的超過20,那說明你的這台服務器可能需要加內存了。

當然這個指標要配合著上一個指標Buffer Cache Hit Ratio來看,如果上一個指標緩沖命中一直在99%或者更高,而這個期間內你的頁交換一直在20以上,那意味著不僅僅是內存不足,而且其他的程序占用了系統內存。

3.Memory: Available Bytes

  另一個監控內存情況的計數器就是這個。這個值最少最少也得大於5M,因為sqlserver需要始終維持5-10m的自由內存用於分配,當這個值低於5m的時候,那sqlserver可能會因為缺少內存而產生性能瓶頸。

4.Physical Disk: % Disk Time

  這個計數器記錄的是磁盤的繁忙程度(是整個磁盤陣列或者物理磁盤的繁忙程度)。理論上這個值應該低於55%,如果持續的高於55%,那說明這台服務器上可能有io瓶頸。

如果只是偶爾的出現幾次,那不必擔心,但是可以對應的找到這個時間點,數據庫正在干嘛執行了哪些語句,對應的優化一下。

5.Physical Disk: Avg. Disk Queue Length

   這是一個比較重要的查看磁盤io情況的指標。理論上每個物理磁盤的值不應該超過2。當然這個值是需要計算的,比如用4塊物理盤做了個raid10,此時在一個監控周期內磁盤隊列的均值是10,那每塊磁盤的隊列值就是10/4=2.5,那麼就可以說這個磁盤陣列存在i/o瓶頸了。這個跟之前的disktime指標一樣,偶爾出現不必擔心,如果長時間出現,那就得著手考慮解決磁盤的io性能問題了。

6.Processor: % Processor Time

  這是監控cpu情況的一個指標(類似於disk time)。這個是觀察cpu利用率的一個關鍵參數。如果Processor Time計數器的值持續超過80%,說明cpu存在瓶頸問題。如果只是偶爾出現,那說明可能是這個時間點有個特別消耗cpu的查詢,可以在下一次這個時間點來臨的時候嘗試抓一下sql並且優化它。如果在某一個時間點以後cpu一直飙高,常見的情況就是:1.突然間的高並發2.索引重整3.突然一個經常使用的數據量特別大的索引失效了4.死鎖5.其他好多好多。先找到問題所在,在處理掉它。

7.System: Processor Queue Length

  這個指標類似於disk queue length,也是算單個cpu的。單個cpu不能超過2,比如你是2u的機器,那這個值不應該超過4,如果在一個監控周期內持續性的超過4,那就可能出現cpu瓶頸了。

  基本上常用的就是這麼多,還有好多可以配合你檢測sqlserver性能的計數器,有興趣的可以自己百度下。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved