当您使用系统监视器工具时,有些计数器可能丢失,或者其中未包含计数器数据。基本的性能计数器库集可能被损坏,并且可能需要和任何可扩展计数器一起重新生 成。如果某些可扩展计数器损坏了注册表,或者某些基于 Windows Management Instrumentation (WMI) 的程序修改了注册表,就可能会发生此问题。
可扩展计数器信息存储在以下两个位置中:
- 以下注册表项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/Current Version/Perflib/009
- %Systemroot%/System32/Perfc009.dat 文件和 %Systemroot%/System32/Perfh009.dat 文件。
要手动重新生成基本的性能计数器库,请执行以下操作:
- 展开“Perfc009.dat”文件和“Perfh009.dat”文件。这些文件位于 Windows 2000 光盘上。压缩文件位于 DriveLetter :/i386/perfc009.da_ 和 DriveLetter :/i386/perfh009.da_。替换 %Systemroot%/System32 文件夹中的文件。 有关 EXPAND 命令的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
314958 (http://support.microsoft.com/kb/314958/ ) 如何在 Windows 2000 中分别使用 COMPRESS、COMPACT 和 EXPAND 命令压缩和展开文件及文件夹
- 启动注册表编辑器,然后在注册表中查找以下项:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Perflib
- 在注册表中,将“LastCounter”值更改为 1846 (十进制),并将“LastHelp”值更改为 1847 (十进制)。
- 查找以下注册表项,以搜索具有 Performance 子项的服务:
HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services
- 从 Performance 子项(如果存在)删除以下值:
- FirstCounter
- FirstHelp
- LastCounter
- LastHelp
完成此过程后,必须从服务列表重新添加可扩展计数器。但是在执行此操作之前,必须确定用于加载计数器的 .ini 文件:
- 打开一个命令提示符窗口。
- 在命令提示符处,键入 cd %Systemroot%/System32 ,然后按 Enter。
- 在命令提示符处,键入 findstr drivername *.ini ,然后按 Enter。
- 注意列表中每个驱动程序名称所对应的 .ini 文件名。
- 在命令提示符处,键入下面一行,然后按 Enter:
lodctr inifile其中,inifile 是对应您要重新加载的驱动程序的 .ini 文件名。
例如,如果打算重新加载 ASP 驱动程序,则第 4 步中出现的列表将显示 Axperf.ini 是用于 ASP 驱动程序的 .ini 文件 (axperf.ini:drivername=ASP)。因此,要重新加载 ASP 驱动程序,请在命令提示符处键入 lodctr axperf.ini ,然后按 Enter。 - 为列表中的所有 .ini 文件重复第 5 步。
- 重新启动计算机。
要在 Windows Server 2003 重新生成所有的性能计数器(包括扩展的和第三方计数器),请在命令提示符处键入以下命令。在输入每个命令后按 Enter。
注意 :/R 是大写。
Windows Server 2003 重新生成了所有的计数器,因为它读取了英文操作系统的 C:/Windows/inf/009 文件夹中所有的 .ini 文件。
注意 :如果您正在运行群集或数据中心产品,则在对基本计数器和可扩展计数器执行上述步骤后,必须故障转移节点以刷新计数器列表。
注意 : 在运行添加其自身的性能计数器的应用程序的系统上,例如在 Microsoft Exchange 或 SQL Server 上,用于加载性能计数器的 .ini 文件可能不在 %systemroot/system32 中。通常可以在应用程序文件夹结构下找到这些 .ini 文件。
注意 :在使用上述步骤时,如果收到有关性能库的错误消息,则可能必须卸载并重新加载 IIS 性能动态链接库 (DLL)。