Engenheiros da Intel promovem mudança no kernel do Linux para otimizar desempenho de armazenamento NVMe
No universo do desempenho em tecnologia, não são apenas as grandes reescritas que fazem a diferença. Muitas vezes, melhorias significativas surgem de detalhes que à primeira vista parecem triviais, como a configuração das interrupções. Recentemente, engenheiros da Intel estão impulsionando uma alteração no kernel Linux visando aprimorar o desempenho do armazenamento NVMe em servidores modernos que possuem um elevado número de núcleos.
O desafio surge quando o número de interrupções (IRQs) do NVMe é inferior ao número de CPUs, uma situação cada vez mais comum nas plataformas atuais. Nesse cenário, diversos núcleos acabam compartilhando a mesma interrupção. Se a afinidade da IRQ não está bem alinhada com a topologia real do processador, a latência e o rendimento são negativamente afetados. A Intel explica essa problemática de maneira simples: quando a interrupção e o grupo de CPUs não estão proximamente localizados, em termos de cache e localidade, penalizações de desempenho ocorrem.
Os arquitetos de sistemas têm um motivo claro para se preocupar: a afinidade das IRQs não deve ser vista como um detalhe menor, especialmente em ambientes de NVMe e alto paralelismo. Em sistemas que combinam muitos núcleos, filas do NVMe e cargas de I/O intensivas, uma distribuição subóptima de interrupções pode se transformar em um gargalo silencioso.
A proposta de melhoria, que torna o kernel consciente dos clústeres de CPUs dentro de cada domínio NUMA, tem como meta agrupar núcleos de forma mais inteligente, garantindo uma melhor localidade na atribuição das IRQs de NVMe. O engenheiro da Intel, Wangyang Guo, destacou que, à medida que o número de núcleos aumenta, a quantidade de IRQs pode não acompanhar esse crescimento, o que acaba resultando em penalizações se a afinidade não estiver adequada.
Em testes realizados, a nova abordagem demonstrou uma melhoria de cerca de 15% em leituras aleatórias, utilizando o benchmark FIO em um servidor Intel Xeon E. Apesar desse dado ser promissor, ainda não há informações sobre o impacto em outros perfis de I/O ou em uma variedade maior de plataformas.
O patch já foi incorporado à ramificação “mm-everything”, sob a supervisão de Andrew Morton, e tem possibilidade de ser integrado em futuras versões do kernel (em torno do Linux 6.20 ou 7.0). À medida que mais testes em diferentes configurações forem realizados, será possível avaliar plenamente o impacto dessas mudanças nos ambientes de servidores modernos, onde a eficiência não se resume apenas a aumentar a quantidade de IOPS, mas também em reduzir a fricção interna do sistema.






