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

Roman Gushchin (Romain Gouchtchine) de Facebook publié sur la liste de diffusion des développeurs du noyau Linux un ensemble de correctifs avec l'implémentation d'un nouveau contrôleur d'allocation de mémoire dracula (contrôleur de mémoire de dalle). Le nouveau contrôleur se distingue par le déplacement de la comptabilité des dalles du niveau des pages mémoire vers le niveau des objets du noyau, ce qui permet de partager des pages de dalle dans différents groupes de contrôle, au lieu d'allouer des caches de dalle séparés pour chaque groupe de contrôle.

L'approche proposée permet d'augmenter l'efficacité de l'utilisation de slab, de réduire de 30 à 45 % la taille de la mémoire utilisée pour slab et de réduire considérablement la consommation globale de mémoire du noyau. En réduisant le nombre de dalles non mobiles, il existe également un effet positif en réduisant la fragmentation de la mémoire. Le nouveau contrôleur de mémoire simplifie considérablement le code de comptabilisation des dalles et ne nécessite pas l'utilisation d'algorithmes compliqués pour créer et supprimer dynamiquement des caches de dalle pour chaque groupe de contrôle. Tous les groupes de contrôle de mémoire dans la nouvelle implémentation utilisent un ensemble commun de caches de dalle, et la durée de vie des caches de dalle n'est plus liée à la durée de vie de ceux installés via le groupe de contrôle. restrictions sur l'utilisation de la mémoire.

La comptabilité plus précise des ressources mise en œuvre dans le nouveau contrôleur de dalle devrait théoriquement charger davantage le processeur, mais en pratique, les différences se sont révélées insignifiantes. En particulier, le nouveau contrôleur slab est utilisé depuis plusieurs mois sur des serveurs de production Facebook gérant différents types de charges de travail, et aucune régression notable n'a encore été identifiée. Dans le même temps, il y a une réduction significative de la consommation de mémoire - sur certains hôtes, il était possible d'économiser jusqu'à 1 Go de mémoire, mais cet indicateur dépend fortement de la nature de la charge, de la taille totale de la RAM, du nombre de processeurs. et les fonctionnalités du travail avec la mémoire. Essais précédents montré réduction de la consommation mémoire de 650 à 700 Mo (42 % de la mémoire dalle) sur le front-end web, de 750 à 800 Mo (35 %) sur le serveur avec cache SGBD et de 700 Mo (36 %) sur le serveur DNS.

Source: opennet.ru

Ajouter un commentaire