Available Mbytes:可用物理內存數. 如果Available Mbytes的值很小(4 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 :每秒鐘檢索的頁數。該數字應少於每秒一頁。
%Processor Time: 被處理器消耗的處理器時間數量。如果服務器專用於sql server,可接受的最大上限是80-85%
Page Faults/sec:將進程產生的頁故障與系統產生的相比較,以判斷這個進程對系統頁故障產生的影響。
Work set: 處理線程最近使用的內存頁,反映了每一個進程使用的內存頁的數量。如果服務器有足夠的空閒內存,頁就會被留在工作集中,當自由內存少於一個特定的閾值時,頁就會被清除出工作集。
Inetinfo:Private Bytes:此進程所分配的無法與其它進程共享的當前字節數量。如果系統性能隨着時間而降低,則此計數器可以是內存泄漏的最佳指示器。
%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非常高,加入一個網卡可能會提高性能,提供的網絡已經不飽和。
ContextSwitches/sec: (實例化inetinfo 和dllhost 進程) 如果你決定要增加線程字節池的大小,你應該監視這三個計數器(包括上面的一個)。增加線程數可能會增加上下文切換次數,這樣性能不會上升反而會下降。如果十個實例的上下文切換值非常高,就應該減小線程字節池的大小。
%Disk Time %:指所選磁盤驅動器忙於爲讀或寫入請求提供服務所用的時間的百分比。如果三個計數器都比較大,那麼硬盤不是瓶頸。如果只有%Disk Time比較大,另外兩個都比較適中,硬盤可能會是瓶頸。在記錄該計數器之前,請在Windows 2000 的命令行窗口中運行diskperf -yD。若數值持續超過80%,則可能是內存泄漏。
Avg.Disk Queue Length:指讀取和寫入請求(爲所選磁盤在實例間隔中列隊的)的平均數。該值應不超過磁盤數的1.5~2 倍。要提高性能,可增加磁盤。注意:一個Raid Disk實際有多個磁盤
Disk Reads(Writes)/s: 物理磁盤上每秒鐘磁盤讀、寫的次數。兩者相加,應小於磁盤設備最大容量。
Average Disksec/Read: 指以秒計算的在此盤上讀取數據的所需平均時間。
Average Disk sec/Transfer:指以秒計算的在此盤上寫入數據的所需平均時間。
Network Interface:
Bytes Total/sec :爲發送和接收字節的速率,包括幀字符在內。判斷網絡連接速度是否是瓶頸,可以用該計數器的值和目前網絡的帶寬比較
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)中沒有被讀過的頁佔整個緩衝池中所有頁的比率。可在高速緩存中找到而不需要從磁盤中讀取的頁的百分比。這一比率是高速緩存命中總數除以自 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 資源上(如在一個事務
. 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服務器當前正在使用的動態內存總量.