Meta présente sa solution de compression de mémoire CRAM
Meta a dévoilé CRAM, une solution expérimentale de compression de mémoire, lors de la Linux Plumbers Conference. La solution vise à améliorer les performances en lecture seule par rapport aux alternatives ZRAM existantes.
Meta Platforms a récemment présenté CRAM (Compressed RAM), une solution expérimentale de compression de mémoire, lors de la Linux Plumbers Conference 2026 (LPC 2026) qui s'est tenue à Prague. La solution n'est pas conçue pour remplacer directement ZRAM ou zswap, mais pour maintenir les données compressées en mémoire, évitant ainsi la surcharge des chemins d'échange traditionnels.
L'innovation clé de CRAM réside dans sa gestion des données compressées. Contrairement à ZRAM, qui crée des périphériques de bloc compressés dans la RAM et traite les données via le chemin d'échange, CRAM permet aux données compressées de conserver leurs mappages de tables de pages et leur état de cache de pages. Cela permet un accès au niveau du cacheline et du byte sans déclencher de routines de décompression logicielle via des défauts de page, une différence essentielle soulignée lors de la conférence.
Les tests de référence présentés à la LPC ont montré des gains de performance significatifs dans les scénarios de lecture seule. CRAM a atteint environ 489 millions d'opérations par seconde dans les pires cas de tests de lecture, contrastant fortement avec les quelque 1,1 million d'opérations par seconde de ZRAM. L'avantage diminue avec les opérations d'écriture, car les données compressées ne peuvent pas être modifiées sur place et nécessitent un transfert temporaire vers les nœuds NUMA natifs pour modification.
Les ingénieurs de Meta reconnaissent que CRAM est encore un prototype de service noyau. Le principal défi est d'intégrer cette nouvelle capacité de mémoire "dont la capacité physique et apparente est inconsistante" dans le cadre de gestion de mémoire existant de Linux. La plupart des mécanismes noyau sous-jacents nécessaires sont déjà en place.
Bien que CRAM ne soit pas encore une fonctionnalité finalisée pour la branche principale de Linux, sa démonstration signale l'exploration par Meta de nouvelles techniques de gestion de mémoire. L'accent est mis sur l'exploitation des capacités de gestion de mémoire existantes de Linux pour prendre en charge cette nouvelle forme de mémoire compressée, plutôt que d'annoncer un produit prêt pour le déploiement.