thejournalofsierraleonestudies.com

Meta veut apprendre à Linux à gérer la RAM via la nouvelle technologie CRAM de compression sans utilisation de la swap, l’approche suscite du scepticisme en raison d’une dépendance à du matériel spécialisé

Dans un contexte de rareté et de coût élevé de la mémoire vive, l’approche CRAM (Compressed RAM), récemment présentée par des ingénieurs de Meta, ne saurait passer inaperçue. Présentée par l’équipe de Gregory Price chez Meta lors de la Linux Plumbers Conference au cours de ce mois, sa valeur ajoutée majeure réside dans sa capacité à étendre virtuellement la capacité de la RAM en la compressant, tout en conservant des vitesses d'accès quasi identiques à de la mémoire DRAM native. Elle fait néanmo

Dans un contexte de rareté et de coût élevé de la mémoire vive, l’approche CRAM (Compressed RAM), récemment présentée par des ingénieurs de Meta, ne saurait passer inaperçue. Présentée par l’équipe de Gregory Price chez Meta lors de la Linux Plumbers Conference au cours de ce mois, sa valeur ajoutée majeure réside dans sa capacité à étendre virtuellement la capacité de la RAM en la compressant, tout en conservant des vitesses d'accès quasi identiques à de la mémoire DRAM native. Elle fait néanmoins l’objet de scepticisme en raison de divers facteurs parmi lesquels on retrouve la dépendance à du matériel spécialisé.

Qu’est-ce qui différencie la CRAM de ZRAM et de Zswap ?

Les technologies actuelles comme ZRAM ou Zswap simulent un espace de stockage virtuel (un périphérique de "swap") dans la RAM. Lorsqu'une application a besoin des données compressées, le système subit un "défaut de page" (page fault), ce qui impose de décompresser entièrement la page de mémoire via un logiciel pour la recopier dans la mémoire vive classique, créant d'importants ralentissements.

CRAM élimine totalement cette logique de swap au travers de :

L’approche CRAM offre des gains de performance spectaculaires

Avec les approches traditionnelles (ZRAM/Zswap), lorsqu'une application a besoin d'accéder à une donnée compressée, le système doit déclencher une interruption (page-fault), décompresser la page en mémoire logicielle, puis la copier à nouveau dans l'espace classique avant de pouvoir la lire.

C’est là que CRAM s’inscrit en rupture au travers de l’utilisation de mécanismes matériels spécifiques de compression (hardware-offloading) qui permettent aux applications de lire les données compressées directement en place, à l'octet ou à la ligne de cache près, sans étape de décompression logicielle préalable.
Il vient alors que dans les scénarios de lecture seule (read-only), CRAM affiche des performances de lecture atteignant jusqu'à 452 fois celles de ZRAM (près de 489 millions d'opérations par seconde contre 1,1 million pour ZRAM lors des premiers tests).

ZRAM fonctionne en simulant un périphérique de stockage par blocs virtuel (un disque de swap fictif). Cette abstraction logicielle impose une lourde charge au système de gestion de la mémoire de Linux.

CRAM pour sa part expose la mémoire compressée via un nœud NUMA privé (une sorte de "processeur/nœud mémoire fantôme"). La mémoire compressée reste traitée fondamentalement comme de la RAM standard.

Puisque CRAM est reconnu comme de la vraie mémoire par le noyau Linux, le système n'a pas besoin de contourner ses algorithmes habituels. Il continue d'utiliser nativement ses outils d'optimisation avancés:

  1. Le ballooning (ajustement dynamique de la taille de la mémoire).
  2. La migration de pages et l’équilibrage automatique entre mémoire "chaude" et "froide").
  3. La récupération efficace de l’espace.

Le hic : Une dépendance matérielle obligatoire

Bien que la majeure partie des modifications logicielles nécessaires soient déjà intégrées ou en cours d'intégration dans le code principal (mainline) du noyau Linux, CRAM ne fonctionne pas de manière purement logicielle. Pour fonctionner à de telles vitesses, CRAM s'appuie sur du matériel spécialisé (comme des modules de mémoire CXL) capable de prendre en charge la compression et la décompression directement au niveau des puces, de manière totalement transparente pour le processeur.

De plus, cette approche pose un défi inédit au système d'exploitation : gérer une capacité mémoire qu’on est susceptible de qualifier de mensongère. Par exemple, si un module physique de 1 téraoctet annonce au système qu'il peut contenir 3 téraoctets grâce à CRAM, Linux doit apprendre à réagir si les données s'avèrent impossibles à compresser et que l'espace physique vient subitement à manquer.

presentation link https://t.co/6TiNxHiqIr

— 🐝🇬🇷 (@bee_fumo) October 6, 2026

Où en est le projet ?

Pour l'instant, CRAM n'est pas encore déployée à grande échelle. Il s'agit d'une implémentation technique fonctionnelle soumise à la révision de la communauté du noyau Linux. Elle vise dans un premier temps les serveurs et les centres de données (où le coût de la RAM est critique), avant de pouvoir potentiellement s'étendre un jour aux appareils grand public.

Ce qu’on peut en retenir de façon sommaire est que pour un serveur ou un appareil contraint par le manque de RAM, CRAM permet d'intégrer beaucoup plus de données dans l'espace physique disponible (par exemple faire tenir 8 à 12 Go de données dans 4 Go de RAM physique), sans subir l'effondrement de performances habituellement lié à la compression ou au swap. C'est une solution logicielle et matérielle de choix pour maximiser la densité mémoire à moindre coût.

Source : Vidéo de présentation de l’approche CRAM lors de la Plumbers Conference

Et vous ?

Que pense-vous de cette approche ? Aimeriez-vous le voir être adoptée par d’autres éditeurs de système d’exploitation ?

Vous avez lu gratuitement 117 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.