用Windows效能監控器監控SQL Server的常見指標

來源:互聯網
上載者:User

用Windows效能監控器監控SQL Server的常見指標

上邊文章中提到Win的效能監控器是監控資料庫效能必備的工具,接下來我就給大家介紹一些常見的監控指標,其實無非就是磁碟,cpu,記憶體等硬體的運行指標還有資料庫自身的像鎖啊、使用者串連數啊、還有就是根據自身業務決定的需要注意的參數指標。

  1.SQL Server Buffer: Buffer Cache Hit Ratio

  這是一個很重要查看記憶體是否不足的參數。SQL Server Buffer中的計數器Buffer Cache Hit Ratio用來指出SQL Server從緩衝中而不是磁碟中獲得資料的頻率。SQL Server會將某些查詢過的資料緩衝在記憶體中用於以後重新查詢使用。當一個查詢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開銷,只能換個更大的貨架來滿足需求。

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

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

  3.Memory: Available Bytes

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

  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瓶頸了。

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

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.