Facebook a proposé un nouveau mécanisme de gestion de mémoire slab pour le noyau Linux

Roman Gushchin (Roman Gushchin) de la société Facebook a publié dans la liste de diffusion des développeurs du noyau Linux un ensemble de correctifs pour la mise en œuvre d'un nouveau contrôleur de répartition de la mémoire slab (contrôleur de mémoire slab). Le nouveau contrôleur se distingue par le transfert de la gestion du slab du niveau des pages de mémoire au niveau des objets du noyau, permettant ainsi de partager les pages slab entre différents cgroup, au lieu d'allouer des caches slab séparés pour chaque cgroup.

L'approche proposée permet d'augmenter l'efficacité de l'utilisation du slab, de réduire de 30 à 45 % la taille de la mémoire utilisée pour le slab et de diminuer considérablement la consommation globale de mémoire par le noyau. Grâce à la réduction du nombre de slabs non déplacables, un effet positif est également observé en termes de réduction de la fragmentation de la mémoire. Le nouveau contrôleur de mémoire simplifie considérablement le code de gestion du slab et ne nécessite pas l'application d'algorithmes complexes pour la création et la suppression dynamiques de caches slab pour chaque cgroup. Tous les cgroups de mémoire dans la nouvelle mise en œuvre utilisent un ensemble commun de caches slab, et la durée de vie des caches slab n'est plus liée à la durée de vie des cgroups contraintes pour l'utilisation de la mémoire.

La gestion plus précise des ressources réalisée dans le nouveau contrôleur slab devrait théoriquement plus solliciter le CPU, mais dans la pratique, les différences se sont révélées peu significatives. En particulier, le nouveau contrôleur slab est déjà utilisé depuis plusieurs mois sur des serveurs opérationnels de Facebook, gérant différents types de charges, et aucune régression notable n'a été observée jusqu'à présent. De plus, une réduction significative de la consommation de mémoire est constatée — sur certains hôtes, il a été possible d'économiser jusqu'à 1 Go de mémoire, mais ce chiffre dépend fortement de la nature de la charge, de la taille totale de la RAM, du nombre de CPU et des spécificités de l'utilisation de la mémoire. Des tests précédemment réalisés montré ont montré une réduction de la consommation de mémoire de 650 à 700 Mo (42 % de la mémoire slab) sur le front web, de 750 à 800 Mo (35 %) sur un serveur avec cache de base de données et de 700 Mo (36 %) sur un serveur DNS.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster