A opção CONFIG_PARAVIRT_SPINLOCK do kernel Linux adiciona uma camada de paravirtualização para spinlocks. No Alibaba Cloud Linux, essa opção vem desativada por padrão. Se não tiver certeza sobre os riscos, não a ative. Este tópico explica por que habilitar CONFIG_PARAVIRT_SPINLOCK em uma instância do Elastic Compute Service (ECS) pode degradar o desempenho e mostra como verificar e desativar essa configuração.
Descrição do problema
Em instâncias de ECS com múltiplas vCPUs, ativar CONFIG_PARAVIRT_SPINLOCK reduz significativamente o desempenho das aplicações quando há alta concorrência por locks. Por exemplo, o throughput do NGINX cai perceptivelmente ao processar conexões de curta duração.
Causa
Ativar CONFIG_PARAVIRT_SPINLOCK introduz sobrecarga adicional e aumenta a complexidade do mecanismo de spinlock do kernel, o que degrada o desempenho.
O spinlock é um mecanismo de sincronização que impede o acesso simultâneo de várias threads ou processos a recursos compartilhados, garantindo a consistência dos dados.
Solução
Etapa 1: Verificar se CONFIG_PARAVIRT_SPINLOCK está ativado
Execute o comando abaixo para consultar a configuração do kernel:
grep CONFIG_PARAVIRT_SPINLOCK /boot/config-$(uname -r)
Analise a saída:
|
Saída |
Significado |
|
|
A opção está ativada |
|
|
A opção está desativada — nenhuma ação necessária |
Se a opção estiver desativada, interrompa o procedimento aqui. Caso esteja ativada, siga para a etapa 2.
Etapa 2: Recompilar o kernel com a opção desativada
Alterar a configuração e recompilar o kernel envolve componentes de baixo nível do sistema. Se não tiver experiência com compilação ou instalação de kernels, abra um ticket para entrar em contato com o suporte técnico da Alibaba Cloud antes de continuar.
Recompile e reinstale o kernel com CONFIG_PARAVIRT_SPINLOCK desativado.