Recompilar manualmente os contadores de desempenho para sistemas Windows Server 2008 de 64 bits ou Windows Server 2008 R2

Este artigo ajuda a resolver um problema em que algumas bibliotecas de contadores de desempenho são corrompidas e precisam ser recriadas.

Número original do KB: 2554336

Sintomas

Quando você usa a ferramenta Monitor de Desempenho, alguns contadores podem estar ausentes ou não conter dados de contador. As bibliotecas de contadores de desempenho podem ser corrompidas e precisam ser recriadas.

Você pode ver os seguintes erros no log do aplicativo:

Log Name: Application  
Source: Microsoft-Windows-IIS-W3SVC-PerfCounters  
Event ID: 2002  
Level: Error  
Keywords: Classic  
Description:  
Setting up Web Service counters failed, please make sure your Web Service counters are registered correctly.
Log Name: Application  
Source: IISInfoCtrs  
Event ID: 1001  
Level: Error  
Keywords: Classic  
Description:  
Unable to read the first counter index value from the registry. The error code returned by the registry is data DWORD 0.

Motivo

Esse comportamento pode ocorrer se determinados contadores extensíveis corromperem o Registro ou se os programas baseados em WMI (Instrumentação de Gerenciamento do Windows) modificarem o Registro.

Resolução

Para resolver esse problema, use os métodos a seguir.

Verifique se os contadores não estão desabilitados no registro

Os contadores podem ser desabilitados por meio das configurações do Registro. Verifique os seguintes locais do Registro para garantir que os contadores não tenham sido desabilitados:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\%servicename%\Performance

Observação

%servicename% Representa qualquer serviço com um contador de desempenho. Por exemplo: PerfDisk, PerfOS, etc.

Pode haver chaves do Registro para DisablePerformanceCounters em qualquer um desses locais. De acordo com o artigo Desabilitar contadores de desempenho, esse valor deve ser definido como 0. Se o valor for diferente de 0, o contador poderá ser desabilitado.

  • Um valor de 1 significa que o contador está desabilitado.
  • Um valor de 2 significa que o contador de 32 bits está desabilitado.
  • Um valor de 4 significa que o contador de 64 bits está desabilitado.

Recompilar todos os contadores de desempenho, incluindo contadores extensíveis e de terceiros

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

  1. Reconstrua os contadores:

    cd c:\windows\system32
    lodctr /R
    cd c:\windows\sysWOW64
    lodctr /R
    
  2. Sincronize novamente os contadores com a WMI (Instrumentação de Gerenciamento do Windows):

    WINMGMT.EXE /RESYNCPERF
    
  3. Pare e reinicie o serviço de Logs e Alertas de Desempenho.

    Get-Service -Name "pla" | Restart-Service -Verbose
    
  4. Pare e reinicie o serviço de Instrumentação de Gerenciamento do Windows.

    Get-Service -Name "winmgmt" | Restart-Service -Force -Verbose
    
  5. Crie um novo Conjunto de Coletores de Dados (não use um Conjunto de Coletores de Dados existente).

Às vezes, a execução lodctr /R pode não recuperar todos os contadores. Se você perceber que isso está acontecendo, verifique se o arquivo c:\windows\system32\PerfStringBackup.INI contém as informações adequadas. Você pode copiar esse arquivo de uma máquina idêntica para restaurar os contadores. Pode haver pequenas diferenças neste arquivo de máquina para máquina. Mas se você notar uma diferença drástica no tamanho, pode estar faltando informações. Sempre crie uma cópia de backup antes de substituir. Não há garantia de que copiar esse arquivo de outro computador restaurará todos os contadores. Se possível, compare o arquivo com os backups da máquina para ver se o tamanho do arquivo foi reduzido em algum momento.

Para muitos contadores, o local dos arquivos ini para instalar contadores perf está em windows\winsxs, como os arquivos ini do IIS.

Se você vir os seguintes erros:

Log Name: Application  
Source: Microsoft-Windows-IIS-W3SVC-PerfCounters  
Event ID: 2002  
Level: Error  
Keywords: Classic  
Description:  
Setting up Web Service counters failed, please make sure your Web Service counters are registered correctly.
Log Name: Application  
Source: IISInfoCtrs  
Event ID: 1001  
Level: Error  
Keywords: Classic  
Description:  
Unable to read the first counter index value from the registry. The error code returned by the registry is data DWORD 0.

Você precisará usar os arquivos ini de instalação do contador no diretório c:\Windows\winsxs.

Várias pastas podem existir para contadores que você precisa reparar. Nesses casos, talvez seja necessário usar tentativa e erro para encontrar os arquivos ini corretos.

Por exemplo,

Dir C:\Windows\winsxs\amd64_microsoft-windows-iis-metabase*

Neste exemplo, tente instalar o infoctrs.ini de cada pasta usando:

Lodtr infoctrs.ini

Quando for bem-sucedido, você verá a seguinte entrada no log do aplicativo:

Log Name: Application  
Source: Microsoft-Windows-LoadPerf  
Event ID: 1000  
Level: Information  
Description:  
Performance counters for the inetinfo (inetinfo) service were loaded successfully. The Record Data in the data section contains the new index values assigned to this service.

Você precisa fazer o mesmo para os seguintes contadores:

amd64_microsoft-windows-iis-w3svc*

lodctr w3ctrs.ini

Depois disso, você verá:

Log Name: Application  
Source: Microsoft-Windows-LoadPerf  
Event ID: 1000  
Level: Information  
Description:  
Performance counters for the W3SVC (World Wide Web Publishing Service) service were loaded successfully. The Record Data in the data section contains the new index values assigned to this service.

Seguindo estas etapas, execute WINMGMT /RESYNCPERFnovamente .

Mais informações

Há um hotfix para problemas conhecidos com PerfDisk.dll em sistemas Windows Server 2008 e Vista. Esse hotfix foi incluído no Service Pack 2 para esses sistemas operacionais. Se você estiver no Service Pack 1 ou inferior, aplique o 961382 de hotfix.

Referências