文章编号: 300956 - 最后修改: 2011年5月6日 - 修订: 1.1

如何手动重新生成性能计数器库值

系统提示此文章适用于与您所使用的操作系统不同的操作系统。文章内容可能与您无关,并且已被禁用。

本页

展开全部 | 关闭全部

概要

本文介绍如何手动重新生成性能计数器库值。

更多信息

重要 此节、 方法或任务包含说明如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重的问题。因此,请确保您认真执行这些步骤。为增加保护,请对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756? (http://support.microsoft.com/kb/322756/ ) 如何备份和还原在 Windows 注册表
当您使用系统监视器工具中一些计数器可能已丢失或不包含计数器数据。基本组性能计数器库可能会损坏,并且可能需要重新生成。此外,您可能需要重新生成任何自定义 (。NET 框架应用程序创建) 计数器或任何可扩展计数器。

如果将特定的可能发生此问题可扩展计数器损坏的注册表中,或者如果某些 Windows 管理规范 (WMI)-基于的程序修改注册表。

重新生成基本的性能计数器

可扩展计数器信息存储在两个以下位置:
  • 下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009
  • %Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件
要手动重建基性能计数器库,请执行以下步骤:
  1. 展开 Perfc009.dat 文件和Perfh009.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. 从性能子项中删除以下值 (如果它们存在):
    • 第一个计数器
    • 第一个帮助
    • 上一次计数器
    • 上一次的帮助
    您还可以使用 Exctrlst.exe 工具来查找性能计数器动态链接库 (Dll) 的文件都已安装,并且然后访问注册表以删除的 DWORD 值。现在,您可正常工作包含只有系统基本计数器的性能注册表。

    请注意 从性能子项在注册表中删除这些值可能会导致任何安装。NET 框架应用程序不能够在启动下一次。如果发生这种情况,使用 lodctr /R 在"重新添加可扩展计数器"部分中重新生成性能计数器的命令。如果您仍在启动时有问题。NET 框架应用程序,请参见"重新安装任何自定义。NET 框架程序集的性能计数器"一节中。

重新添加可扩展计数器

您必须重新添加从服务列表的可扩展计数器。之前执行此操作,您必须确定用于加载计数器的.ini 文件:
  1. 打开一个命令提示符窗口。
  2. 在命令提示符下键入 光盘%Systemroot%\System32然后按 ENTER 键。
  3. 在命令提示符下键入 findstr 名*.ini然后按 ENTER 键。
  4. 请注意在每一名.ini 文件的名称列表。
  5. 在命令提示符下键入以下命令,然后按 ENTER 键:
    lodctrinifile>
    请注意 在此命令中, <inifile></inifile> 代表.ini 的名称要重新加载的驱动程序文件。
    例如,如果您要重新加载 ASP 的驱动程序,您在步骤 4 中记下的列表显示的Axperf.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 重建所有计数器,因为它会读取所有.ini 文件在 C:\Windows\inf\009 文件夹中的英文版的操作系统。

备注
  • 如果您正在运行群集或数据中心的产品,您必须故障转移的节点来刷新计数器列表。您必须执行此操作后执行的步骤重新在"添加可扩展计数器"基计数器和可扩展的计数器。
  • 在系统上运行的应用程序添加他们自己的性能计数器,如 Microsoft Exchange 或 SQL Server用于加载性能计数器.ini 文件可能不是位于在 %systemroot%\system32。通常可以在下面找到这些.ini 文件应用程序文件夹结构。
  • 如果您收到一条错误消息,有关性能库当您使用前面的步骤,您可能要卸载并重新加载 IIS性能动态链接库 (Dll)。 有关详细信息有关如何执行此操作,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    267831? (http://support.microsoft.com/kb/267831/ ) 当加载性能计数器时记录的事件 ID 2003 警告消息
  • 如果您继续在启动时遇到问题。NET 框架应用程序,请参见"重新安装任何自定义。NET 框架程序集的性能计数器"一节。

重新安装任何自定义。NET 框架程序集的性能计数器

如果您仍在启动时有问题。NET 框架应用程序在执行此处列出的步骤后,您可能需要重新生成自定义的性能计数器。NET 框架应用程序。若要这样做,请使用"/ 我"中的选项。NET 框架安装程序工具 (Installutil.exe)。您必须知道文件的名称创建性能计数器的 DLL 文件。

示例

如果您按照这些步骤操作,并从已安装的 Microsoft 系统中心操作管理器 2007年的系统上安装的所有服务的注册表中删除计数器,则可能损坏的管理服务器。这是因为可扩展计数器 INI 文件中的窗体中未提供用于配置服务、 SDK 服务和数据库写入模块的计数器。相反,它们是在安装时注册。因此,当您尝试启动系统中心操作管理器 2007年,您可能会收到一条错误消息类似于以下,因为缺少的性能计数器:

事件类型: 错误
来源: OpsMgr SDK 服务
事件类别: 无
事件 ID: 26380
日期: 日期
时间: 时间
用户: 不适用
计算机: MOM
说明:由于未处理的异常系统中心操作管理器 SDK 服务失败。

要解决此问题,在系统中心操作管理器 2007年中的,您必须重新安装。NET 框架创建性能计数器的程序集。要这样做,请使用 /i 选项中的。NET 框架安装程序工具 (Installutil.exe) 重新安装下列程序集:
  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll
例如,在命令提示符下键入以下命令,并且每个命令之后按 ENTER:
InstallUtil Microsoft.Mom.ConfigService.dll /i

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

InstallUtil Microsoft.Mom.DatabaseWriteModules.dll /i

InstallUtil Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll /i
请注意 要成功地执行这些命令的计算机上,您必须具有管理权限。

这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • 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
机器翻译机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 300956? (http://support.microsoft.com/kb/300956/en-us/ )
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。