今天,我先把我整理的一些計數器及其閾值要求等貼出來,這些計數器是針對我對windows操作系統,C/S結構的sql server數據庫及WEB平臺.net產品測試時的一些計數器;大家可以繼續補充,作過unix平臺上oracle數據庫測試及J2EE架構及WEBLOGIC方面測試的朋友,也希望把自己使用的計數器貼出來,讓大家分享。
好了,先說這些了,希望通過這個專題,最終能讓大家對自己的測試結果進行分析。
Memory: 內存使用情況可能是系統性能中最重要的因素。如果系統“頁交換”頻繁,說明內存不足?!绊摻粨Q”是使用稱為“頁面”的單位,將固定大小的代碼和數據塊從 RAM 移動到磁盤的過程,其目的是為了釋放內存空間。盡管某些頁交換使 Windows 2000 能夠使用比實際更多的內存,也是可以接受的,但頻繁的頁交換將降低系統性能。減少頁交換將顯著提高系統響應速度。要監視內存不足的狀況,請從以下的對象計數器開始:
Available Mbytes:可用物理內存數. 如果Available Mbytes的值很?。? MB 或更?。?,則說明計算機上總的內存可能不足,或某程序沒有釋放內存。
page/sec: 表明由于硬件頁面錯誤而從磁盤取出的頁面數,或由于頁面錯誤而寫入磁盤以釋放工作集空間的頁面數。一般如果pages/sec持續高于幾百,那么您應該進一步研究頁交換活動。有可能需要增加內存,以減少換頁的需求(你可以把這個數字乘以4k就得到由此引起的硬盤數據流量)。Pages/sec 的值很大不一定表明內存有問題,而可能是運行使用內存映射文件的程序所致。
page read/sec:頁的硬故障,page/sec的子集,為了解析對內存的引用,必須讀取頁文件的次數。閾值為>5. 越低越好。大數值表示磁盤讀而不是緩存讀。
由于過多的頁交換要使用大量的硬盤空間,因此有可能將導致將頁交換內存不足與導致頁交換的磁盤瓶徑混淆。因此,在研究內存不足不太明顯的頁交換的原因時,您必須跟蹤如下的磁盤使用情況計數器和內存計數器:
Physical Disk\\ % Disk Time
Physical Disk\\ Avg.Disk Queue Length
例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果頁面讀取操作速率很低,同時 % Disk Time 和 Avg.Disk Queue Length的值很高,則可能有磁盤瓶徑。但是,如果隊列長度增加的同時頁面讀取速率并未降低,則內存不足。
要確定過多的頁交換對磁盤活動的影響,請將 Physical Disk\\ Avg.Disk sec/Transfer 和 Memory\\ Pages/sec 計數器的值增大數倍。如果這些計數器的計數結果超過了 0.1,那么頁交換將花費百分之十以上的磁盤訪問時間。如果長時間發生這種情況,那么您可能需要更多的內存。
Page Faults/sec:每秒軟性頁面失效的數目(包括有些可以直接在內存中滿足而有些需要從硬盤讀?。┹^page/sec只表明數據不能在內存的指定工作集中立即使用。
Cache Bytes:文件系統緩存(File System Cache),默認情況下為50%的可用物理內存。如IIS5.0 運行內存不夠時,它會自動整理緩存。需要關注該計數器的趨勢變化
如果您懷疑有內存泄露,請監視 Memory\\ Available Bytes 和 Memory\\ Committed Bytes,以觀察內存行為,并監視您認為可能在泄露內存的進程的 Process\\Private Bytes、Process\\Working Set 和Process\\Handle Count。如果您懷疑是內核模式進程導致了泄露,則還應該監視 Memory\\Pool Nonpaged Bytes、Memory\\ Pool Nonpaged Allocs 和 Process(process_name)\\ Pool Nonpaged Bytes。
Pages per second :每秒鐘檢索的頁數。該數字應少于每秒一頁。
Process:
%Processor Time: 被處理器消耗的處理器時間數量。如果服務器專用于sql server,可接受的最大上限是80-85%
Page Faults/sec:將進程產生的頁故障與系統產生的相比較,以判斷這個進程對系統頁故障產生的影響。
Work set: 處理線程最近使用的內存頁,反映了每一個進程使用的內存頁的數量。如果服務器有足夠的空閑內存,頁就會被留在工作集中,當自由內存少于一個特定的閾值時,頁就會被清除出工作集。
Inetinfo:Private Bytes:此進程所分配的無法與其它進程共享的當前字節數量。如果系統性能隨著時間而降低,則此計數器可以是內存泄漏的最佳指示器。
Processor:監視“處理器”和“系統”對象計數器可以提供關于處理器使用的有價值的信息,幫助您決定是否存在瓶頸。
%Processor Time:如果該值持續超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器。
%User Time:表示耗費CPU的數據庫操作,如排序,執行aggregate functions等。如果該值很高,可考慮增加索引,盡量使用簡單的表聯接,水平分割大表格等方法來降低該值。
%Privileged Time:(CPU內核時間)是在特權模式下處理線程執行代碼所花時間的百分比。如果該參數值和"Physical Disk"參數值一直很高,表明I/O有問題??煽紤]更換更快的硬盤系統。另外設置Tempdb in RAM,減低"max async IO","max lazy writer IO"等措施都會降低該值。
此外,跟蹤計算機的服務器工作隊列當前長度的 Server Work Queues\\ Queue Length 計數器會顯示出處理器瓶頸。隊列長度持續大于 4 則表示可能出現處理器擁塞。此計數器是特定時間的值,而不是一段時間的平均值。
% DPC Time:越低越好。在多處理器系統中,如果這個值大于50%并且Processor:% Processor Time非常高,加入一個網卡可能會提高性能,提供的網絡已經不飽和。
Thread
ContextSwitches/sec: (實例化inetinfo 和dllhost 進程) 如果你決定要增加線程字節池的大小,你應該監視這三個計數器(包括上面的一個)。增加線程數可能會增加上下文切換次數,這樣性能不會上升反而會下降。如果十個實例的上下文切換值非常高,就應該減小線程字節池的大小。
Physical Disk:
%Disk Time %:指所選磁盤驅動器忙于為讀或寫入請求提供服務所用的時間的百分比。如果三個計數器都比較大,那么硬盤不是瓶頸。如果只
%Disk Time比較大,另外兩個都比較適中,硬盤可能會是瓶頸。在記錄該計數器之前,請在Windows 2000 的命令行窗口中運行diskperf -yD。若數值持續超過80%,則可能是內存泄漏。
Avg.Disk Queue Length:指讀取和寫入請求(為所選磁盤在實例間隔中列隊的)的平均數。該值應不超過磁盤數的1.5~2 倍。要提高性能,可增加磁盤。注意:一個Raid Disk實際有多個磁盤。
Average Disk Read/Write Queue Length:指讀取(寫入)請求(列隊)的平均數。
Disk Reads(Writes)/s: 物理磁盤上每秒鐘磁盤讀、寫的次數。兩者相加,應小于磁盤設備最大容量。
Average Disksec/Read: 指以秒計算的在此盤上讀取數據的所需平均時間。
Average Disk sec/Transfer:指以秒計算的在此盤上寫入數據的所需平均時間。
Network Interface:
Bytes Total/sec :為發送和接收字節的速率,包括幀字符在內。判斷網絡連接速度是否是瓶頸,可以用該計數器的值和目前網絡的帶寬比較
SQLServer性能計數器:
Access Methods(訪問方法) 用于監視訪問數據庫中的邏輯頁的方法。
Full Scans/sec(全表掃描/秒) 每秒不受限的完全掃描數??梢允腔颈頀呙杌蛉饕龗呙?。如果這個計數器顯示的值比1或2高,應該分析你的查詢以確定是否確實需要全表掃描,以及S Q L查詢是否可以被優化。
Page splits/sec(頁分割/秒)由于數據更新操作引起的每秒頁分割的數量。
Buffer Manager(緩沖器管理器):監視 Microsoft® SQL Server? 如何使用: 內存存儲數據頁、內部數據結構和過程高速緩存;計數器在 SQL Server 從磁盤讀取數據庫頁和將數據庫頁寫入磁盤時監視物理 I/O。 監視 SQL Server 所使用的內存和計數器有助于確定: 是否由于缺少可用物理內存存儲高速緩存中經常訪問的數據而導致瓶頸存在。如果是這樣,SQL Server 必須從磁盤檢索數據。 是否可通過添加更多內存或使更多內存可用于數據高速緩存或 SQL Server 內部結構來提高查詢性能。
SQL Server 需要從磁盤讀取數據的頻率。與其它操作相比,例如內存訪問,物理 I/O 會耗費大量時間。盡可能減少物理 I/O 可以提高查詢性能。
.Page Reads/sec:每秒發出的物理數據庫頁讀取數。這一統計信息顯示的是在所有數據庫間的物理頁讀取總數。由于物理 I/O 的開銷大,可以通過使用更大的數據高速緩存、智能索引、更高效的查詢或者改變數據庫設計等方法,使開銷減到最小。
.Page Writes/sec (.寫的頁/秒) 每秒執行的物理數據庫寫的頁數。
.Buffer Cache Hit Ratio. 在“緩沖池”(Buffer Cache/Buffer Pool)中沒有被讀過的頁占整個緩沖池中所有頁的比率??稍诟咚倬彺嬷姓业蕉恍枰獜拇疟P中讀取的頁的百分比。這一比率是高速緩存命中總數除以自 SQL Server 實例啟動后對高速緩存的查找總數。經過很長時間后,這一比率的變化很小。由于從高速緩存中讀數據比從磁盤中讀數據的開銷要小得多,一般希望這一數值高一些。通常,可以通過增加 SQL Server 可用的內存數量來提高高速緩存命中率。計數器值依應用程序而定,但比率最好為90% 或更高。增加內存直到這一數值持續高于90%,表示90% 以上的數據請求可以從數據緩沖區中獲得所需數據。
Lazy Writes/sec(惰性寫/秒)惰性寫進程每秒寫的緩沖區的數量。值最好為0。
Cache Manager(高速緩存管理器) 對象提供計數器,用于監視 Microsoft® SQL Server? 如何使用內存存儲對象,如存儲過程、特殊和準備好的 Transact-SQL 語句以及觸發器。
Cache Hit Ratio(高速緩存命中率,所有Cache”的命中率。在SQL Server中,Cache可以包括Log Cache,Buffer Cache以及Procedure Cache,是一個總體的比率。) 高速緩存命中次數和查找次數的比率。對于查看SQL Server高速緩存對于你的系統如何有效,這是一個非常好的計數器。如果這個值很低,持續低于80%,就需要增加更多的內存。
Latches(閂) 用于監視稱為閂鎖的內部 SQL Server 資源鎖。監視閂鎖以明確用戶活動和資源使用情況,有助于查明性能瓶頸。
Average Latch Wait Ti m e ( m s ) (平均閂等待時間(毫秒)) 一個SQL Server線程必須等待一個閂的平均時間,以毫秒為單位。如果這個值很高,你可能正經歷嚴重的競爭問題。
Latch Waits/sec (閂等待/秒) 在閂上每秒的等待數量。如果這個值很高,表明你正經歷對資源的大量競爭。
Locks(鎖) 提供有關個別資源類型上的 SQL Server 鎖的信息。鎖加在 SQL Server 資源上(如在一個事務中進行的行讀取或修改),以防止多個事務并發使用資源。例如,如果一個排它 (X) 鎖被一個事務加在某一表的某一行上,在這個鎖被釋放前,其它事務都不可以修改這一行。盡可能少使用鎖可提高并發性,從而改善性能??梢酝瑫r監視 Locks 對象的多個實例,每個實例代表一個資源類型上的一個鎖。
Number of Deadlocks/sec(死鎖的數量/秒) 導致死鎖的鎖請求的數量
Average Wait Time(ms) (平均等待時間(毫秒)) 線程等待某種類型的鎖的平均等待時間
Lock Requests/sec(鎖請求/秒) 每秒鐘某種類型的鎖請求的數量。
Memory manager:用于監視總體的服務器內存使用情況,以估計用戶活動和資源使用,有助于查明性能瓶頸。監視 SQL Server 實例所使用的內存有助于確定:
是否由于缺少可用物理內存存儲高速緩存中經常訪問的數據而導致瓶頸存在。如果是這樣,SQL Server 必須從磁盤檢索數據。
是否可以通過添加更多內存或使更多內存可用于數據高速緩存或 SQL Server 內部結構來提高查詢性能。
Lock blocks:服務器上鎖定塊的數量,鎖是在頁、行或者表這樣的資源上。不希望看到一個增長的值。
Total server memory:sql server服務器當前正在使用的動態內存總量.
監視IIS需要的一些計數器
Internet Information Services Global:
File Cache Hits %、File CacheFlushes、File Cache Hits
File Cache Hits %是全部緩存請求中緩存命中次數所占的比例,反映了IIS 的文件緩存設置的工作情況。對于一個大部分是靜態網頁組成的網站,該值應該保持在80%左右。而File Cache Hits是文件緩存命中的具體值,File CacheFlushes 是自服務器啟動之后文件緩存刷新次數,如果刷新太慢,會浪費內存;如果刷新太快,緩存中的對象會太頻繁的丟棄生成,起不到緩存的作用。通過比較File Cache Hits 和File Cache Flushes 可得出緩存命中率對緩存清空率的比率。通過觀察它兩個的值,可以得到一個適當的刷新值(參考IIS 的設置ObjectTTL 、MemCacheSize 、MaxCacheFileSize)
Web Service:
Bytes Total/sec:顯示Web服務器發送和接受的總字節數。低數值表明該IIS正在以較低的速度進行數據傳輸。
Connection Refused:數值越低越好。高數值表明網絡適配器或處理器存在瓶頸。
Not Found Errors:顯示由于被請求文件無法找到而無法由服務器滿足的請求數(HTTP狀態代碼404)
原文轉自:http://www.anti-gravitydesign.com