Compartilhar via


Recompilar manualmente os valores da biblioteca do contador de desempenho

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

Número original do KB: 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, certifique-se de seguir essas etapas com atenção. Para proteção acrescida, faça backup do Registro antes de modificá-lo. Em, é possível restaurar o Registro caso ocorra um problema. Para obter mais informações sobre como fazer backup e restaurar o Registro, consulte Como fazer backup e restaurar o Registro no Windows.

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

Esse comportamento pode ocorrer nas seguintes situações:

  • Determinados 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 de contador extensíveis 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 as bibliotecas de contadores de desempenho base manualmente, 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. Depois de montar o arquivo do Disco de Instalação do Windows (.wim) usando cmdlets do PowerShell ou usando o Dism comando, 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 Editor do Registro 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 Desempenho :
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

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

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

    Você também pode usar a ferramenta Exctrlst.exe para localizar os arquivos de biblioteca de vínculo dinâmico (DLLs) do contador de desempenho que estão 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 recriar 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 do .NET Framework neste artigo.

Adicione novamente 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 de driver na lista.

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

    Observação

    Neste comando, <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 anotada 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. Reinicie seu computador.

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

cd \windows\system32
lodctr /R

Observação

  • /R é maiúscula. 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 do contador de desempenho usando um nome de arquivo.

O Windows Server recria todos os contadores porque lê todos os arquivos .ini na pasta do C:\Windows\inf\009 sistema operacional em inglês.

Observação

  • Se você estiver executando um produto de cluster ou datacenter, deverá fazer failover 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 no %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 vínculo dinâmico) de desempenho do IIS.
  • Se você continuar a ter problemas ao iniciar um aplicativo .NET Framework, consulte a seção Reinstalar contadores de desempenho de assembly personalizados do .NET Framework.

Reinstalar contadores de desempenho de assembly personalizados do .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 do aplicativo .NET Framework personalizado. Para fazer isso, use a /i opção na Ferramenta de Instalação do .NET Framework (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 para todos os serviços instalados em um sistema que tenha o Microsoft System Center Operations Manager 2007 instalado, poderá ter um Servidor de Gerenciamento quebrado. Os contadores para os módulos Serviço de Configuração, Serviço SDK e Gravação de Banco de Dados 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, pois 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 resolver esse problema no System Center Operations Manager 2007, você deve reinstalar os assemblies do .NET Framework que criaram os contadores de desempenho. Para fazer isso, use a /i opção na Ferramenta de Instalação do .NET Framework (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.