windows的性能監(jiān)視器是監(jiān)控?cái)?shù)據(jù)庫性能必備的工具贴彼,接下來我就給大家介紹一些常見的監(jiān)控指標(biāo),其實(shí)無非就是磁盤斥扛,cpu缭黔,內(nèi)存等硬件的運(yùn)行指標(biāo)還有數(shù)據(jù)庫自身的像鎖啊食茎、用戶連接數(shù)啊、還有就是根據(jù)自身業(yè)務(wù)決定的需要注意的參數(shù)指標(biāo)馏谨。
- SQL Server Buffer: Buffer Cache Hit Ratio
這是一個(gè)很重要查看內(nèi)存是否不足的參數(shù)别渔。SQL Server Buffer中的計(jì)數(shù)器Buffer Cache Hit Ratio用來指出SQLServer從緩存中而不是磁盤中獲得數(shù)據(jù)的頻率。sqlserver會(huì)將某些查詢過的數(shù)據(jù)緩存在內(nèi)存中用于以后再次查詢使用。當(dāng)一個(gè)查詢A進(jìn)來了以后數(shù)據(jù)庫會(huì)編譯這個(gè)sql看看需要哪些數(shù)據(jù)哎媚,然后執(zhí)行計(jì)劃首先去內(nèi)存中找看是否有這次查詢所需要的數(shù)據(jù)喇伯,如果這個(gè)同樣的sql剛才已經(jīng)執(zhí)行過了或者該表的數(shù)據(jù)已經(jīng)緩存在內(nèi)存中,但是卻沒有在內(nèi)存中找到數(shù)據(jù)拨与,那就有可能是因?yàn)閮?nèi)存不足引起內(nèi)存擠壓將緩存數(shù)據(jù)寫回硬盤或者釋放掉來提供數(shù)據(jù)庫其他請(qǐng)求來使用稻据。一般來說oltp的系統(tǒng),這個(gè)值最起碼也應(yīng)該在90%以上买喧,理想值是99%捻悯。如果這個(gè)值低于90%,那建議你應(yīng)該添加內(nèi)存了淤毛。
- Memory: Pages/sec
這個(gè)也是監(jiān)控內(nèi)存是否不足的一個(gè)比較重要的參數(shù)今缚。這個(gè)計(jì)數(shù)器記錄的是每秒鐘內(nèi)存和磁盤之間交換的頁面數(shù)。頻繁的交換頁面就會(huì)消耗更多的io低淡,這會(huì)影響到服務(wù)器的性能姓言。打個(gè)比方,超市有一個(gè)貨架上邊擺滿了新進(jìn)的各種商品a蔗蹋、b何荚、c,當(dāng)你去超市想買a的時(shí)候直接去貨架就能拿到a纸颜,方便的很兽泣,當(dāng)顧客進(jìn)超市逛一圈以后跟你說我怎么沒有發(fā)現(xiàn)舊商品d呢绎橘,我就想買這個(gè)d胁孙,然后工作人員就會(huì)去倉庫把商品d拿出來擺放到貨架上供下次顧客來買。但是貨架擺滿了怎么辦呢称鳞,只能將時(shí)間長(zhǎng)沒有人問津的a下架放到倉庫然后空出來地方擺放d涮较,但是下次另一個(gè)顧客來了又有想要購買a的意向,工作人員就得再次把a(bǔ)拿出來替換掉貨架上的d冈止。其實(shí)內(nèi)存就是這個(gè)貨架狂票,硬盤就是倉庫。因?yàn)樨浖芴×宋醣瑢?dǎo)致只能頻繁的更換貨架上的商品來提供正常的運(yùn)營(yíng)闺属,想減少反復(fù)來回搬運(yùn)產(chǎn)生的io開銷,只能換個(gè)更大的貨架來滿足需求周霉。
如果服務(wù)器上只跑的sqlserver掂器,那這個(gè)指標(biāo)的理想范圍應(yīng)該是0-20之間,偶爾超過20的話影響不大俱箱,如果這個(gè)值頻繁的超過20国瓮,那說明你的這臺(tái)服務(wù)器可能需要加內(nèi)存了。
當(dāng)然這個(gè)指標(biāo)要配合著上一個(gè)指標(biāo)Buffer Cache Hit Ratio來看,如果上一個(gè)指標(biāo)緩沖命中一直在99%或者更高乃摹,而這個(gè)期間內(nèi)你的頁交換一直在20以上禁漓,那意味著不僅僅是內(nèi)存不足,而且其他的程序占用了系統(tǒng)內(nèi)存孵睬。
- Memory: Available Bytes
另一個(gè)監(jiān)控內(nèi)存情況的計(jì)數(shù)器就是這個(gè)播歼。這個(gè)值最少最少也得大于5M,因?yàn)閟qlserver需要始終維持5-10m的自由內(nèi)存用于分配掰读,當(dāng)這個(gè)值低于5m的時(shí)候荚恶,那sqlserver可能會(huì)因?yàn)槿鄙賰?nèi)存而產(chǎn)生性能瓶頸。
- Physical Disk: % Disk Time
這個(gè)計(jì)數(shù)器記錄的是磁盤的繁忙程度(是整個(gè)磁盤陣列或者物理磁盤的繁忙程度)磷支。理論上這個(gè)值應(yīng)該低于55%谒撼,如果持續(xù)的高于55%,那說明這臺(tái)服務(wù)器上可能有io瓶頸雾狈。
如果只是偶爾的出現(xiàn)幾次廓潜,那不必?fù)?dān)心,但是可以對(duì)應(yīng)的找到這個(gè)時(shí)間點(diǎn)善榛,數(shù)據(jù)庫正在干嘛執(zhí)行了哪些語句辩蛋,對(duì)應(yīng)的優(yōu)化一下。
- Physical Disk: Avg. Disk Queue Length
這是一個(gè)比較重要的查看磁盤io情況的指標(biāo)移盆。理論上每個(gè)物理磁盤的值不應(yīng)該超過2悼院。當(dāng)然這個(gè)值是需要計(jì)算的,比如用4塊物理盤做了個(gè)raid10咒循,此時(shí)在一個(gè)監(jiān)控周期內(nèi)磁盤隊(duì)列的均值是10据途,那每塊磁盤的隊(duì)列值就是10/4=2.5,那么就可以說這個(gè)磁盤陣列存在i/o瓶頸了叙甸。這個(gè)跟之前的disktime指標(biāo)一樣颖医,偶爾出現(xiàn)不必?fù)?dān)心,如果長(zhǎng)時(shí)間出現(xiàn)裆蒸,那就得著手考慮解決磁盤的io性能問題了熔萧。
- Processor: % Processor Time
這是監(jiān)控cpu情況的一個(gè)指標(biāo)(類似于disk time)。這個(gè)是觀察cpu利用率的一個(gè)關(guān)鍵參數(shù)僚祷。如果Processor Time計(jì)數(shù)器的值持續(xù)超過80%佛致,說明cpu存在瓶頸問題。如果只是偶爾出現(xiàn)辙谜,那說明可能是這個(gè)時(shí)間點(diǎn)有個(gè)特別消耗cpu的查詢俺榆,可以在下一次這個(gè)時(shí)間點(diǎn)來臨的時(shí)候嘗試抓一下sql并且優(yōu)化它。如果在某一個(gè)時(shí)間點(diǎn)以后cpu一直飆高筷弦,常見的情況就是:1.突然間的高并發(fā)2.索引重建3.突然一個(gè)經(jīng)常使用的數(shù)據(jù)量特別大的索引失效了4.死鎖5.其他很多原因肋演。先找到問題所在抑诸,在處理掉它。
- System: Processor Queue Length
這個(gè)指標(biāo)類似于disk queue length爹殊,也是算單個(gè)cpu的蜕乡。單個(gè)cpu不能超過2,比如你是2u的機(jī)器梗夸,那這個(gè)值不應(yīng)該超過4层玲,如果在一個(gè)監(jiān)控周期內(nèi)持續(xù)性的超過4,那就可能出現(xiàn)cpu瓶頸了反症。
這里簡(jiǎn)單介紹一些常用的辛块,還有好多可以配合你檢測(cè)和監(jiān)控sqlserver性能的計(jì)數(shù)器,有興趣的可以自己百度下铅碍。