Des benchmarks récents des patches proposés pour l'ordonnancement conscient du cache de Linux démontrent des améliorations significatives de performance sur les processeurs AMD EPYC Turin. Les patches, développés par des ingénieurs Intel, visent à optimiser le placement des tâches pour une meilleure localité de cache sur les CPU multi-cache. Des tests sur une configuration dual EPYC 9965 ont révélé des résultats prometteurs pour les charges de travail de serveurs hétérogènes.
Au cours des derniers mois, les ingénieurs du noyau Linux d'Intel ont développé un ordonnancement conscient du cache pour améliorer les performances sur les CPU modernes avec plusieurs niveaux de cache. Cette approche regroupe les tâches susceptibles de partager des ressources dans le même domaine de cache, améliorant la localité et l'efficacité du cache.
Les patches, qui ont dépassé la phase de demande de commentaires, ont été mis à jour début octobre. Les rapports initiaux ont mis en évidence une réduction de 44 % du temps dans un benchmark, ainsi que des améliorations sur des plateformes comme Intel Xeon Sapphire Rapids, AMD EPYC Milan et AMD EPYC Genoa.
Pour cette évaluation, des tests ont été menés sur le noyau Linux 6.17 en utilisant la série phare AMD EPYC 9005 « Turin », spécifiquement les processeurs EPYC 9965 à 192 cœurs. La configuration comprenait un serveur AMD Volcano à double socket avec 192 cœurs et 384 threads par socket, équipé de 384 Mo de cache L3.
Des comparaisons ont été effectuées entre un noyau Linux 6.17 standard et le même noyau modifié avec les patches d'ordonnancement conscient du cache du 11 octobre activés. Les paramètres ajustables pour l'ordonnancement conscient du cache, accessibles via sysfs, ont été laissés à leurs valeurs par défaut pendant les tests.
Bien que l'ordonnancement conscient du cache offre des avantages pour de nombreuses charges de travail, il n'est pas universellement bénéfique. Un patch spécifique le désactive pour les processus dont le nombre de threads dépasse les cœurs physiques dans le cache de dernier niveau (LLC) afin d'éviter les conflits de cache. Cette fonctionnalité montre un potentiel particulier pour les environnements de serveurs Linux hétérogènes typiques qui ne saturent pas complètement le CPU.