Solução de problemas de bloqueios suaves de vCPU


Este documento descreve como solucionar problemas de bloqueios suaves de vCPU. Um bloqueio suave ocorre quando a vCPU de uma instância de máquina virtual (VM) não consegue executar uma nova tarefa por mais de 20 segundos. A maioria dos bloqueios suaves são causados ​​por bugs no software aplicativo.

Os bloqueios suaves podem fazer com que as VMs deixem de responder por curtos períodos de tempo, interrompam o acesso SSH às VMs e acionem tempos limite ou failover de aplicativos. As VMs que estão passando por um bloqueio suave também podem ter uma utilização de CPU excepcionalmente alta ou baixa, dependendo da causa exata do bloqueio suave.

Identifique bloqueios suaves

Para identificar se sua VM está passando por um bloqueio suave, siga um destes procedimentos:

Exemplo de rastreamento de pilha de bloqueio suave

watchdog: BUG: soft lockup - CPU#3 stuck for 22s!

Para detectar futuros bloqueios suaves, você pode fazer o seguinte:

  1. Habilite o registro de saída da porta serial .

  2. Crie uma política de alertas baseada em log para o seguinte log:

    resource.type="gce_instance" log_id("serialconsole.googleapis.com/serial_port_1_output") textPayload=~"watchdog.*lockup"
    

Solucionar problemas de bloqueios suaves

Depois de identificar que está ocorrendo um bloqueio suave, tente as seguintes etapas de solução de problemas para resolver o problema:

  1. Verifique no site do fornecedor do seu sistema operacional se há erros conhecidos na versão do seu sistema operacional. Às vezes, você pode encontrar referências a módulos específicos do kernel no rastreamento de pilha que sugerem uma função ou operação específica envolvida.
  2. Identifique se o bloqueio suave se repete com alguma frequência, como coincidindo com alta carga ou determinadas atividades. Se os bloqueios suaves estiverem correlacionados com uma carga elevada, poderá ser necessário reconfigurar a sua carga de trabalho, por exemplo, utilizando uma VM maior ou dividindo a carga em mais VMs.
  3. Verifique se os bloqueios suaves estão correlacionados com quaisquer alterações no seu ambiente de tempo de execução, como novas implantações de software ou atualizações de imagem do sistema operacional.
  4. Avalie se algum evento de manutenção ocorreu próximo ao bloqueio suave, revisando os logs de auditoria para logs de auditoria de eventos do sistema.

Se as etapas de solução de problemas a seguir não resolverem o problema, registre um caso de suporte e inclua todas as informações coletadas na solução de problemas.

Melhores práticas para evitar bloqueios suaves

Para ajudar a evitar que as suas VMs sofram bloqueios suaves, recomendamos a implementação das seguintes práticas recomendadas:

  • Certifique-se de ter componentes redundantes apropriados configurados para o seu sistema, como clusters de alta disponibilidade, para fornecer um recurso de failover se uma VM específica sofrer um bloqueio suave prolongado. Para obter mais informações, consulte Projetando sistemas resilientes .
  • Para cargas de trabalho com uso intensivo de computação, considere usar famílias de máquinas otimizadas para computação .
  • Teste sua carga de trabalho com eventos de manutenção simulados para saber como sua carga de trabalho funciona durante a migração ao vivo (se habilitada), especialmente em testes de carga.
  • Se você estiver executando um kernel Linux personalizado ou módulos personalizados em sua VM, teste novas alterações sob carga antes de implantá-las em seu ambiente de produção. Confirme se as alterações personalizadas não o desqualificam para receber suporte do fornecedor do sistema operacional.
  • Mantenha seu sistema operacional atualizado. Para obter mais informações, consulte Detalhes do sistema operacional .