Recompilar manualmente os valores da biblioteca de contadores de desempenho

Este artigo descreve como recompilar manualmente os valores da biblioteca de contadores de desempenho.

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número de KB original: 300956

Importante

Esta seção, método ou tarefa contém etapas que descrevem como modificar o Registro. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, siga essas etapas cuidadosamente. Para mais proteção, faça o backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema. Para saber mais sobre como fazer o backup e restaurar o registro, consulte Como fazer o backup e restaurar o registro no Windows.

Quando você usa a ferramenta Monitor do Sistema, alguns contadores podem estar ausentes ou não contêm dados de contador. O conjunto base de bibliotecas de contadores de desempenho pode ficar corrompido e talvez precise ser reconstruído. Além disso, talvez seja necessário recompilar os contadores personalizados (microsoft .NET Framework aplicativo criado) ou quaisquer contadores extensíveis.

Esse comportamento pode ocorrer nas seguintes situações:

  • certos contadores extensíveis corrompem o registro.
  • alguns programas baseados em WMI (Instrumentação de Gerenciamento do Windows) modificam o registro.

Recompilar os contadores de desempenho base

As informações do contador extensível são armazenadas em ambos os seguintes locais:

  • A subchave do registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib\009.

  • O %Systemroot%\System32\Perfc009.dat arquivo e o %Systemroot%\System32\Perfh009.dat arquivo.

Para recompilar manualmente as bibliotecas de contadores de desempenho base, siga estas etapas:

  1. Expanda o arquivo Perfc009.dat e o arquivo Perfh009.dat . Esses arquivos estão localizados no Disco de Instalação do Windows. Os arquivos compactados são encontrados em DriveLetter:\i386\perfc009.da_ e em DriveLetter:\i386\perfh009.da_. Substitua os arquivos que estão na %Systemroot%\System32 pasta.

  2. Inicie o Registro Editor e localize a seguinte chave no registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

  3. No registro, altere o valor do Último Contador para 1846 (decimal) e altere o valor da Última Ajuda para 1847 (decimal).

  4. Localize a seguinte chave do registro para pesquisar serviços que tenham uma subchave de desempenho :
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

  5. Remova os seguintes valores da subchave Desempenho (se eles existirem):

    • Primeiro Contador
    • Primeira ajuda
    • Último Contador
    • Última ajuda

    Você também pode usar a ferramenta Exctrlst.exe para localizar os DLLs (arquivos de biblioteca de link dinâmico) do contador de desempenho instalados. Em seguida, acesse o registro para remover os valores DWORD. Agora você tem um registro de desempenho viável que contém apenas contadores base do sistema.

    Observação

    A remoção dos valores da subchave Desempenho no registro pode fazer com que todos os aplicativos .NET Framework instalados não funcionem na próxima vez que forem iniciados. Se isso ocorrer, use o lodctr /R comando na seção Adicionar novamente os contadores extensíveis para recompilar os contadores de desempenho. Se você continuar a ter problemas ao iniciar um aplicativo .NET Framework, consulte a seção Reinstalar contadores de desempenho de assembly personalizados .NET Framework neste artigo.

Re-adicionar os contadores extensíveis

Você deve adicionar os contadores extensíveis novamente da lista de serviços. Antes de fazer isso, você deve identificar o arquivo .ini usado para carregar os contadores:

  1. Abra uma janela de Prompt de Comando.

  2. No prompt de comando, digite cd %Systemroot%\System32e pressione ENTER.

  3. No prompt de comando, digite findstr drivername *.inie pressione ENTER.

  4. Observe o nome do arquivo .ini para cada nome do driver na lista.

  5. No prompt de comando, digite o lodctr <inifile> comando e pressione ENTER.

    Observação

    Neste comando, <a inifile> representa o nome do arquivo .ini para o driver que você deseja recarregar.

    Por exemplo, se você quiser recarregar o driver ASP, a lista que você observou na etapa 4 mostra que Axperf.ini é o arquivo .ini para o driver ASP (axperf.ini:drivername=ASP). Para recarregar o driver ASP, digite lodctr axperf.ini no prompt de comando e pressione ENTER.

  6. Repita a etapa 5 para cada arquivo .ini na lista.

  7. Restart your computer.

Para recompilar todos os contadores de desempenho, incluindo contadores extensíveis e de terceiros no Windows Server, digite os comandos a seguir em um prompt de comando. Pressione ENTER após cada comando.

cd \windows\system32
lodctr /R

Observação

  • /R é maiúsculas. Você deve ter direitos administrativos no computador para executar esse comando com êxito.
  • Em um computador que está executando uma edição de 32 bits do Windows, o Lodctr /R:<filename> comando é o método padrão para restaurar cadeias de caracteres e informações do registro de contador de desempenho usando um nome de arquivo.

O Windows Server recompila todos os contadores porque lê todos os arquivos .ini na C:\Windows\inf\009 pasta para o sistema operacional inglês.

Observação

  • Se você estiver executando um produto Cluster ou Datacenter, deverá fazer fail over do nó para atualizar a lista de contadores. Você deve fazer isso depois de executar as etapas em Adicionar novamente os contadores extensíveis para contadores base e contadores extensíveis.
  • Em sistemas que executam aplicativos que adicionam seus próprios contadores de desempenho, como Exchange ou SQL Server, o arquivo .ini usado para carregar o contador de desempenho pode não estar localizado em %Systemroot%\System32. Esses arquivos .ini geralmente podem ser encontrados na estrutura de pastas de aplicativos.
  • Se você receber uma mensagem de erro sobre a biblioteca de desempenho ao usar as etapas anteriores, talvez seja necessário descarregar e recarregar as DLLs (bibliotecas de link dinâmico de desempenho do IIS).
  • Se você continuar enfrentando problemas ao iniciar um aplicativo .NET Framework, consulte a seção Reinstalar contadores de desempenho personalizados .NET Framework assembly.

Reinstalar contadores de desempenho de assembly personalizados .NET Framework

Se você continuar a ter problemas ao iniciar um aplicativo .NET Framework depois de executar os procedimentos listados aqui, talvez seja necessário recompilar os contadores de desempenho para o aplicativo de .NET Framework personalizado. Para fazer isso, use a opção /i no .NET Framework Installer Tool (Installutil.exe). Você deve saber os nomes de arquivo dos arquivos DLL que criam os contadores de desempenho.

Se você seguir esses procedimentos e remover os contadores do registro de todos os serviços instalados em um sistema que tenha o Microsoft System Center Operations Manager 2007 instalado, você poderá ter um Servidor de Gerenciamento quebrado. Os contadores para os módulos Config Service, SDK Service e Database Write não são fornecidos na forma de contadores extensíveis em arquivos INI. Em vez disso, eles são registrados no momento da instalação. Portanto, ao tentar iniciar o System Center Operations Manager 2007, você pode receber uma mensagem de erro semelhante ao exemplo a seguir porque os contadores de desempenho estão ausentes:

Event Type: Error  
Event Source: OpsMgr SDK Service  
Event Category: None  
Event ID: 26380  
Date: date  
Time: time  
User: N/A  
Computer: MOM  
Description: The System Center Operations Manager SDK Service failed due to an unhandled exception.

Para resolve esse problema no System Center Operations Manager 2007, você deve reinstalar os assemblies .NET Framework que criaram os contadores de desempenho. Para fazer isso, use a opção /i no .NET Framework Installer Tool (Installutil.exe) para reinstalar os seguintes assemblies:

  • Microsoft.Mom.ConfigService.dll
  • Microsoft.Mom.Sdk.ServiceDataLayer.dll
  • Microsoft.Mom.DatabaseWriteModules.dll
  • Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

Por exemplo, no prompt de comando, digite os seguintes comandos e pressione ENTER após cada comando:

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

Observação

Você deve ter direitos administrativos no computador para executar esses comandos com êxito.