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ê é desligado.
  • Com que frequência ocorrem os erros? Por exemplo, esse problema ocorre todas as noites às 19h.
  • Em quantos computadores esse congelamento ocorre? Por exemplo, todos os computadores ou apenas um computador.

Solucionar problemas de congelamento

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

Para o computador que ainda está em execução 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 solucionar 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 de hardware. Por exemplo, DRAC (Cartão de Acesso Remoto) da Dell, hp integrado Lights-Out (iLo) ou RSA (adaptador de supervisor remoto da IBM).
  • Teste ping no computador. Procure pacotes descartados e alta latência de rede.
  • Acesse compartilhamentos administrativos, por exemplo \\ServerName\c$.
  • Pressione Ctrl+Alt+Delete e marcar a resposta.
  • Tente usar ferramentas de administração remota do Windows. Por exemplo, Gerenciamento de Computadores, 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 congelar, mas agora estiver em execução em um bom estado, use um ou mais dos seguintes métodos para solução de problemas.

Para um computador físico

  • Examine os logs do Sistema e do Aplicativo do computador que está tendo o problema. Verifique os logs de eventos para obter a ID de evento relevante:

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

Para uma máquina virtual

  • Examine os logs do Sistema e do Aplicativo do computador que está tendo o problema.
  • Gerar um relatório de diagnóstico do sistema executando perfmon /report.
  • 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 de servidor, marcar 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á em execução 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 Pool Monitor para coletar dados.
Uma máquina virtual em execução 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á em execução 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. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para 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 execução em um bom estado, use as etapas a seguir para habilitar o despejo de memória para que você possa coletar 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 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, desabilite-o. Essa configuração geralmente é encontrada no BIOS. Com esse recurso habilitado, 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 insiraSysdm.cple pressione Enter.
    2. Em Propriedades do Sistema, na guia Avançado, selecioneConfiguraçõesde Desempenho>Avançadas>. Selecione Alterar para marcar ou alterar a memória virtual.
    3. Voltar àsConfigurações Avançadas>de Propriedades> do Sistema em Inicialização e Recuperação.
    4. Na seção Gravar Informações de Depuração , selecione Despejo de Memória Completo.
    5. Selecione Substituir qualquer arquivo existente.
    6. Verifique se há um arquivo de paginação (pagefile.sys) na unidade do sistema e que ele é pelo menos 100 MB sobre a RAM instalada (Tamanho Inicial e Máximo).
    7. Verifique se há 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 a 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. Create a seguinte CrashOnCtrlScroll entrada de registro nas duas chaves do registro:

      • Nome do valor: CrashOnCtrlScroll
      • Tipo de dados: REG_DWORD
      • Valor: 1
    3. Feche a 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 compatível) 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 com suporte no momento do Windows, a chave do NMICrashDump registro não é mais necessária. Uma NMI causa um erro Stop que segue uma coleção de dados de despejo de memória.

  4. Quando o computador exibir o problema, segure a tecla Ctrl direita e pressione a tecla De bloqueio de rolagem 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: sanidade de dados marcar

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 Dumpchk.exe para marcar seus arquivos de despejo:

Método 3: Monitor de Desempenho

Você pode usar o Windows Monitor de Desempenho 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 Monitor de Desempenho está localizado no caminho: C:\PERFLOGS.

Outros métodos para coletar dados

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

Aviso

Siga as etapas nesta seção com cuidado. Sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para 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 despejo de memória:

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

    Observação

    Se não for possível acessar o computador afetado por meio da 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 seguintes configurações não estiverem 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 Registro Editor no computador. Em seguida, você pode marcar o tipo de arquivo de despejo de memória e o arquivo de página com o qual o computador está configurado no momento.

    2. De um computador remoto que esteja preferencialmente na mesma rede e sub-rede, acesse Registro Editor>Conectar Registro de Rede. 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 Pagefile registro for gerenciado pelo sistema, o tamanho não será refletido no registro. Por exemplo, ?:\pagefile.sys)

        Se o arquivo de página 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 página está localizado. Por exemplo, \\ServerName\C$.

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

    4. Verifique se há mais espaço livre nas unidades de disco rígido do computador do que a 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. De um computador remoto, preferencialmente, na mesma rede e sub-rede, acesse Registro Editor>Conectar Registro de Rede. Conecte-se ao computador afetado e localize as seguintes chaves de registro:

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

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

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

  3. Quando o computador exibir o problema, segure a tecla Ctrl direita e pressione a tecla De bloqueio de rolagem 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 Pool Monitor para coletar dados para o computador físico que não está mais congelado

O Pool Monitor 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 Kernel-Mode exemplos de vazamento de memória e poolMon.

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

Use um dos seguintes métodos para o aplicativo no qual a máquina virtual está em execução.

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 do VMware (vmss2core) 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 Suporte da Microsoft, você deve usar a ferramenta Checkpoint To Core (vmss2core) do 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 instantâneo, entre em contato com o VMware para obter suporte.

Citrix XenServer

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

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

Em um Windows Server, talvez você não tenha espaço em disco livre 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, confira 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.