A distribuição Ubuntu Linux vai aplicar otimizações de baixa latência para seu kernel genérico, segundo um comunicado recente da Canonical. O Ubuntu há muito tempo fornece uma compilação de kernel de “baixa latência” destinada a sistemas embarcados industriais e outros ambientes sensíveis à latência. Antes do Ubuntu 24.04 LTS, a Canonical está procurando aplicar essas otimizações de baixa latência à sua compilação genérica do kernel.
Ubuntu 24.04 LTS continua ficando mais interessante do departamento de desempenho… De ser agressivo no alvo do kernel Linux 6.8, ponteiros de quadro por padrão, experimentando com compilações do Ubuntu x86-64-v3 e muito mais, esta próxima versão de suporte de longo prazo do Ubuntu Linux está parecendo bastante interessante. O mais recente agora está considerando aplicar suas mudanças de baixa latência à compilação genérica do kernel usada pelo Ubuntu.
O kernel de baixa latência do Ubuntu refere-se principalmente a mudanças de configuração do Kconfig. Elas são aplicadas à compilação do kernel que eles agora estão pelo menos considerando fazer por padrão.
Este relatório de bug do Launchpad elabora:
O Ubuntu fornece o kernel de “baixa latência”: um kernel otimizado para aplicativos que têm requisitos especiais de “baixa latência”.
Atualmente, este kernel não inclui nenhum patch específico do UBUNTU SAUCE para melhorar os requisitos extras de “baixa latência”, mas a única diferença é um pequeno subconjunto de opções .config.
Quase todas essas opções agora são configuráveis no momento da inicialização ou mesmo em tempo de execução, com a única exceção do CONFIG_HZ (250 no kernel genérico vs 1000 no kernel de baixa latência).
Manter um kernel separado para uma única opção de configuração parece um pouco exagerado e é um custo significativo de horas de engenharia, tempo de compilação, tempo de teste de regressão e recursos. Sem mencionar o risco de o kernel de baixa latência ficar para trás e não estar perfeitamente em sincronia com o kernel genérico mais recente.
A ativação das configurações de baixa latência no kernel genérico já foi avaliada antes. Porém, nunca foi finalizada devido ao risco potencial de regressões de desempenho em aplicativos com uso intensivo de CPU (aumentar o HZ de 250 para 1000 pode introduzir mais jitter do kernel em cargas de trabalho de processamento de número). O resultado da proposta original resultou em uma reclassificação do kernel de baixa latência como um kernel orientado para desktop, permitindo recursos adicionais de baixa latência (LP: #2023007).”
Ubuntu vai aplicar otimizações de baixa latência para kernel genérico
Entre as mudanças no kernel de baixa latência estão:
- a habilitação de CONFIG_NO_HZ_FULL para o modo sem tickless completo;
- CONFIG_RCU_NOCB_CPU para mover retornos de chamada RCU para o contexto KThread;
- CONFIG_RCU_LAZY para retornos de chamada RCU em lote;
- e CONFIG_HZ=1000 para 1000Hz para melhorar a capacidade de resposta do sistema.
A preocupação é principalmente sobre o risco de desempenho da carga de trabalho HPC / servidor. Mas, ei, eu convido isso como uma oportunidade agora para executar alguns novos benchmarks Phoronix das ofertas de kernel do Ubuntu nos próximos dias…
A questão de aplicar as configurações de baixa latência à compilação genérica do kernel do Ubuntu ainda está para ser determinada. Então, aqueles que desejam encontrar o mais recente podem fazê-lo através deste bug do Launchpad. Será interessante ver o que eles decidem e que outras mudanças de desempenho eles podem buscar para o Ubuntu 24.04 LTS.