如何手動重建效能計數器程式庫的值

文章翻譯 文章翻譯
文章編號: 300956 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您如何手動重建效能計數器程式庫值。

其他相關資訊

重要這個章節、 方法或工作包含告訴您如何修改登錄的步驟。不過,如果您不當修改登錄,可能會發生嚴重的問題。因此,請確定小心執行這些步驟。為加強保護,請先備份登錄再進行修改。然後,您可以在發生問題時還原登錄。如需有關如何備份和還原登錄的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
322756 如何備份及還原 Windows 中的登錄
當您使用「系統監視器」工具時,某些計數器可能遺失或不包含計數器的資料。效能計數器程式庫的基礎設定可能會損毀,而且可能需要重建。此外,您可能需要重新建立任何自訂的 (.NET Framework 應用程式建立) 計數器或任何可延伸計數器。

如果某些可延伸計數器造成登錄損毀,或是一些 Windows Management Instrumentation (WMI) 架構的程式修改登錄,則可能會發生這個問題。

重建基礎效能計數器

可延伸計數器資訊會儲存在兩個下列位置:
  • 下列的登錄子機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009
  • %Systemroot%\System32\Perfc009.dat 和 %Systemroot%\System32\Perfh009.dat 檔案
若要以手動方式重建的基礎效能計數器程式庫,請依照下列步驟執行:
  1. 展開Perfc009.datPerfh009.dat檔案。在 Windows 安裝光碟上可找到這些檔案。在找不到壓縮的檔案 磁碟機代號: \i386\perfc009.da_ 和 磁碟機代號: \i386\perfh009.da_。取代 %Systemroot%\System32 資料夾中的檔案。
  2. 啟動登錄編輯程式,然後在登錄中找到下列機碼:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
  3. 在登錄中,將最後一個計數器的值變更為1846年(十進位),並將最後一個幫助的值變更為1847年(十進位)。
  4. 找出下列登錄機碼,以搜尋有 Performancesubkey 的服務:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
  5. 從效能子機碼中移除下列的值 (ifthey 存在):
    • 第一個計數器
    • 第一個說明
    • 最後一個計數器
    • 最後一個說明
    您也可以使用 Exctrlst.exe 工具來找出 theperformance 計數器動態連結程式庫 (Dll) 安裝檔案,然後存取登錄,以移除三個 DWORD 值。現在,您會有包含系統基底計數器 workableperformance 登錄。

    附註移除在登錄中的效能子機碼值可能會造成已安裝的.NET Framework 應用程式下次啟動時不能運作。如果發生這種情況,使用"重新加入可延伸計數器"區段中的 lodctr /R 命令,以重建效能計數器。如果仍然有問題,當您啟動 .NET Framework 應用程式時,請參閱本文的「重新安裝任何自訂的 .NET Framework 組件的效能計數器」一節。

重新新增可延伸計數器

您必須從服務清單中重新加入可延伸計數器。執行這項操作之前,您必須識別用來載入計數器的 .ini 檔:
  1. 開啟 [命令提示字元] 視窗。
  2. 在命令提示字元中,輸入 cd%Systemroot%\System32然後按 ENTER 鍵。
  3. 在命令提示字元中,輸入 findstr drivername*.ini然後按 ENTER 鍵。
  4. 請注意在 thelist 中的每個 drivername 的.ini 檔案的名稱。
  5. 在命令提示字元中,輸入下列命令和 thenpress ENTER:
    lodctrinifile>
    附註這個命令中, <inifile></inifile> 代表您要重新載入的驅動程式.inifile 名稱。
    例如,如果要重新載入 ASP 驅動程式,您在步驟 4 中記下清單的 youwant 顯示 thatAxperf.ini 是 ASP 驅動程式 (axperf.ini:drivername=ASP) 的.ini 檔案。因此,若要重新載入 ASP 驅動程式,輸入 lodctraxperf.ini 在命令提示字元],然後按 ENTER 鍵。
  6. 針對每個清單中的.ini 檔案重複步驟 5。
  7. 重新啟動電腦。
若要重建所有的效能計數器,包括 Windows Server 2003 中的可延伸和協力廠商計數器,請在命令提示字元中輸入下列命令。在每一行命令之後按 ENTER 鍵。
cd\windows\system32
lodctr /R
注意
  • /R 是大寫。您必須擁有電腦的管理權限才能順利執行這項指令。
  • 在執行 Windows XP 中,32 位元版本的電腦上 Lodctr /r檔名> 命令是要藉由使用的檔案名稱還原效能計數器登錄字串和資訊的標準方法。
Windows Server 2003 會重建所有的計數器,因為它會讀取英文版作業系統的 [C:\Windows\inf\009] 資料夾中所有的 .ini 檔案。

注意
  • 如果您正在執行叢集或資料中心的產品,您必須在節點上失敗,以重新整理計數器清單。在您執行基本及可延伸計數器「可延伸計數器基底計數器」下的步驟後,您必須這麼做。
  • 在執行新增自己的效能計數器的應用程式的系統上,例如 Microsoft Exchange 或 SQL Server,用來載入效能計數器的 .ini 檔可能不位於 %systemroot%\system32。通常可以在應用程式的資料夾結構中找到這些 .ini 檔案。
  • 如果當您使用上述步驟時,收到效能程式庫相關的錯誤訊息,您可能必須卸載並重新載入 IIS 效能動態連結程式庫 (Dll)。 如需有關如何執行這項操作的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    267831 當載入效能計數器時,會記錄事件識別碼 2003 警告訊息
  • 如果您仍然有問題,當您啟動 .NET Framework 應用程式時,請參閱「重新安裝任何自訂的 .NET Framework 組件的效能計數器 」一節。

重新安裝任何自訂的 .NET Framework 組件的效能計數器

如果您在執行下面所列的程序之後,啟動 .NET Framework 應用程式,卻繼續遇到問題,您可能必須重新建立自訂 .NET Framework 應用程式的效能計數器。若要執行這項操作,請使用 .NET Framework 安裝程式工具 (Installutil.exe) 中的 "/i" 選項。您必須知道建立效能計數器的 DLL 檔案的檔名。

範例

如果您遵循這些程序,並從安裝有 Microsoft 系統中心 Operations Manager 2007 的系統上所有服務的登錄中移除計數器,您的管理伺服器可能已損壞。這是因為組態服務、SDK 服務,以及資料庫寫入模組的計數器並非以 INI 檔案中可延伸計數器的形式提供。相反地,其在安裝時註冊。因此,當您嘗試啟動系統中心 Operations Manager 2007 時,您可能會收到如下所示的錯誤訊息,因為效能計數器已遺失:

事件類型: 錯誤
事件來源:OpsMgr SDK 服務
事件類別:無
事件識別碼:26380
日期: 日期
時間: 時間
使用者:n/A
電腦:MOM
描述: 系統中心作業管理員 SDK 服務失敗,因為未處理的例外狀況。

如果要解決系統中心 Operations Manager 2007 中的這個問題,您必須重新安裝效能計數器中建立的 .NET Framework 組件。若要這樣做,請使用 .NET Framework 安裝程式工具 (Installutil.exe) 中的 /i 選項,重新安裝下列組件:
  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll
例如,在命令提示字元中,輸入下列命令,並在每一行命令之後按 ENTER:
InstallUtil /i Microsoft.Mom.ConfigService.dll

InstallUtil /i Microsoft.Mom.Sdk.ServiceDataLayer.dll

InstallUtil /i Microsoft.Mom.DatabaseWriteModules.dll

InstallUtil /i Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll
附註您必須擁有電腦管理權限才能順利執行這些命令。

屬性

文章編號: 300956 - 上次校閱: 2014年4月2日 - 版次: 9.0
這篇文章中的資訊適用於:
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Standard
  • Microsoft Windows XP Professional x64 Edition
  • Windows 7 Enterprise
  • Windows 7 Home Basic
  • Windows 7 Home Premium
  • Windows 7 Professional
  • Windows 7 Starter
  • Windows 7 Ultimate
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Foundation
  • Windows Server 2008 R2 Standard
關鍵字:?
kbenv kbhowto kbmt KB300956 KbMtzh
機器翻譯
請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。
按一下這裡查看此文章的英文版本:300956
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com