Este documento descreve como resolver soft lockups 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 travamentos leves é causada por bugs no software do aplicativo.
Soft lockups podem fazer com que as VMs parem de responder por curtos períodos, interrompam o acesso SSH a VMs e acionem timeouts de aplicativos ou failover. As VMs que estão com uma falha temporária também podem ter uma utilização da CPU anormalmente alta ou anormalmente baixa, dependendo da causa exata da falha temporária.
Identificar soft lockups
Para identificar se a VM está com um bloqueio suave, faça uma das seguintes ações:
- Se você já ativou a geração de registros de saída de porta serial para sua VM, analise a saída da porta serial para verificar se há um stack trace de bloqueio suave.
- Analise os registros do sistema operacional da VM (
/var/log/messages
) para verificar se há um stack trace de travamento suave.
Exemplo de stack trace de soft lockup
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
Para detectar soft lockups futuros, faça o seguinte:
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 bloqueio suave está ocorrendo, siga as etapas de solução de problemas abaixo para resolver o problema:
- Verifique se há erros conhecidos com sua versão do SO no site do fornecedor. Às vezes, você pode encontrar referências a módulos específicos do kernel no stack trace que sugere uma função ou operação específica envolvida.
- Identifique se a falha suave se repete com alguma frequência, como coincidindo com carga alta ou determinadas atividades. Se as falhas suaves correlacionarem com carga alta, talvez seja necessário reconfigurar a carga de trabalho, por exemplo, usando uma VM maior ou dividindo a carga entre mais VMs.
- Verifique se as falhas leves estão relacionadas a mudanças no ambiente de execução, como novas implantações de software ou atualizações de imagem do SO.
- Avalie se algum evento de manutenção aconteceu no momento do soft lockup, analisando registros de auditoria para registros de auditoria de eventos do sistema.
Se as etapas de solução de problemas não resolverem o problema, registre um caso de suporte e inclua todas as informações coletadas na solução de problemas.
Práticas recomendadas para evitar travamentos leves
Para evitar que as VMs tenham travamentos leves, recomendamos implementar as seguintes práticas recomendadas:
- Verifique se você tem componentes redundantes adequados configurados para seu sistema, como clusters de alta disponibilidade, para fornecer um recurso de failover se uma VM específica apresentar um bloqueio suave prolongado. Para mais informações, consulte Como projetar sistemas resilientes.
- Para cargas de trabalho com uso intenso de processamento, use famílias de máquinas otimizadas para computação.
- Teste a carga de trabalho com eventos de manutenção simulados para saber como ela se comporta durante a migração em tempo real (se ativada), principalmente durante o teste de carga.
- Se você estiver executando um kernel do Linux ou módulos personalizados na sua VM, teste as novas mudanças sob carga antes de implantá-las no ambiente de produção. Confirme se as mudanças personalizadas não desqualificam você para receber suporte do fornecedor do SO.
- Mantenha seu sistema operacional atualizado. Para mais informações, consulte Detalhes do sistema operacional.