Microsoft optimise le noyau Linux pour le serveur ARM
Lors de la Linux Plumbers Conference 2020, les développeurs Microsoft ont parlé de leur projet expérimental - l' optimisation du noyau Linux pour les processeurs de serveur ARM. Le directeur du développement logiciel Jan Birman fait une présentation.
Selon le spécialiste, le projet a démarré à la demande interne de l'entreprise. Linux est déjà utilisé dans des projets comme Azure Cloud, Azure Sphere et Windows Subsystem for Linux. L'équipe de Bierman a été chargée de maximiser les performances du service cloud sous Linux à l'aide de processeurs ARM 64 bits ou x86. Les développeurs ont été autorisés à compiler le noyau pour le système d'exploitation avec leurs propres paramètres et indicateurs.
La distribution d'origine est Ubuntu 19.10 avec GCC 9.2.1, binutils 2.33 et le noyau 5.3 préinstallés. Processeur serveur - ARM Marvell Thunder X2 64 bits. Après un brainstorming, l'équipe a décidé d'utiliser les optimisations LTO et PGO pour construire le noyau.
L'optimisation du profilage (PGO ou FDO) et l'optimisation du temps de communication (LTO ou LTCG) ralentissent considérablement le processus de construction et nécessitent plus de RAM pour que le compilateur fonctionne, mais en théorie, elles donnent une augmentation de la vitesse d'exécution des commandes de 10 à 20%. PGO est rarement utilisé par les développeurs, et LTO a récemment été utilisé pour construire des noyaux et d'autres packages. Auparavant, les développeurs hésitaient à utiliser l'optimisation du temps de liaison en raison de problèmes de compatibilité dans les compilateurs GCC et LLVM. L'équipe de Birman s'est tournée vers un développeur expérimenté du noyau Linux Andy Klin pour obtenir de l'aide, qui a publié un correctif pour que LTO fonctionne correctement avec les processeurs ARM. Pour faire fonctionner PGO, les développeurs ont étudié la documentation et réalisé un travail stable par essais et erreurs.
Après avoir terminé la construction du noyau, l'équipe a testé les performances sur le système de gestion de base de données résident redis NoSQL open source. Après avoir exécuté diverses commandes, les développeurs ont signalé une augmentation de la vitesse d'exécution des commandes de 5 à 20%. Données obtenues à partir du test de référence interne de Redis.
À propos, il n'y a pas si longtemps, Microsoft a publié la mise à jour KB4566116 pour Windows 10. La mise à jour ajoute la prise en charge du sous-système Windows pour Linux 2 (WSL 2) dans les versions 1909 et 1903 du système d'exploitation. Cela permet d'utiliser un noyau Linux à part entière. Dans WSL2, il ne fait pas partie de Windows par défaut, mais est chargé dynamiquement et mis à jour à l'aide des outils intégrés au système d'exploitation.