Dans un article de blog, les administrateurs systèmes de Meta (maison-mère de Facebook) ont évoqué la fonction TMO, acronyme de Transparent Memory Offloading (déchargement transparent de la mémoire). Celle-ci est intégrée au noyau Linux et fonctionne en mesurant en temps réel la perte de traitement en raison d’un manque de ressources au niveau du CPU, en analysant la mémoire et les I/O. Guidé par ces résultats, le TMO ajuste automatiquement la quantité de mémoire à décharger sur d’autres ressources comme la compression mémoire ou les SSD.

Dans le document, l’équipe souligne, « des technologies alternatives comme les SSD NVMe offrent une capacité de stockage supérieure à la DRAM pour une fraction du coût et de la performance ». Car c’est bien une question de coût qui a mené Meta à s’intéresser à cette fonctionnalité. L’équation est simple, Facebook qui compte près de 3 milliards d’utilisateurs actifs mensuels et plusieurs millions de serveurs répartis dans 21 sites dans le monde comprenant chacun 128 Go de RAM, soit 256 Po de RAM (en partant d’un hypothèse basse d’un parc de 2 millions de serveurs). A 4 dollars par Go (RAM DDR4 ECC), la facture totale s’élève à 1 milliard de dollars de mémoire.

20 à 32 % d’économies sur la RAM

Les ingénieurs de Meta ont donc fait tourner la fonctionnalité pendant un an au sein des datacenters et ont constaté une économie de 20 à 32% sur la mémoire totale. Ils expliquent à travers un graphique, la fraction des coûts des différents types de mémoires utilisées dans les serveurs. La firme estime « que le coût de la DRAM augmente pour atteindre 33 % de nos dépenses d'infrastructure ». Elle ajoute, « la consommation d'énergie de la DRAM suit une tendance similaire et devrait atteindre 38 % de la puissance de notre infrastructure de serveurs ». Sur le graphique, on constate que « les SSD NVMe contribuent à moins de 3 % du coût du serveur (environ 3 fois moins que la mémoire compressée dans notre génération actuelle de serveurs) ».

Au fur et à mesure de l'évolution des serveurs, le coût de la DRAM va représenter jusqu'à 33% du serveur. (Crédit Photo: Meta)

Toujours en phase d’expérimentation, TMO implique des actions manuelles notamment « sur le back-end de déchargement entre la mémoire compressée et le swap soutenu par le SSD » souligne l’équipe de Meta. Ils reconnaissent aussi la possibilité de développer des outils pour automatiser les processus. Mais ils préfèrent se concentrer sur une modification du kernel capable de gérer «  une hiérarchie de back-end de déchargement (par exemple, en utilisant automatiquement zswap pour les la mémoire chaude et SSD pour la mémoire froide ou moins compressibles, ainsi qu'en intégrant les dispositifs NVMe et CXL (Compute Express Link utilisé dans le HPC) dans la hiérarchie de la mémoire à l'avenir) ». Parmi les limites de TMO, les ingénieurs de Meta pointent notamment une dégradation des performances. Mais les gains en termes d'économie d'énergie et de mémoire l'emportent largement sur les inconvénients. Les équipes de Meta ont bien travaillé, mais les plus anciens se souviennent de la mémoire paginée sur MS-DOS et de la mémoire virtuelle qui emprunte une partie de l'espace disponible sur un disque dur ou mieux un lecteur flash NVMe pour épauler la RAM. Signalons enfin que la start-up Liquid a ajouté la virtualisation de la mémoire vive à sa plateforme - en plus de GPU, DPU et ressources SSD NVMe - pour apporter de la RAM supplémentaire aux serveurs qui en ont temporairement besoin. Les usages sont principalement en HPC aujourd'hui.