監視效能臨界值簡介

更新:2007 年 11 月

Windows 用來收集各種系統資源相關效能資料的機制就是「效能計數器」。Windows 中包含一組您可以與其互動的預先定義的效能計數器;其中有些在 Windows 2000 電腦中找得到,某些則是針對特定的應用程式自訂,只能在特定電腦中找到。每個計數器都與特定區域的系統功能有關。範例包含監控處理器忙碌時間、記憶體用量或透過網路連線所接收到的位元組數的計數器。您可以使用 PerformanceCounter 元件執行個體直接連接到現有的效能計數器,並以動態方式與它們的資料進行互動。

效能計數器會負責監控電腦中「效能物件」的行為。其中包含諸如處理器、磁碟和記憶體的實體元件,以及諸如處理序和執行緒的系統物件。在 Visual Studio 和 Windows Software Development Kit (SDK) 中,這些效能物件都會顯示為分類,而與相同效能物件有關的系統計數器,則會群組為指示其共同焦點 (Focus) 的分類。當您建立 PerformanceCounter 元件的執行個體時,首先必須指出此分類將與哪個元件產生互動,再從該分類中選擇要互動的計數器。

例如,Memory 分類是 Windows 的計數器分類之一。此分類中的系統計數器負責追蹤諸如可用位元組和快取位元組之類的資料。若要處理應用程式中的快取位元組,您可以建立 PerformanceCounter 元件的執行個體,並將其連接到 Memory 分類,接著在此分類中選取適當的計數器 (在這個例子中是 Cached Bytes)。

在某些情況下,分類會進一步細分為執行個體。執行個體會追蹤關於與分類有關的物件的多重項目資料。重要的是,請注意執行個體是套用於整個分類,而不是套用於個別的計數器。分類中的所有計數器都具有為該分類定義的執行個體。例如,Process 分類中包含稱為「Idle」和「System」的執行個體。Process 分類中的每個計數器都會以這兩種方式指定資料,以顯示與閒置 (Idle) 處理序或系統處理序有關的資訊。分類與計數器的結構看起來如下:

分類、執行個體和計數器

Visual Basic 分類執行個體

如您所見,Process 分類中包含兩個執行個體,因此此分類中的兩個計數器也都包含 Idle 和 System 執行個體。如需執行個體的詳細資訊,請參閱 HOW TO:新增及移除效能計數器執行個體

雖然您的系統中可以使用許多分類的計數器,但是可能互動頻率最多的預設分類包含 Cache、Memory、Objects、PhysicalDisk、Processor、Server、System 和 Thread 分類。

效能計數器資料

效能計數器記錄有關系統各個部分的數值。這些數值並不是儲存為項目,而是在記憶體中保存 (Persist) 為維持為特定分類開啟狀態的控制代碼。從效能計數器擷取資料的過程稱為「取樣」。當您取樣時,可以擷取計數器的即時值或計算值。

視計數器的定義而定,其值可能是資源利用的最新狀況,稱為「瞬間值」,也可能是取樣之間的時間內,最後兩次測量的平均值。例如,當您擷取 Process 分類的 Thread Count 計數器值時,所擷取的是最後測量的特定處理序的執行緒數目。這是個瞬間值。但是,如果您擷取的是 Memory 分類的 Pages/Sec 計數器,您將擷取的是以最後兩個取樣期間所擷取的平均記憶體頁面數為基礎的每秒取樣率。

資源使用狀況會依照每天各個時間所進行的工作不同而有非常大的變動。因此,顯示一段間隔使用率的效能計數器是比顯示計數器平均瞬間記數器值的計數器更有用的資訊測量法。平均值可以包含服務啟動或可能在短暫期間內造成數值遠超過正常範圍使結果偏離的其他事件資料。

PerformanceCounter 元件會提供最常見之 Windows 效能監視所需的工具,那就是連接到伺服器中現有的計數器,並讀取和寫入值。也可以直接透過 [Windows 效能監視器] 取得其他功能,例如複雜的資料模型。例如,您可以使用 [效能監視器] 來繪製計數器包含資料的圖形、執行資料報表、設定警示,以及將資料儲存至記錄檔。

在 .NET 應用程式中使用效能計數器

利用 PerformanceCounter 元件,您可以連接到可存取之伺服器上的現有計數器,也可以建立自己的自訂效能計數器。您可以讀取任何計數器的資料,並將數值寫入到自己的自訂計數器中。

當您要連接到現有的效能計數器時,您可以藉由指定具有計數器的電腦、計數器的分類及計數器本身的名稱的方式達成。此外,如果計數器包含一個以上的執行個體時,您也可以選擇指定希望使用的計數器執行個體。之後便可以讀取計數器中的任何或所有資料。您也可以使用程式碼來列舉電腦中現有的分類、計數器和執行個體,或是使用 [伺服器總管] 來檢視電腦中現有計數器的清單。

當您建立新的計數器時,必須為本機電腦指定全新的分類。不可以將計數器加入至現有的分類或在遠端電腦中建立新的計數器。但是,您可以寫入資料到您所建立的任何自定計數器或讀取其中的資料。

您可以在 [伺服器總管] 中展開 [效能計數器] 節點,來檢視存在於伺服器中的計數器 (按分類),以及將計數器分類所按照之執行個體的清單。您也可以從 [伺服器總管] 拖曳特定的效能計數器或執行個體到 Microsoft Visual Studio 的 [元件設計工具] 中,以建立會將其屬性自動設定成指向所選計數器之 PerformanceCounter 元件的執行個體。

如果在 ASP.NET 應用程式中使用 PerformanceCounter 元件,ASPNET 使用者帳戶的預設設定會限制對效能計數器的存取。根據預設,ASPNET 使用者帳戶可寫入效能計數器但不能從中讀取,而且它也無法建立新的分類。您可以將模擬 (Impersonation) 與 ASPNET 帳戶搭配使用,以供建立新的分類。模擬識別 (Identity) 必須有足夠的權限才能建立分類。如果您的應用程式需要可以在部署前指定的效能計數器,這些計數器可以由部署專案建立。如需詳細資訊,請參閱 ASP.NET Web 應用程式安全性

注意事項:

您可以滑鼠右鍵按一下 [伺服器總管] 中的 [效能計數器] 節點,並選擇適當的功能表命令,來建立新的計數器分類。也可以以滑鼠右鍵按一下特定節點來編輯現有的分類。

如需詳細資訊,請參閱伺服器總管/資料庫總管

限制

在這個版本中,當您建立自訂效能計數器時,必須先重新啟動與 Windows 2000 一起安裝的效能監視器 (Perfmon.exe),之後才能在該應用程式中看到自訂計數器。

Microsoft Windows NT 4.0 版並未完全支援 PerformanceCounter 類別。您可讀取系統計數器,但是您無法建立、寫入或刪除自訂計數器。

請參閱

概念

效能計數器資料分析

效能計數器的程式設計架構

效能計數器存留期

效能計數器類型