Cache-aware scheduling - Le patch Linux qui vise +360% de perf sur MySQL

Wait 5 sec.

L'ordonnanceur du noyau Linuxvient de recevoir une proposition de mise à jour qui fait grimper les perfs de façon assez spectaculaire sur certaines charges. Hygon, le fondeur chinois qui fabrique des x86 sous licence de l'architecture Zen d'AMD, a envoyé une série de patches pour étendre le cache-aware scheduling, et les chiffres annoncés montent jusqu'à 360% de mieux en terme de transactions par seconde sur MySQL.Pour comprendre le délire, faut revenir aucache-aware schedulingde base, le fameux CAS, conçu par les ingénieurs d'Intel (Tim Chen, Chen Yu et Peter Zijlstra) et tout juste mergé dans Linux 7.2. Sur un CPU moderne avec plusieurs caches de dernier niveau, le fameux LLC, l'ordonnanceur essaie de regrouper sur le même domaine de cache les tâches qui partagent des données. Du coup, moins de ratés de cache, moins de données qui font des allers-retours entre les caches, et donc de la perf en plus sans toucher au matos mais juste en plaçant mieux les tâches.Le hic, c'est que ce CAS de base raisonne au niveau d'un seul LLC. Tant que votre charge tient dans un domaine de cache, nickel. Mais dès que la charge dépasse ce que peut contenir un seul cache partagé, l'ordonnanceur ne sait pas regrouper les tâches au niveau du dessus : elles se dispersent sur des cœurs qui ne partagent plus le même cache, et toute la localité s'évapore. Et ça tombe mal pour Hygon, dont les puces récentes ne sont pas un bloc unique mais un assemblage de chiplets (le C86-7490 en réunit quatre), avec plusieurs caches partagés éparpillés sur la galette.D'où l'idée de développer ces patches, qui permette un regroupement hiérarchique et offre la possibilité de s'étendre ou de se contracter dynamiquement selon la taille de la charge et la topologie de la machine.Hygon annonce donc jusqu'à +49% surHackbench, +20% surSchbench(non, pas le rappeur), et ce fameux +360% sur MySQL !! C'est le feu !Maintenant, avant de revendre votre PC pour en prendre un sous Hygon, attention ! Ces chiffres se sont des "jusqu'à", mesurés sur des topologies multi-domaines, donc typiquement de gros serveurs à plusieurs chiplets. Sur votre laptop avec un seul LLC, vous ne verrez donc sans doute rien passer.... Ouais, je sais, sniiiif. Le 360% n'est pas un gain universel, mais plutôt le pic sur la config qui souffrait le plus du problème.Un fondeur chinois, qui parti d'une licence Zen d'AMD, en vient à pousser du code dans Linux pour faire tourner tout le monde plus vite, Intel et AMD compris, c'est chouette quand même. Si ça vous intéresse, les patches viennent d'être postés sur lamailing list du kernel, donc rien n'est encore intégré mais si ça passe la revue, c'est de laperf gratuitepour les machines qui en bavent le plus.Source