Solução de problemas de soft lockups de vCPU

Neste documento, descrevemos como solucionar problemas de bloqueios leves 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 leves é causada por bugs no software de aplicativos.

Bloqueios leves podem fazer com que as VMs não respondam por curtos períodos, interrompam o acesso SSH a elas e acionem tempos limite ou failover de aplicativos. As VMs que estão passando por um soft lockup também podem ter uma utilização da CPU incomumente alta ou baixa, dependendo da causa exata do soft lockup.

Identificar bloqueios parciais

Para identificar se a VM está passando por um soft lockup, faça uma das seguintes ações:

Exemplo de rastreamento de pilha de bloqueio parcial

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

Para detectar bloqueios leves futuros, faça o seguinte:

  1. Ative a geração de registros de saída da porta serial.

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

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

Resolver problemas de bloqueios parciais

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

  1. Verifique no site do fornecedor do SO se há erros conhecidos na sua versão do SO. Às vezes, você pode encontrar referência a módulos específicos do kernel no stack trace que sugere uma função ou operação específica envolvida.
  2. Identifique se o bloqueio parcial se repete com alguma frequência, como coincidindo com carga alta ou determinadas atividades. Se os bloqueios leves estiverem relacionados a uma carga alta, talvez seja necessário reconfigurar sua carga de trabalho, por exemplo, usando uma VM maior ou dividindo a carga em mais VMs.
  3. Verifique se os bloqueios leves estão relacionados a mudanças no ambiente de execução, como novas implantações de software ou atualizações de imagens do SO.
  4. Avalie se houve eventos de manutenção por volta do horário do soft lockup. Para isso, analise os registros de auditoria de eventos do sistema.

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

Práticas recomendadas para evitar bloqueios leves

Para evitar que suas VMs sofram bloqueios leves, recomendamos implementar as seguintes práticas recomendadas:

  • Verifique se você tem os componentes redundantes adequados configurados para seu sistema, como clusters de alta disponibilidade, para fornecer um recurso de failover se uma VM específica tiver um soft lockup prolongado. Para mais informações, consulte Como criar sistemas resilientes.
  • Para cargas de trabalho com uso intenso 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 ela funciona durante a migração em tempo real (se ativada), principalmente em testes de carga.
  • Se você estiver executando um kernel do Linux ou módulos personalizados na sua VM, teste novas mudanças sob carga antes de implantá-las no ambiente de produção. Confirme se as mudanças personalizadas não impedem que você receba suporte do fornecedor do SO.
  • Mantenha seu sistema operacional atualizado. Para mais informações, consulte Detalhes do sistema operacional.