TMO, un mécanisme Facebook qui économise de la RAM sur les serveurs

Les ingénieurs de Facebook ont ​​révélé, par le biais d'un rapport, l'introduction de la technologie TMO (Transparent Memory Offloading) l'année dernière, qui permet d'économiser significativement de la RAM sur les serveurs en déplaçant les données secondaires qui ne sont pas nécessaires pour fonctionner sur des disques moins chers tels que les SSD NVMe.

Facebook estime que TMO économise entre 20% et 32% de RAM sur chaque serveur. La solution est conçue pour être utilisée dans des infrastructures où les applications s'exécutent dans des conteneurs isolés. Les composants côté noyau de TMO ils sont déjà inclus dans le noyau Linux.

Côté noyau Linux, l'opération de la technologie est fourni par le sous-système PSI (Pressure Stall Information), fourni à partir de la version 4.20.

PSI déjà utilisé dans divers pilotes hors mémoire et permet d'analyser des informations sur le temps d'attente de diverses ressources (CPU, mémoire, E/S). Avec PSI, les processeurs de l'espace utilisateur peuvent évaluer plus précisément les modèles de charge et de ralentissement du système, ce qui permet de détecter les anomalies avant qu'elles n'aient un impact notable sur les performances.

Dans l'espace utilisateur, le composant Senpai exécute TMO, qui ajuste dynamiquement la limite de mémoire pour les conteneurs d'applications via cgroup2 en fonction des données reçues du PSI.

Senpai analyse les signes du début d'une pénurie de ressources via PSI, évalue la sensibilité des applications au ralentissement des accès mémoire et essaie de déterminer la taille minimale de mémoire requise pour un conteneur, dans lequel les données requises pour le travail restent dans la RAM, et les données associées qui se trouvaient dans le cache de fichiers ou ne sont pas actuellement directement utilisées, sont forcées vers la partition d'échange.

Transparent Memory Offload (TMO) est la solution de Meta pour les environnements de centres de données hétérogènes. Il introduit un nouveau mécanisme de noyau Linux qui mesure le travail perdu en raison de pénuries de ressources dans le processeur, la mémoire et les E/S en temps réel. Guidé par ces informations et sans aucune connaissance préalable de l'application, TMO ajuste automatiquement la quantité de mémoire à décharger sur un périphérique hétérogène, comme une mémoire compressée ou un SSD. Il le fait en fonction des caractéristiques de performance de l'appareil et de la sensibilité de l'application aux accès mémoire plus lents.

Par conséquent, l'essence de TMO est de maintenir les processus à un "régime strict" en termes de consommation de mémoire, forçant les pages de mémoire inutilisées à être déplacées vers la partition d'échange, dont la suppression n'affecte pas sensiblement les performances (par exemple, les pages avec du code utilisé uniquement lors de l'initialisation et des données uniques mises en cache sur le disque) . Contrairement au vidage des informations sur la partition d'échange en réponse à une mémoire insuffisante, TMO vidage les données en fonction de la prédiction prédictive.

L'absence d'accès à une page mémoire dans les 5 minutes est retenue comme l'un des critères de préférence. Ces pages sont appelées pages froides et représentent en moyenne environ 35% de la mémoire de l'application (selon le type d'application, il y a une variation de 19% à 65%).

La préférence prend en compte l'activité associée aux pages anonymes de mémoire (mémoire allouée par l'application) et la mémoire utilisée pour la mise en cache des fichiers (allouée par le noyau). Dans certaines applications, la mémoire anonyme est la principale consommation, mais dans d'autres, le cache de fichiers est également très important.

Pour éviter un déséquilibre lors du vidage de la mémoire dans le cache, TMO utilise un nouvel algorithme de pagination qui vide les pages anonymes et les pages associées au cache de fichiers proportionnellement.

Pousser les pages peu utilisées vers une mémoire plus lente n'a pas un impact énorme sur les performances, mais cela peut réduire considérablement les coûts matériels. Les données sont envoyées aux SSD ou à l'espace d'échange compressé dans la RAM. Au prix du stockage d'un octet de données, l'utilisation de SSD NVMe est jusqu'à 10 fois moins chère que l'utilisation de la compression sur RAM.

Enfin, si vous souhaitez en savoir plus, vous pouvez consulter les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   elian dit

    cela peut-il être utilisé sur des ordinateurs normaux avec des applications normales ?