Meta sta sviluppando un nuovo sistema di compressione della memoria per Linux destinato a superare i limiti di ZRAM e zswap. Si chiama CRAM e parte da un'osservazione precisa: il vero collo di bottiglia della memoria compressa non è la compressione in sé, ma i page fault e i meccanismi di swap che entrano in gioco per gestirla. Il progetto è stato ideato da Gregory Price e dal suo team in Meta, con l'obiettivo di ridurre drasticamente l'overhead che oggi accompagna le soluzioni legate allo strato di swap di Linux.
Un nodo NUMA privato al posto dello swap
Invece di trattare la memoria compressa come una sorta di dispositivo di swap, CRAM mantiene i dati direttamente in RAM e li presenta a Linux attraverso un nodo NUMA privato. In questo modo il kernel può continuare a usare i propri meccanismi di gestione della memoria, comprese migrazione e ballooning, senza passare dal classico percorso dello swap. È una differenza architetturale sostanziale, perché evita di appesantire il sistema con le operazioni tipiche dello swap e promette prestazioni nettamente superiori rispetto a ZRAM.
Il "Chicken Bit" e il problema aperto
Uno degli elementi chiave è quello che gli sviluppatori chiamano "Chicken Bit". Serve a impedire che Linux continui a indirizzare nuove allocazioni verso CRAM mentre il sistema è già impegnato a gestire la memoria compressa. Il problema nasce dal fatto che non tutti i dati si comprimono allo stesso modo: una grande quantità di zeri può ridursi enormemente, mentre dati già compressi possono occupare quasi lo stesso spazio di partenza. Questo rende difficile stabilire quanta memoria "logica" sia realmente disponibile e prevedere quando lo spazio fisico finirà. CRAM non risolve ancora completamente questo problema, indicato come un'area di ricerca aperta, ma il Chicken Bit serve almeno a evitare che una situazione di pressione sulla memoria degeneri in una cascata di errori.
Se il progetto dovesse maturare, Linux potrebbe gestire la RAM in modo molto più efficiente, con vantaggi concreti soprattutto nei server e nei data center dove la memoria compressa è una risorsa critica. La strada è ancora lunga, ma l'approccio di Meta potrebbe ridefinire il modo in cui il kernel affronta la pressione sulla memoria.