最近研究性能測試工具中發現這些所謂的性能測試工具的數據、全部來至windows操作系統提供的數據、然后通過API提供給性能測試工具、性能測試工具在用一種比較直觀的圖形展示出來。也就是說不部分情況下如果把你沒有弄明白性能監視器中數據得意義,那么性能測試工具的那些圖表對你的意義也就沒有多大的用處。下面我整理了一部分windows中性能監視器中比較常用的性能計數器。
這里整理的比較多的內容:處理器對象、系統對象、邏輯磁盤對象、物理磁盤對象、內存。這些性能計數器我們經常在使用的過程中都會用得到,所以這篇文章大部分內容是這些的。
一、處理器對象(Processor Object)
一條經驗規則是不要使你所監控的每個處理器的C P U使用率高于9 0%。峰值超過9 0%是可以接受的,但平均使用率超過9 0%則是應該避免的。
1.處理器時間百分比(%Processor Time) 處理器執行一個非空閑線程的時間百分比。用1 0 0%減去處理器空閑的總時間得出這個值。這是整個系統的C P U使用的一個好的指示器。
2. 特權時間百分比(%Privileged Time) 處理器用于在特權模式下(即:執行操作系統功能和運行驅動器,如I / O )工作時間的百分比。這個時間包括C P U (或C P U )用于維護中斷和延遲過程調用( D P C )的時間。
3. 用戶時間百分比(%User Time) 處理器用于在用戶模式工作的時間百分比。這種類型的工作是由應用產生的。通常,希望極大化用戶時間百分比的值,極小化特權時間百分比的值。
4.中斷時間百分比(%Interrupt Time) CPU忙于維護硬件中斷的時間百分比。系統中的許多硬件部件,如鼠標、網絡接口卡或磁盤控制器,都可以發出處理器中斷。你可以將中斷看作為Windows NT正常操作的一部分發生。
5.中斷數/秒(Interrupts/sec) 處理器每秒接收并處理的硬件中斷的數量。它不包括系統D P C,系統D P C單獨計數。
二、系統對象(System Object)
系統對象與它的相關計數器衡量處理器上運行的線程的總計數據。雖然使用這些計數器不能觀察一個特定處理器的工作負載或一個特定線程的行為,但它們提供了有關整個系統性能有價值的內部信息。系統計數器如下所示:
1.處理器隊列長度(Processor Queue Length) 處理器隊列中的線程的數量。換句話說,它是等待運行的線程數。即使你的系統具有多個處理器,但只有一個隊列用于處理器時間。計數器只記錄那些準備執行但仍處于等待的線程,不是那些正在運行的線程。
2.環境切換/秒(Context Switches/sec) 系統上的所有處理器從一個線程切換到另一個線程的組合比率。當一個正在運行的線程自動地放棄處理器,處理器由一個高優先級的待命線程搶占時發生環境切換,或在用戶模式和特權(核心)模式之間切換,以使用一個執行或子系統的服務。這是線程的總和:計算機上運行在所有處理器上的所有線程的環境切換數/秒。
三、 SQL Server:緩沖區管理器對象( B u ffer Manager Object)
緩沖區管理器計數器提供了SQL Server使用的內存緩沖區的有關信息。這些計數器如下所示:
1.高速緩存命中率( B u ffer Cache Hit Ratio) 引用當前位于高速緩存中頁的需求的百分率。預先在內存中擁有頁,允許SQL Server避免請求從磁盤子系統執行一次物理I / O。因為訪問內存相對于訪問物理I / O,代價更小,一個高的緩沖區高速緩存命中率增強了系統的性能與吞吐量。如果你的系統很好地調整過,這個命中率應該是8 0%或更高。如果具有一個低的緩沖區高速緩存命中率,你應該為SQL Server分配更多的內存。如果你已將現有的所有內存都分配給了SQLServer,那么需要增加系統中物理內存的數量。
2. 高速緩存大小(頁)(Cache Size) 在SQL Server緩沖區高速緩存中的頁的數量。這個數量乘以8 K B,即可得到正在使用的以千字節為單位的緩存數。
3. 空閑緩沖區(Free Buffer) 空閑SQL Server內存緩沖區的數量。
4. 讀的頁/秒(Page Reads/sec) 每秒請求的物理數據頁I / O的數量。
5. 偷取的頁計數(Stolen Page Count) SQL Server用于緩沖區高速緩存的頁數,這些內存被給予系統中的另外一個進程。Windows NT回收這個內存以滿足其他系統部件的需要。
6. 寫的頁/秒(Page Writes/sec) 由SQL Server執行的每秒寫的物理數據頁的數量。
四、 SQL Server:數據庫對象(Database Object)
數據庫對象計數器提供了有關SQL Server數據庫的信息,包括可用的空閑日志空間量和數據庫中活動事務的數量。對于系統中的每個數據庫的每個計數器有一個實例。這些計數器包括如下:
1. 日志刷新等待/秒(Log Flush Wait/sec) 在能夠繼續執行前,必須等待日志刷新的數據庫提交數量。
2. 日志使用的百分比(Percent Log Used) SQL Server實際使用的當前定義的日志空間的百分比。
五、 SQL Server:常規統計對象(General Statistics Object)
常規統計對象含有常規服務器范圍活動的有關信息,它有一個計數器:
1. 用戶連接數(User Connections) 系統中用戶連接的當前數量。
六、 SQL Server:閂對象(Latches Object)
這個對象計數器提供了在內部SQL Server資源中有效的閂的信息。計數器如下:
1. 平均閂等待時間(毫秒) ( Average Latch Wait Time) 閂請求在得到服務之前必須等待的平均時間,以毫秒為單位。
2. 閂等待數/秒(Latch Waits/sec) 不能立即服務,被迫等待其他資源釋放的閂請求的數量。
七、 SQL Server:鎖對象(Locks Object)
鎖對象提供了由SQL Server提出的各個鎖請求的有關數據,例如鎖生命周期和死鎖。可以在系統上具有多個這些計數器的實例。計數器如下所示:
1. 平均等待時間(毫秒) ( Average Wait Time) 每個鎖請求被迫等待的平均時間量,以毫秒為單位。
2. 鎖到期數/秒(Lock Timeouts/sec) 在系統中過期的鎖請求的數量。
3. 鎖等待數/秒(Lock Wa i t s / s e c )不能立即滿足,需要調用線程在給予鎖之前處于等待狀態的鎖請求的數量。
4. 死鎖數/秒(Number of Deadlocks/sec) 導致產生死鎖的鎖請求的數量。
八、 SQL Server:內存管理器對象(Memory Manager Object)
內存管理器對象含有有關SQL Server內存使用的信息,包括SQL Server正在使用的高速緩
存內存的數量。這個對象下的計數器如下所示:
1. 內存授權掛起(Memory Grants Pending) 等待授予工作空間內存的進程的當前數量。
2. S Q L高速緩存內存(KB)(SQL Cache Memory) SQL Server用于動態SQL 高速緩存的動態
內存數量。
3. 目標服務器內存( K B ) ( Ta rget Server Memory) SQL Server將會消耗的動態內存的總額。
4. 總的服務器內存( K B ) ( Total Server Memory) SQL Server當前消耗的動態內存的總額。
九、 SQL Server:S Q L統計對象(SQL Statistics Object)
這個對象提供了系統上正在執行的S Q L查詢的有關信息,包括查詢編譯和重新編譯的數量的數據。它有如下計數器:
1. 批請求/秒(Batch Requests/sec) 服務器接收到的S Q L批請求的數量。
2. SQL 編譯/秒(SQL Compilations/sec) SQL Server每秒執行的S Q L語句編譯的數量。
3. S Q L重新編譯/秒(SQL Re-Compilations/sec) SQL Server每秒執行的S Q L語句重新編譯的數量。
十、 邏輯磁盤對象(Logical Disk Object)
邏輯磁盤對象提供了有關邏輯磁盤I / O性能的信息。邏輯磁盤計數器與Windows NT磁盤
系統管理員分配給邏輯磁盤驅動器的字母相關。這個對象含有如下計數器:
1. 磁盤讀時間百分比(%Disk Read Time) 選中的邏輯磁盤忙于服務讀請求總共用去時間的
百分比。
2. 磁盤寫時間百分比(%Disk Write Time) 選中的邏輯磁盤忙于服務寫請求總共用去時間
的百分比。
3. 磁盤時間百分比(%Disk Time) 選中的邏輯磁盤忙于服務讀請求或寫請求總共用的時間
的百分比,是磁盤寫時間百分比與磁盤讀時間百分比的和。
4. 空閑時間百分比(%Idle Time) 邏輯磁盤在采樣時間間隔中處于空閑狀態的時間百分比。
5. 平均磁盤隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的邏輯磁盤讀請求和寫請求排隊的平均數量。
6. 平均磁盤讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,對選中的邏輯磁盤讀請求排隊的平均數量。
7. 平均磁盤寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,對選中的邏輯磁盤寫請求排隊的平均數量。
8. 平均磁盤秒數/讀( Avg. Disk sec/Read) 從邏輯磁盤讀數據的平均時間,以秒為單位。
9. 平均磁盤秒數/寫( Avg. Disk sec/Write) 向邏輯磁盤寫數據的平均時間,以秒為單位。
10. 平均磁盤秒數/傳輸( ( Avg. Disk sec/Transfer) 從邏輯磁盤進行傳輸的平均時間,以秒為單位。
11. 磁盤讀/秒(Disk Reads Bytes/sec) 邏輯磁盤上每秒讀字節。
12. 磁盤讀/秒(Disk Writes Bytes/sec) 邏輯磁盤上每秒寫字節。
13. 磁盤讀/秒(Disk Reads/sec) 邏輯磁盤上的讀操作比率。
14. 磁盤寫/秒(Disk Writes/sec) 邏輯磁盤上的寫操作比率。
15. 磁盤傳輸/秒(Disk Transfers/sec) 邏輯磁盤上的讀和寫操作的比率。
十一、 物理磁盤對象(PhysicalDisk Object)
物理磁盤對象提供了有關物理磁盤I / O性能的信息。它的磁盤計數器與系統中的物理驅動器有關,并且只有當運行了D i s k P e r f服務時,它才被激活。這個對象下的計數器如下所示:
1. 磁盤讀時間百分比(%Disk Read Time) 選中的物理磁盤忙于服務讀請求總共用的時間的百分比。
2. 磁盤寫時間百分比(%Disk Write Time) 選中的物理磁盤忙于服務寫請求總共用的時間的百分比。
3. 磁盤時間百分比(%Disk Time) 選中的物理磁盤忙于服務讀請求或寫請求總共用的時間的百分比,是磁盤寫時間百分比與磁盤讀時間百分比的和。
4. 空閑時間百分比(%Idle Time) 物理磁盤在采樣時間間隔中處于空閑狀態的時間百分比。
5. 平均磁盤隊列長度( Avg. Disk Queue Length) 在采樣的時間間隔中,選中的物理磁盤讀請求和寫請求排隊的平均數量。
6. 平均磁盤讀隊列長度( Avg. Disk Read Queue Length) 在采樣的時間間隔中,選中的物理磁盤讀請求排隊的平均數量。
7. 平均磁盤寫隊列長度( Avg. Disk Write Queue Length) 在采樣的時間間隔中,選中的物理磁盤寫請求排隊的平均數量。
8. 平均磁盤秒數/讀( Avg. Disk sec/Read) 從物理磁盤讀數據的平均時間,以秒為單位。
9. 平均磁盤秒數/寫( Avg. Disk sec/Write) 向物理磁盤寫數據的平均時間,以秒為單位。
10. 平均磁盤秒數/傳輸( Avg. Disk sec/Transfer) 從物理磁盤進行傳輸的平均時間,以秒為單位。
11. 磁盤讀/秒(Disk Reads Bytes/sec) 物理磁盤上每秒讀字節。
12. 磁盤讀/秒(Disk Writes Bytes/sec) 物理磁盤上每秒寫字節。
13. 磁盤讀/秒(Disk Reads/sec) 物理磁盤上的讀操作比率。
14. 磁盤寫/秒(Disk Writes/sec) 物理磁盤上的寫操作比率。
15. 磁盤傳輸/秒(Disk Transfers/sec) 物理磁盤上的讀和寫操作的比率。
十二、 內存
內存在任何系統中都是一個非常有價值的資源。Windows NT不只允許過量使用內存,而且鼓勵你過量使用內存。Windows NT提供了一種透明機制,允許應用“相信”它們具有比系統中可用的物理內存更多的內存。當Windows NT處理應用時,它將不使用的內存頁調出(交換出)到磁盤上的頁文件中。在大多數系統中,頁調度是正常的,但過量的頁調度會削弱整個系統的性能。下面的計數器允許你監控系統的頁調度。
1. 失效的頁/秒(Page Faults/sec) 每秒由處理器處理的失效頁的全部數量。當一個進程需要的代碼或數據不在它的工作區(它的空間在物理內存中)中時,發生失效頁。這個計數器包括硬的頁失效(那些需要磁盤訪問的)和軟的頁失效(在物理內存的其他地方發現了失效頁)。
2. 讀的頁/秒(Page Reads/sec) 讀取磁盤以解決硬的頁失效所需要的時間數(當一個進程需要的代碼或數據不在其工作區或內存中的其他地方,必須從磁盤提取這些代碼和數據時,發生硬的頁失效)。這個計數器包括為滿足在文件系統高速緩存(通常是應用請求的)以及在非高速緩存映像內存文件中的失效而進行的讀。
3. 寫的頁/秒(Page Writes/sec) 將頁寫向磁盤以釋放物理內存空間的時間數。只有當頁在物理內存中被改變的時候,將頁寫入磁盤,這樣,它們更有可能含有數據,而不是代碼。
4. 頁/秒(Pages/sec) 是指為解決硬頁錯誤從磁盤讀取或寫入磁盤的速度。這個計數器是可以顯示導致系統范圍延緩類型錯誤的主要指示器。它是 Memory\\Pages Input/sec 和 Memory\\Pages Output/sec 的總和。是用頁數計算的,以便在不用做轉換的情況下就可以同其他頁計數如: Memory\\Page Faults/sec 做比較,這個值包括為滿足錯誤而在文件系統緩存(通常由應用程序請求)的非緩存映射內存文件中檢索的頁。