監視常用計數器

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1

上次修改主題的時間: 2008-11-03

本主題提供的指導是有關監視所有 Microsoft Exchange Server 2007 伺服器角色常見最有用的效能計數器。當監視 Exchange 2007 伺服器時,您應該知道最重要的效能層面。本主題詳述的常用計數器和閾值可以用來主動識別潛在問題,以及在疑難排解時協助識別問題的根本原因。

處理器和處理程序計數器

一般而言,識別伺服器是否受限於處理器的方法非常直接。請使用下表所列的計數器,來判斷處理器上是否發生爭用的現象。

計數器 預期值

Processor(_Total)\% Processor Time

顯示處理器執行應用程式或作業系統處理程序的時間百分比。這是處理器未閒置的時間。

平均應該小於 75%。

Processor(_Total)\% User Time

顯示使用者模式中所用到的處理器時間百分比。

使用者模式是一種受限的處理模式,設計給應用程式,環境子系統及整合子系統使用。

應該維持低於 75%。

Processor(_Total)\% Privileged Time

顯示特殊權限模式中所用到的處理器時間百分比。特殊權限模式是一種處理模式,設計給作業系統元件和硬體操作驅動程式使用。並允許直接存取硬體和所有記憶體。

應該維持低於 75%。

Process(*)\% Processor Time

顯示所有用來執行指令之處理程序執行緒的已經歷處理器時間百分比。指令是電腦的基本執行單位、執行緒是執行指令的物件,而處理程序是執行程式時建立的物件。此計數包含為了處理某些硬體插斷和設陷條件而執行的程式碼。

如果總處理器時間太高,請使用此計數器來判斷造成高 CPU 的處理程序。

不適用。

System\Processor Queue Length (所有執行個體)

指出每個處理器服務的執行緒數目。

Processor Queue Length 可用來識別處理器爭用或高 CPU 使用是否是因為處理器容量不足以處理指派給它的工作負載所造成。Processor Queue Length 顯示在 Processor Ready Queue 中延遲且等待安排執行的執行緒數目。列出的值是進行測量時的最後一個觀察值。

在具有單一處理器的電腦上,觀察到佇列長度大於 5 時,是警告您經常有高於處理器可以輕鬆處理的工作。當此數字大於 10 時,就十分明顯地表示處理器已達飽和,尤其是 CPU 使用也高時。

在具有多處理器的系統上,會將佇列長度除以實體處理器數目。使用硬處理器相關性 (將處理程序指派給特定 CPU 核心) 設定的多處理器系統 (具有較大的佇列長度值),表示組態不均衡。

雖然 Processor Queue Length 一般不是用於容量規劃,但是它可以用來識別環境內的系統是否可以執行負載,或是否應該針對之後的伺服器購買額外的處理器或更快速的處理器。

每個處理器不應該大於 5。

記憶體計數器

Exchange 2007 使用的記憶體會因 Exchange 2007 操作方式的許多變更而高於 Exchange Server 2003。Exchange 2003 只可以處理 4 GB 的實體記憶體。而且,作業系統本身也有其他限制 (例如分頁集區和非分頁集區記憶體),進而以許多方式影響作業系統核心。資訊儲存庫的整體資料庫快取大小也有其限制,因而限制儲存處理程序可以耗用的記憶體數量。

而在 64 位元平台上執行的 Exchange 2007,會移除大部分這些限制。Exchange 2007 最多可以處理任何特定伺服器中安裝的 RAM 數量。伺服器的記憶體愈多,資訊儲存庫處理程序整體耗用或快取的資訊就愈多。主要優點是會重複使用儲存區快取中的資料,而不是從磁碟讀取或寫入特定資料,因此可以在記憶體中執行較多的作業。如需可延伸儲存引擎 (ESE) 資料庫快取以及 Exchange 2007 與 Exchange 2003 間的差異相關資訊,請參閱 Exchange 2007 中的 ESE 資料庫快取大小。如需規劃 Exchange 2007 記憶體組態的詳細指導,請參閱規劃記憶體組態

請使用下表所列的計數器,來判斷是否發生任何記憶體相關的問題。

計數器 預期值

Memory\Available Mbytes

顯示配置給處理程序後立即可用或供系統使用的實體記憶體數量 (MB)。它等於指派給待命 (快取)、可用和零頁清單的記憶體總和。如需記憶體管理員的完整說明,請參閱 Microsoft Developer Network (MSDN) 或 Windows Server 2003 Resource Kit 中的《System Performance and Troubleshooting Guide》。

應該永遠維持高於 100 MB。

Memory\Pool Nonpaged Bytes

包含的系統虛擬位址保證一定常駐於實體記憶體,因此可以從任何位址空間存取,而不需要進行分頁輸入/輸出 (I/O)。非分頁集區與分頁集區一樣,都是在系統初始化期間建立,並供核心模式元件配置系統記憶體使用。

除非連線計數因每個 TCP 連線耗用非分頁集區記憶體而變得非常高,否則通常不需要考慮。

不適用。

Memory\Pool Paged Bytes

顯示可以分頁至磁碟分頁檔之共用系統記憶體的部分。分頁集區是在系統初始化期間建立,並供核心模式元件配置系統記憶體使用。

監視指出可能記憶體流失的集區分頁位元組增加。

不適用。

Memory\Cache Bytes

顯示目前的檔案系統快取大小 (位元組)。快取預設最多可使用 50% 的可用實體記憶體。此計數器值是 Memory\System Cache Resident Bytes、Memory\System Driver Resident Bytes、Memory\System Code Resident Bytes 和 Memory\Pool Paged Resident Bytes 的總和。

應該在應用程式快取它們的記憶體使用量之後維持穩定。請檢查此計數器的大幅下跌,這可能是工作集調整和過多分頁所造成。

供內容索引類別目錄和連續複寫記錄複製使用。

不適用。

Memory\Committed Bytes

顯示認可虛擬記憶體數量 (位元組)。認可記憶體是保留在磁碟分頁檔上的實體記憶體空間。每個實體磁碟機可以有一個或多個分頁檔。這個計數器只會顯示最新的觀察值,它不是平均值。

判斷認可的使用中位元組數量。

不適用。

Memory\%Committed Bytes in Use

顯示 Memory\Committed Bytes 對 Memory\Commit Limit 的比例。認可記憶體是保留在分頁檔中的使用中實體記憶體空間,而且應該寫回磁碟。認可限制是由分頁檔大小決定。如果分頁檔變大,則認可限制會變寬,而比例會減少。這個計數器只會顯示目前的百分比值,它不是平均值。

如果此值非常高 (超過 90%),則可能會開始看到認可失敗。這清楚表示系統具有記憶體壓力。

不適用。

記憶體分頁計數器

伺服器的負載過重或記憶體受限時,作業系統會開始將記憶體區塊或分頁移出至分頁檔,讓目前的要求處理程序具有足夠的記憶體可以完成它的要求工作。如果處理程序要求記憶體中的分頁,但在要求的位置找不到此分頁,就會發生分頁錯誤。這稱為「硬體分頁錯誤」。如果分頁位在記憶體的其他位置,則這稱為「軟分頁錯誤」。大部分的處理器都可以處理軟分頁錯誤,而不會造成效能問題。如果應用程式或處理程序接著要求先前從分頁移除的記憶體區塊,則需要將此記憶體轉移回記憶體快取。因為會從分頁檔讀取更多資料或將更多資料寫入分頁檔,進而耗用整體處理器時間,所以此處理程序會嚴重影響伺服器的整體效能。

請使用下表所列的計數器,來判斷是否發生任何分頁檔問題。

計數器 預期值

Memory->Transition Pages Repurposed/sec

指出系統快取壓力。

平均應該小於 100。

尖峰應該小於 1,000。

Memory\Page Reads/sec

表示必須從磁碟讀取資料,而不是從記憶體。也表示記憶體不足,正在開始分頁。每秒高於 30 的值表示伺服器不再足以處理負載。

平均應該小於 100。

Memory\Pages/Sec

顯示從磁碟讀取分頁或將分頁寫入磁碟以解決硬體分頁錯誤的速率。此計數器是造成整體系統延遲之錯誤的主要指標。它是 Memory\Pages Input/sec 和 Memory\Pages Output/sec 的總和。而它的計算單位是分頁數目,因此可以與其他分頁計數 (例如 Memory\Page Faults/sec) 進行比較,而不需要進行轉換。它包含擷取以滿足檔案系統快取 (通常是由應用程式所要求) 和非快取對應記憶體檔案中錯誤的分頁。

Pages/sec 計數器傳回的值可能會超出預期。這些值可能會與分頁檔活動或快取活動無關。這些值可能是由接著讀取記憶體對應檔案的應用程式所造成。

使用 Memory\Pages Input/sec 和 Memory\Pages Output/sec,可以判斷分頁檔 I/O。

平均應該低於 1,000。

Memory\Pages Input/sec

顯示從磁碟讀取分頁以解決硬體分頁錯誤的速率。如果處理程序參照虛擬記憶體中不在其工作集或在實體記憶體內其他位置的分頁,而且必須從磁碟進行擷取,則會發生硬體分頁錯誤。分頁錯誤之後,系統會嘗試將多個連續分頁讀入記憶體,以最大化讀取作業的優點。請比較 Memory\Pages Input/sec 的值與 Memory\Page Reads/sec 的值,以判斷在每個讀取作業期間讀入記憶體的平均分頁數。

平均應該低於 1,000。

Memory\Pages Output/sec

顯示將分頁寫入磁碟以釋出實體記憶體空間的速率。只有在實體記憶體中的分頁變更時,才會將分頁寫回磁碟,因此它們可能是保留資料,而不是撰寫程式碼。高的分頁輸出速率可能指示記憶體不足。Microsoft Windows 會在實體記憶體不足時將更多分頁寫回磁碟,以釋出空間。此計數器顯示分頁數,而且可以與其他分頁計數進行比較,而不需進行轉換。

平均應該低於 1,000。

處理程序記憶體耗用計數器

系統上的所有應用程式和服務會以處理程序形式執行,而且對監視這些處理程序是否發生異常記憶體或處理器耗用十分重要。使用下表所列的計數器 (以及下列兩節中的計數器),有助於找出可能獨佔系統資源的處理程序。

計數器 預期值

Process(*)\Private Bytes

顯示此處理程序已配置但無法與其他處理程序共用的目前位元組數目。

此計數器可以用於判斷處理程序的任何記憶體流失。

如果是資訊儲存庫處理程序,請比較此計數器值與資料庫快取大小,以判斷資訊儲存庫處理程序是否發生記憶體流失。資訊儲存庫私人位元組的增加以及資料庫快取的相同增加是正確的行為 (未發生記憶體流失)。

不適用。

Process(*)\Virtual Bytes

代表處理程序目前耗用的虛擬位址空間量 (位元組)。

用來判斷處理程序是否耗用大量虛擬記憶體。

不適用。

處理程序工作集計數器

此計數器適用於判斷處理程序的工作集是否增加,這會耗用其他記憶體,並導致速度比正常效能還要慢。

計數器 預期值

Process(_Total)\Working Set

顯示此處理程序工作集的目前大小 (位元組)。工作集是處理程序中的執行緒最近接觸過的記憶體分頁集合。如果電腦的可用記憶體高於閾值,則即使未使用分頁,分頁還是會留在處理程序的工作集中。當可用記憶體低於閾值時,則會從工作集中修剪分頁。如果需要這些分頁,則會在它們離開主要記憶體之前,先將它們以軟錯誤方式送回工作集。

工作集的大量增加或減少都會導致分頁。

確保分頁檔設定為建議值 RAM+10。如果正在修剪工作集,請新增 Process(*)\Working set,以查看對處理程序的影響。此計數器表示是整個系統或整個處理程序的問題。使用 Memory\System Cache Resident Bytes 以交互參照此計數器,來查看是否正在進行整個系統的工作集修剪。

不適用。

處理程序控制碼計數器

此計數器適用於判斷處理程序的控制碼計數是否增加,這會耗用其他記憶體,並導致速度比正常效能還要慢。

計數器 預期值

Process(*)\Handle Count

顯示此處理程序目前開啟的控制碼總數。此數目是這個處理程序中每個執行緒目前所開啟的控制碼總和。

特定處理程序的控制碼計數增加可能是錯誤處理程序帶有控制碼流失的徵兆,因而導致伺服器的效能問題。這不一定是問題,但是會監視某個項目一段時間以判斷是否發生控制碼流失。

不適用。

.NET Framework 計數器

Microsoft .NET Framework 是 Exchange 2007 的必要項目。大部分的 Exchange 2007 元件都已根據此架構使用 Managed 程式碼完全重新撰寫。Managed 程式碼提供的部分重要優點優於 Unmanaged 程式碼 (例如即時編譯應用程式),因此您在不同架構或平台上執行應用程式時也不需要擔心。Managed 程式碼也提供有效率管理記憶體的功能。因為語言會共用相同的執行階段,所以 Microsoft .NET 連線軟體可使用 Common Language Runtime (CLR) 進行不同語言的較簡單程式碼撰寫。任何使用目標設定為執行階段的語言編譯器所開發的程式碼,稱為「Managed 程式碼」(如 Common Language Runtime 概觀所述)。

即時建置或編譯應用程式有其優點 (例如進行此編譯時可增加效能)。在 Exchange 安裝處理程序期間,會預先編譯 Exchange 元件,而明顯增加安裝時間。不過,結果是初始載入時間現在會較小,因而增加伺服器效能。這些編譯後的二進位檔會儲存在本機電腦的全域組件快取 (GAC) 中。此預先編譯處理程序稱為 NGEN。如需 NGEN 的相關資訊,請參閱原生映像產生器 (Ngen.exe)

Exchange 2007 具有其他依存性 (例如 Windows 核心和 .NET CLR 記憶體管理)。這是 Exchange 中您必須監視的其中一個較重要部分,原因是如果未正確管理記憶體或記憶體嚴重分散,則可能會發生過多的分頁,導致不想要的處理能源增加,進而嚴重影響整體用戶端延遲。

監視下表中的計數器有助於判斷 Managed 應用程式是否會造成過多「廢棄項目收集」。廢棄項目收集基本上是 CLR 內的一種方法,用以釋出不再使用之物件的記憶體。如果您需要長期釋出大量記憶體,則記憶體限制可能是伺服器的可用記憶體不足,或應用程式因記憶體流失而耗用高於其記憶體共用的記憶體。如需 CLR 自動記憶體管理的相關資訊,請參閱 Automatic Memory Management (英文)。

請使用下表所列的計數器,協助識別基礎 .NET Framework 問題。

計數器 預期值

.NET CLR Memory(*)\% Time in GC

顯示發生廢棄項目收集的時間。計數器超出閾值時,表示正在清理 CPU,而且未有效率地使用 CPU 進行載入。而將記憶體新增至伺服器可以改善這種情況。

如果此計數器值增加地太高,則部分物件會在 Gen 1 廢棄項目收集存留,而升級為 Gen 2。Gen 2 集合需要完整通用類別目錄才能進行清理。請新增其他 .NET 記憶體計數器,以判斷是否為這種情況。

平均應該低於 10%。

.NET CLR Exceptions(*)\# of Excepts Thrown / sec

顯示每秒擲出的例外狀況數目。這些包含 .NET 例外狀況以及會轉換為 .NET 例外狀況的未管理例外狀況。例如,Unmanaged 程式碼中的 Null 指標參照例外狀況會使用 Managed 程式碼以 .NET System.NullReferenceException 重新擲出;此計數器包含處理和未處理的例外狀況。例外狀況只有在極少的情況下才會發生,而且不是程式的一般控制流程。此計數器的設計是為指出因擲出例外狀況的高 (>100 秒) 速率而造成的潛在效能問題。此計數器不是一段時間的平均值,而是顯示最後兩個範例中除以範例間隔持續時間所觀察到的值之間的差異。

應該小於 5% 的總 RPS (Web Server(_Total)\Connection Attempts/sec * .05)。

.NET CLR Memory(*)\# Bytes in all Heaps

顯示其他四個計數器的總和:Gen 0 Heap Size、Gen 1 Heap Size、Gen 2 Heap Size 和 Large Object Heap Size。此計數器表示 GC 堆積上配置的目前記憶體 (位元組)。

這些記憶體區域的類型是 MEM_COMMIT (如需詳細資訊,請參閱 Platform SDK 文件中的 VirtualAlloc)。此計數器的值一律會小於 Process\Private Bytes 的值,後者會計算處理程序的所有 MEM_COMMIT 區域數目。Private Bytes 減去 # Bytes in all Heaps 就是未管理物件認可的位元組數目。

用來監視受管理或未管理物件的可能記憶體流失或過多記憶體使用。

不適用。

網路計數器

網路及其部署方式對於 Exchange 伺服器的正確效能相當重要。每秒 100 MB (Mbps) 的網路通常即可為大多數組織提供足夠的頻寬,因此網路發生受限於網路的問題並不常見。不過,隨著每台伺服器的郵件大小和使用者人數不斷增加,請務必確定網路不會成為瓶頸。

請使用下表所列的計數器,來判斷是否有任何網路效能降低的情形。

計數器 預期值

Network Interface(*)\Bytes Total/sec

指出網路介面卡處理資料位元組的速率。

此計數器包含所有應用程式和檔案資料,以及像是封包標頭的通訊協定資訊。

如果是 100-Mbps 的網路介面卡,則應該低於 6–7 Mbps。

如果是 1000-Mbps 的網路介面卡,則應該低於 60-70 Mbps。

Network Interface(*)\Packets Outbound Errors

指出因錯誤而無法傳出的封包數。

應該永遠為 0。

IPV4\Datagrams/sec

IPV6\Datagrams/sec

顯示介面每秒傳送和接收 IP 資料包的速率 (包含發生錯誤的資料包)。此速率並不包含轉寄的資料包。

判斷目前的使用者負載。

不適用。

TCPv4\Connections Established

TCPv6\Connections Established

顯示目前狀態是 ESTABLISHED 或 CLOSE-WAIT 的 TCP 連線數目。

可以建立的 TCP 連線數目受限於非分頁集區的大小。用完非分頁集區之後,就無法再建立新的連線。

判斷目前的使用者負載。

不適用。

TCPv4\Segments Received/sec

TCPv6\Segments Received/sec

顯示區段接收速率 (包含發生錯誤的區段)。此計數包含在目前建立的連線上接收到的區段。

判斷目前的使用者負載。

不適用。

TCPv4\Connection Failures

TCPv6\Connection Failures

顯示 TCP 連線從 SYN-SENT 狀態或 SYN-RCVD 狀態直接轉移到 CLOSED 狀態的次數,加上 TCP 連線從 SYN-RCVD 狀態直接轉移到 LISTEN 狀態的次數。

失敗次數的增加或失敗速率的持續增加,都表示頻寬不足。

TCPv4\Connections Reset

TCPv6\Connections Reset

顯示 TCP 連線從 ESTABLISHED 狀態或 CLOSE-WAIT 狀態直接轉移到 CLOSED 狀態的次數。

部分瀏覽器會傳送 TCP 重設 (RST) 資料包,因此使用此計數器判斷重設速率時請小心。

重設次數的增加或重設速率的持續增加,都表示頻寬不足。

Exchange 網域控制站連線計數器

Exchange 2007 根據的是通用類別目錄網域控制站的效能。請針對拓撲中的每部 Exchange 伺服器,使用下表所列的計數器來判斷與通用類別目錄的通訊是否變慢。

請使用下表所列的計數器,來判斷是否有任何網路效能降低的情形。

計數器 預期值

MSExchange ADAccess Caches(*)\LDAP Searches/Sec

顯示每秒發出的輕量型目錄存取通訊協定 (LDAP) 搜尋要求數目。

用來判斷目前的 LDAP 搜尋速率。

不適用。

MSExchange ADAccess Domain Controllers(*)\LDAP Read Time

顯示將 LDAP 讀取要求傳送至指定的網域控制站並接收回應的時間 (毫秒)。

平均應該低於 50 毫秒。

尖峰 (最大值) 不應該高於 100 毫秒。

MSExchange ADAccess Domain Controllers(*)\LDAP Search Time

顯示傳送 LDAP 搜尋要求並接收回應的時間 (毫秒)。

平均應該低於 50 毫秒。

尖峰 (最大值) 不應該高於 100 毫秒。

MSExchange ADAccess Processes(*)\LDAP Read Time

顯示將 LDAP 讀取要求傳送至指定的網域控制站並接收回應的時間 (毫秒)。

平均應該低於 50 毫秒。

尖峰 (最大值) 不應該高於 100 毫秒。

MSExchange ADAccess Processes(*)\LDAP Search Time

顯示傳送 LDAP 搜尋要求並接收回應的時間 (毫秒)。

平均應該低於 50 毫秒。

尖峰 (最大值) 不應該高於 100 毫秒。

MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute

顯示最後一分鐘傳回 LDAP_Timeout 的 LDAP 搜尋數目。

所有角色都應該永遠低於 10。

高的值表示是 Active Directory 資源問題。

MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min

顯示此網域控制站上每分鐘所需時間較指定閾值長的 LDAP 作業數目 (預設閾值為 15 秒)。

應該永遠小於 50。

高的值表示是 Active Directory 資源問題。

Active Directory 網域控制站效能

下列各節提供 Active Directory 網域控制站效能的資訊,其中包含 Windows Server 2008 或 Windows Server 2003 作業系統上執行之網域控制站的特定資訊。

note附註:
下列各節不適用於已安裝 Edge Transport server role 的 Exchange 2007 伺服器。

一般資訊

因為所有 LDAP 和驗證要求都是由網域控制站或一系列的網域控制站所處理,所以 Active Directory 回應時間會直接影響任何 Exchange 伺服器的效能。進行疑難排解時,如果將 LDAP 延遲判斷為導致 Exchange 伺服器的效能問題的原因,則下一個邏輯步驟是將焦點導向網域控制站。

Windows Server 2008 網域控制站效能指導

為了協助疑難排解 Windows Server 2008 網域控制站的效能相關問題,可以使用資料收集器集合工具以利用可靠性和效能監視器來監視 Active Directory 效能。

在 Windows Server 2008 網域控制站上,收集器範本是位於 [可靠性和效能\資料收集器集合工具\系統\Active Directory 診斷] 下的 [可靠性和效能監視器]。此工具會收集五分鐘的資料,並在 [可靠性和效能\報告\系統\Active Directory 診斷] 下產生報告。此報告可協助您判斷伺服器是否發生任何潛在瓶頸。例如,您可以使用可靠性和效能監視器來協助判斷是否發生任何長時間執行的 LDAP 搜尋,而這種情況會降低整體效能和 LDAP 回應時間。您也可以判斷是否存在潛在的 CPU 或磁碟瓶頸。

如需 Windows Server 2008 可靠性和效能監視器的相關資訊,請參閱 Performance and Reliability (英文)。

Windows Server 2003 網域控制站效能指導

為了協助疑難排解 Windows Server 2003 網域控制站的效能相關問題,可以使用 Server Performance Advisor 來協助自動化資料收集。

如需下載 Server Performance Advisor 的相關資訊,請參閱 Microsoft Windows Server 2003 Performance Advisor (英文)。

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.