Compartilhar via


Solução de problemas avançada para congelamentos do Windows

Este artigo descreve como solucionar problemas de congelamento em computadores e servidores baseados no Windows. Ele também fornece métodos para coletar dados que ajudarão administradores ou desenvolvedores de software a diagnosticar, identificar e corrigir esses problemas.

Observação

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Aplica-se a: Windows 10

Identificar o problema

  • Qual computador está congelando? Por exemplo, o computador afetado é um servidor físico ou um servidor virtual.
  • Que operação aconteceu quando congelou? Por exemplo, esse problema ocorre quando você desliga.
  • Com que frequência os erros ocorrem? Por exemplo, esse problema ocorre todas as noites às 19h.
  • Em quantos computadores ocorre esse congelamento? Por exemplo, todos os computadores ou apenas um computador.

Solucionar problemas de congelamento

Para solucionar os problemas de congelamento, verifique o status atual do seu computador e siga um dos métodos a seguir.

Para o computador que ainda está sendo executado em um estado congelado

Se o computador físico ou a máquina virtual ainda estiver congelando, use um ou mais dos seguintes métodos para solução de problemas:

  • Tente acessar o computador por meio de uma conexão de área de trabalho remota.
  • Use uma conta de domínio ou uma conta de administrador local para entrar no computador com a solução de acesso remoto do fabricante do hardware. Por exemplo, Dell Remote Access Card (DRAC), HP Integrated Lights-Out (iLo) ou IBM Remote Supervisor Adapter (RSA).
  • Teste o ping para o computador. Procure pacotes descartados e alta latência de rede.
  • Acesse compartilhamentos administrativos, por exemplo , \\ServerName\c$.
  • Pressione Ctrl+Alt+Delete e verifique a resposta.
  • Tente usar as ferramentas de administração remota do Windows. Por exemplo, Gerenciamento do Computador, Gerenciador do Servidor e Wmimgmt.msc.

Para o computador que não está mais congelado

Se o computador físico ou a máquina virtual congelou, mas agora está sendo executado em um bom estado, use um ou mais dos seguintes métodos para solução de problemas.

Para um computador físico

  • Revise os logs do sistema e do aplicativo do computador que está com o problema. Verifique os logs de eventos para a ID de evento relevante:

    • Log de eventos do aplicativo: Erro do aplicativo, que sugere uma falha ou um processo relevante do sistema
    • Logs de eventos do sistema, ID de evento de erro do Service Control Manager para serviços críticos do sistema
    • IDs de evento de erro 2019/2020 com origem Srv/Server
  • Gere um relatório de diagnóstico do sistema executando perfmon /reporto .

Para uma máquina virtual

  • Revise os logs do sistema e do aplicativo do computador que está com o problema.
  • Gere um relatório de diagnóstico do sistema executando perfmon /reporto .
  • Verifique o histórico do sistema em ferramentas de monitoramento de gerenciamento virtual.

Coletar dados para os problemas de congelamento

Para coletar dados para um congelamento do servidor, verifique a tabela a seguir e use um ou mais dos métodos sugeridos.

Tipo e estado do computador Método de coleta de dados
Um computador físico que está sendo executado em um estado congelado Use um arquivo de despejo de memória para coletar dados. Ou use o método 2, 3 ou 4. Esses métodos são listados posteriormente nesta seção.
Um computador físico que não está mais congelado Use o método 1, 2, 3 ou 4. Esses métodos são listados posteriormente nesta seção. E use o Monitor de Pool para coletar dados.
Uma máquina virtual que está sendo executada em um estado congelado Hyper-V ou VMware: use um arquivo de despejo de memória para coletar dados para a máquina virtual que está sendo executada em um estado congelado.
XenServer: use o método 1, 2, 3 ou 4. Esses métodos são listados posteriormente nesta seção.
Uma máquina virtual que não está mais congelada Use o método 1, 2, 3 ou 4. Esses métodos são listados posteriormente nesta seção.

Método 1: despejo de memória

Importante

Siga as etapas nesta seção com cuidado. Problemas sérios podem ocorrer se você modificar o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para a restauração em caso de problemas.

Um arquivo de despejo de memória completo registra todo o conteúdo da memória do sistema quando o computador para inesperadamente. Um arquivo de despejo de memória completo pode conter dados de processos que estavam em execução quando o arquivo de despejo de memória foi coletado.

Se o computador não estiver mais congelado e agora estiver em bom estado, use as etapas a seguir para habilitar o despejo de memória para que você possa coletar o despejo de memória quando o problema de congelamento ocorrer novamente. Se a máquina virtual ainda estiver em execução em um estado congelado, use as etapas a seguir para habilitar e coletar o despejo de memória.

Observação

Se você tiver um recurso de reinicialização habilitado no computador, como o recurso ASR (Reinicialização Automática do Sistema) em computadores Compaq, desative-o. Essa configuração geralmente é encontrada no BIOS. Com esse recurso ativado, se o BIOS não detectar uma pulsação do sistema operacional, ele reiniciará o computador. A reinicialização pode interromper o processo de despejo.

  1. Verifique se o computador está configurado para obter um arquivo de despejo de memória completo.

    1. Vá para Executar e digite Sysdm.cpl e pressione Enter.
    2. Em Propriedades do Sistema, na guia Avançado, selecione Configurações>de Desempenho>Avançadas. Selecione Alterar para verificar ou alterar a memória virtual.
    3. Volte para Configurações avançadas de propriedades>do>sistema em Inicialização e recuperação.
    4. Na seção Informações de Depuração de Gravação, selecione Concluir Despejo de Memória.
    5. Selecione Substituir qualquer arquivo existente.
    6. Verifique se há um arquivo de paginação (pagefile.sys) na unidade do sistema e se ele tem pelo menos 100 MB sobre a RAM instalada (tamanho inicial e máximo).
    7. Certifique-se de que haja mais espaço disponível na unidade do sistema do que RAM física.
  2. Para permitir que o sistema gere um arquivo de despejo usando o teclado, habilite o valor do CrashOnCtrlScroll Registro.

    1. Abra o Editor do Registro e localize as seguintes chaves do Registro:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. Crie a seguinte CrashOnCtrlScroll entrada do Registro nas duas chaves do Registro:

      • Nome do valor: CrashOnCtrlScroll
      • Tipo de dados: REG_DWORD
      • Valor: 1
    3. Feche o Editor do Registro e reinicie o computador.

  3. Em alguns computadores físicos que executam versões anteriores do Windows, você pode gerar uma NMI (interrupção não fabricável) a partir de um recurso de interface da Web, como DRAC, iLo ou RSA. No entanto, por padrão, essa configuração interromperá o sistema sem criar um despejo de memória.

    Observação

    Para versões atualmente suportadas do Windows, a NMICrashDump chave do Registro não é mais necessária. Um NMI causa um erro Stop que segue uma coleta de dados de despejo de memória.

  4. Quando o computador apresentar o problema, mantenha pressionada a tecla Ctrl direita e pressione a tecla Scroll Lock duas vezes para gerar um arquivo de despejo de memória.

    Observação

    Por padrão, o arquivo de despejo está localizado no seguinte caminho: %SystemRoot%\MEMORY. DMP.

Método 2: Verificação de sanidade de dados

Use o Utilitário de verificação de despejo (Dumpchk.exe) para ler um arquivo de despejo de memória. Ele também pode verificar se o arquivo foi criado corretamente e não está corrompido ou inválido.

Saiba como usar o Dumpchk.exe para verificar seus arquivos de despejo:

Método 3: Monitor de desempenho

Você pode usar o Monitor de Desempenho do Windows para examinar como os programas executados afetam o desempenho do computador, tanto em tempo real quanto coletando dados de log para análise posterior. Para criar coleções de log de rastreamento de eventos e contador de desempenho em sistemas locais e remotos, execute os seguintes comandos em um prompt de comando como administrador:

Logman create counter LOGNAME_Long -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:05:00
Logman create counter LOGNAME_Short -u DOMAIN\USERNAME * -f bincirc -v mmddhhmm -max 500 -c "\\COMPUTERNAME\LogicalDisk(*)\*" "\\COMPUTERNAME\Memory\*" "\\COMPUTERNAME\Network Interface(*)\*" "\\COMPUTERNAME\Paging File(*)\*" "\\COMPUTERNAME\PhysicalDisk(*)\*" "\\COMPUTERNAME\Process(*)\*" "\\COMPUTERNAME\Redirector\*" "\\COMPUTERNAME\Server\*" "\\COMPUTERNAME\System\*" "\\COMPUTERNAME\Terminal Services\*" "\\COMPUTERNAME\Processor(*)\*" "\\COMPUTERNAME\Cache\*" -si 00:00:10

Em seguida, você pode iniciar ou parar o log executando os seguintes comandos:

logman start LOGNAME_Long / LOGNAME_Short
logman stop LOGNAME_Long / LOGNAME_Short

O log do Monitor de Desempenho está localizado no caminho: C:\PERFLOGS.

Outros métodos para coletar dados

Usar despejo de memória para coletar dados para o computador físico que está sendo executado em um estado congelado

Aviso

Siga as etapas nesta seção com cuidado. Problemas sérios podem ocorrer se você modificar o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para a restauração em caso de problemas.

Se o computador físico ainda estiver em execução em um estado congelado, siga estas etapas para habilitar e coletar o despejo de memória:

  1. Verifique se o computador está configurado para obter um arquivo de despejo de memória completo e se você pode acessá-lo pela rede.

    Observação

    Se não for possível acessar o computador afetado pela rede, tente gerar um arquivo de despejo de memória por meio do NMI. O resultado da ação pode não coletar um arquivo de despejo de memória se algumas das configurações a seguir não forem qualificadas.

    1. Tente acessar a área de trabalho do computador por qualquer meio.

      Observação

      Caso o acesso ao sistema operacional não seja possível, tente acessar remotamente o Editor do Registro no computador. Em seguida, você pode verificar o tipo de arquivo de despejo de memória e o arquivo de paginação com o qual o computador está configurado no momento.

    2. Em um computador remoto que esteja preferencialmente na mesma rede e sub-rede, vá para o Registro de Rede Connect do Editor>do Registro. Em seguida, conecte-se ao computador afetado e verifique as seguintes configurações:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\CrashDumpEnabled

        Verifique se a entrada do Registro CrashDumpEnabled é 1.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl\NMICrashDump

        Em alguns servidores físicos, se a entrada do NMICrashDump Registro existir e seu valor for 1, você poderá aproveitar o NMI do provedor de gerenciamento remoto, como DRAC, iLo e RSA.

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PagingFiles and ExistingPageFiles

        Se o valor da entrada do Registro for gerenciado Pagefile pelo sistema, o tamanho não será refletido no Registro. Por exemplo, ?:\pagefile.sys)

        Se o arquivo de paginação for personalizado, o tamanho será refletido no registro, como ?:\pagefile.sys 1024 1124. Neste exemplo, 1024 é o tamanho inicial e 1124 é o tamanho máximo.

        Observação

        Se o tamanho não for refletido no Registro, tente acessar um compartilhamento administrativo em que o arquivo de paginação está localizado. Por exemplo, \\ServerName\C$.

    3. Verifique se há um arquivo de paginação (pagefile.sys) na unidade do sistema do computador e se ele tem pelo menos 100 MB na RAM instalada.

    4. Certifique-se de que haja mais espaço livre nas unidades de disco rígido do computador do que RAM física.

  2. Habilite o valor do Registro CrashOnCtrlScroll no computador para permitir que o sistema gere um arquivo de despejo usando o teclado.

    1. Em um computador remoto, de preferência na mesma rede e sub-rede, vá para o Editor>do Registro Conectar Registro de Rede. Conecte-se ao computador afetado e localize as seguintes chaves do Registro:

      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
    2. Crie a seguinte CrashOnCtrlScroll entrada do Registro nas duas chaves do Registro:

      Nome do valor: CrashOnCtrlScroll Tipo de dados: REG_DWORD Valor: 1

    3. Feche o Editor do Registro e reinicie o computador.

  3. Quando o computador apresentar o problema, mantenha pressionada a tecla Ctrl direita e pressione a tecla Scroll Lock duas vezes para gerar um despejo de memória.

    Observação

    Por padrão, o arquivo de despejo está localizado no caminho: %SystemRoot%\MEMORY. DMP.

Usar o Monitor de Pool para coletar dados para o computador físico que não está mais congelado

O Monitor de Pool mostra o número de alocações e bytes pendentes de alocação por tipo de pool e a marca que é passada para chamadas de ExAllocatePoolWithTag.

Para obter mais informações, consulte Usando o PoolMon para encontrar um vazamento de memória no modo kernel e Exemplos do PoolMon.

Usar o despejo de memória para coletar dados para a máquina virtual que está sendo executada em um estado congelado

Use um dos métodos a seguir para o aplicativo no qual a máquina virtual está sendo executada.

Microsoft Hyper-V

Você também pode usar o recurso NMI interno por meio de um cmdlet Debug-VM para depurar e obter um despejo de memória.

Para depurar as máquinas virtuais no Hyper-V, execute o seguinte cmdlet no Windows PowerShell:

Debug-VM -Name "VM Name" -InjectNonMaskableInterrupt -ComputerName Hostname  

VMware

Você pode usar instantâneos do VMware ou suspender o estado e extrair um arquivo de despejo de memória equivalente a um arquivo de despejo de memória completo. Use a ferramenta Checkpoint To Core (vmss2core) da VMware para converter arquivos de estado de suspensão (.vmss) e instantâneo (.vmsn) em um arquivo de despejo. Em seguida, analise o arquivo usando as ferramentas de depuração padrão do Windows.

Observação

Ao trabalhar com o Suporte da Microsoft, você deve usar a ferramenta Checkpoint To Core (vmss2core) da VMware para converter instantâneos do VMware em um arquivo de despejo antes de carregá-los na Microsoft. Se você tiver problemas com a conversão de snapshot, entre em contato com a VMware para obter suporte.

Citrix XenServer

O processo de despejo de memória ocorre pressionando a combinação de teclado Ctrl direito + Scroll Lock + Scroll Lock. Para obter mais informações, consulte o Método 1 de Como disparar um despejo de memória de uma máquina virtual do Windows em execução no XenServer da Citrix.

Limitações de espaço na unidade do sistema no Windows Server

Em um Windows Server, talvez você não tenha espaço livre em disco suficiente para gerar um arquivo de despejo de memória completo no volume do sistema.

Há uma segunda opção se a unidade do sistema não tiver espaço suficiente. Você pode usar a entrada do DedicatedDumpFile Registro. Para obter mais informações, consulte Configurar o caminho de destino para um despejo de memória.

Para obter mais informações, consulte Como usar o valor do Registro DedicatedDumpFile para superar as limitações de espaço na unidade do sistema.

Aviso de isenção de responsabilidade para contatos de terceiros

A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar informações adicionais sobre esse tópico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão das informações de contato de terceiros.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.