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 uso da CPU incomumente alto ou baixo, 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:
- Se você já tiver ativado a geração de registros de saída da porta serial para sua VM, analise a saída da porta serial para um stack trace de bloqueio suave.
- Analise os registros do sistema operacional da VM (
/var/log/messages
) para um stack trace de bloqueio suave.
Exemplo de rastreamento de pilha de bloqueio suave
watchdog: BUG: soft lockup - CPU#3 stuck for 22s!
Para detectar bloqueios leves 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 soft lockup está ocorrendo, siga estas etapas de solução de problemas para resolver o problema:
- Verifique no site do fornecedor do SO se há erros conhecidos na sua versão do SO. Às vezes, é possível encontrar referências a módulos específicos do kernel no stack trace que sugerem uma função ou operação específica envolvida.
- Identifique se o bloqueio parcial se repete com alguma frequência, como coincidindo com alta carga ou determinadas atividades. Se os bloqueios leves estiverem relacionados a uma carga alta, talvez seja necessário reconfigurar a carga de trabalho, por exemplo, usando uma VM maior ou dividindo a carga em mais VMs.
- 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.
- 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 durante a solução de problemas.
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 oferecer um recurso de failover se uma VM específica apresentar um soft lockup prolongado. Para mais informações, consulte Como projetar 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 as 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.