Introduction
Un ingénieur d'AWS a récemment signalé une régression de performance de PostgreSQL avec le noyau Linux 7.0, qui pourrait entraîner une baisse de 50% des performances. Cette régression a été détectée sur un serveur Graviton4 et est due à une modification du noyau Linux 7.0 qui restreint les modes de préemption disponibles.
Contexte Technique
La régression a été identifiée comme étant causée par la restriction des modes de préemption pour le noyau Linux 7.0. Cette modification a été apportée pour simplifier les modes de préemption et améliorer la performance globale. Cependant, elle a un impact négatif sur les performances de PostgreSQL, qui passe plus de temps dans une boucle d'attente utilisateur.
Les développeurs ont proposé un correctif pour restaurer le mode de préemption par défaut, mais celui-ci pourrait ne pas être accepté. Une alternative proposée consiste à mettre à jour PostgreSQL pour utiliser l'extension de séquences redémarrables (RSEQ) de Linux 7.0, qui pourrait réduire l'exposition à la préemption des verrous.
Analyse et Implications
La régression de performance de PostgreSQL avec Linux 7.0 pourrait avoir des implications importantes pour les utilisateurs qui dépendent de cette base de données. La mise à jour de PostgreSQL pour utiliser l'extension RSEQ pourrait être nécessaire pour éviter une baisse de performance. Cependant, cela pourrait nécessiter des modifications significatives du code de PostgreSQL.
La sortie de Linux 7.0 stable est prévue dans environ deux semaines, et cette version du noyau sera utilisée par Ubuntu 26.04 LTS, qui sera publié plus tard en avril. Les utilisateurs de PostgreSQL devraient surveiller de près les mises à jour et les correctifs pour éviter toute régression de performance.
Perspective
Il est important de surveiller les mises à jour de Linux 7.0 et les correctifs pour PostgreSQL pour éviter toute régression de performance. Les utilisateurs devraient également être conscients des limitations de l'extension RSEQ et de la nécessité potentielle de mettre à jour leur code pour utiliser cette fonctionnalité. La collaboration entre les développeurs de Linux et de PostgreSQL sera cruciale pour résoudre ce problème et assurer une performance optimale pour les utilisateurs.