Microsoft otimiza kernel Linux para servidor ARM





Na Linux Plumbers Conference 2020, os desenvolvedores da Microsoft falaram sobre seu projeto experimental - otimizar o kernel do Linux para processadores de servidor ARM. O Diretor de Desenvolvimento de Software, Jan Birman, fez uma apresentação.



Segundo o especialista, o projeto foi lançado a pedido interno da empresa. O Linux já está sendo usado em projetos como Azure Cloud, Azure Sphere e Windows Subsystem para Linux. A equipe de Bierman foi encarregada de maximizar o desempenho do serviço de nuvem no Linux usando processadores ARM ou x86 de 64 bits. Os desenvolvedores puderam compilar o kernel para o sistema operacional com seus próprios parâmetros e sinalizadores.







A distribuição original é Ubuntu 19.10 com GCC 9.2.1, binutils 2.33 e kernel 5.3 pré-instalado. Processador de servidor - ARM Marvell Thunder X2 de 64 bits. Após o brainstorming, a equipe decidiu usar otimizações LTO e PGO para construir o kernel.







A otimização do perfil (PGO ou FDO) e a otimização do tempo de comunicação (LTO ou LTCG) reduzem significativamente o processo de construção e exigem mais RAM para o compilador funcionar, mas, em teoria, aumentam a velocidade de execução do comando em 10-20%. PGO raramente é usado por desenvolvedores e LTO foi usado recentemente para construir kernels e outros pacotes. Anteriormente, os desenvolvedores tinham medo de usar a otimização de tempo de link devido a problemas de compatibilidade nos compiladores GCC e LLVM. A equipe de Birman pediu ajuda ao experiente desenvolvedor de kernel do Linux Andy Kleen, que lançou um patch para fazer o LTO funcionar corretamente com processadores ARM. Para fazer o PGO funcionar, os desenvolvedores estudaram a documentação e conseguiram um trabalho estável por tentativa e erro.







Depois de concluir a construção principal, a equipe testou o desempenho no sistema de gerenciamento de banco de dados NoSQL residente em redis de código aberto. Depois de executar vários comandos, os desenvolvedores relataram um aumento na velocidade de execução do comando em 5-20%. Dados obtidos do teste de benchmark redis interno.











A propósito, não há muito tempo a Microsoft lançou a atualização KB4566116 para o Windows 10. A atualização adiciona suporte para o subsistema Windows para Linux 2 (WSL 2) nas versões 1909 e 1903 do sistema operacional. Isso torna possível usar um kernel Linux completo. No WSL2, ele não faz parte do Windows por padrão, mas é carregado dinamicamente e atualizado usando as ferramentas integradas ao sistema operacional.



All Articles