Vai al contenuto
Offerte

ZRAM su Linux: le patch di Google riducono memoria e latenze

In questo articolo Indice dei contenuti 2 sezioni

Liberare memoria su un computer Linux senza aggiungere un solo banco di RAM sembra quasi un paradosso. Eppure è proprio quello che fa da anni ZRAM. Il kernel comprime una parte delle pagine di memoria e le tiene nella RAM stessa, così da evitare quando possibile il ricorso allo swap su SSD o su disco tradizionale. Adesso questa tecnologia riceve una revisione importante, grazie a una serie di patch pubblicate a inizio ottobre 2026. L’obiettivo è ridurre la memoria consumata internamente da ZRAM e abbassare le latenze di compressione e decompressione.

Dietro il lavoro c’è Sergey Senozhatsky, sviluppatore del team Chrome e Chromium di Google, da tempo legato allo sviluppo del sottosistema. Non si tratta di un nuovo algoritmo capace di miracoli. L’intervento è più profondo e tocca il modo in cui ZRAM organizza i dati, distribuisce il carico tra le CPU e gestisce letture, scritture e ricompressione.

Perché ZRAM rende il sistema più reattivo

ZRAM è presente in Linux da oltre 15 anni e oggi gira su notebook, desktop, dispositivi embedded, sistemi ChromeOS e macchine dove la memoria è una risorsa preziosa. Il principio è semplice. Un processore comprime e decomprime una pagina molto più in fretta di quanto lo storage impieghi a spostarla verso un dispositivo di swap. Spendere un po’ di CPU per comprimere la RAM finisce così per rendere il computer più scattante.

Il cuore della revisione è zcomp, il livello che fa da ponte tra ZRAM e gli algoritmi di compressione. Finora alcune risorse interne potevano essere condivise tra compressione e decompressione. Quando il sistema era sotto carico, un’operazione rischiava quindi di dover aspettare la fine dell’altra. Con le nuove patch le due attività vengono separate meglio, e lettura e scrittura dei dati compressi procedono con meno interferenze proprio quando la memoria è sotto pressione. Meno contese interne significano pagine compresse e recuperate con maggiore regolarità, soprattutto quando molte richieste arrivano nello stesso istante.

C’è poi la parte dedicata alla ricompressione. ZRAM può prendere dati già compressi e passarli a un secondo algoritmo più efficace. All’inizio usa un compressore molto rapido e solo in seguito torna sulle pagine che restano a lungo in memoria per recuperare altro spazio. Questa funzione poteva però riservare più memoria del necessario, specie sui sistemi con molti core. Le patch riducono lo spreco condividendo meglio le risorse, con benefici evidenti per algoritmi come Zstandard, Deflate e LZ4HC, che richiedono strutture di lavoro più pesanti. Meno RAM usata dall’infrastruttura vuol dire più memoria lasciata alle applicazioni.

ZRAM, swap classico e zswap a confronto

Con lo swap tradizionale il kernel sposta le pagine poco usate verso una partizione o un file sullo storage, che di solito offre molto più spazio della RAM. Il prezzo da pagare è la latenza. Anche un buon SSD NVMe resta ordini di grandezza più lento della memoria principale, soprattutto con accessi casuali e code I/O, e con un hard disk il divario cresce enormemente. Sotto forte pressione può comparire il thrashing, con gran parte del tempo spesa a gestire lo swap invece di svolgere lavoro utile. ZRAM sposta il costo dallo storage alla CPU, perché le pagine non lasciano mai la memoria.

Non sempre è la soluzione migliore però. Con dati poco comprimibili o una CPU già al limite il vantaggio si riduce. ZRAM inoltre continua a occupare memoria fisica e non può offrire la capacità quasi illimitata di uno swap su SSD.

Diverso ancora è il caso di zswap, spesso confuso con ZRAM. Quest’ultima crea un vero dispositivo a blocchi compresso residente in memoria, utilizzabile direttamente come swap. Zswap invece agisce come una cache compressa davanti a uno swap tradizionale. Quando il suo pool in RAM raggiunge i limiti, alcune pagine vengono trasferite sul disco sottostante, che fa da seconda linea di difesa. Usare entrambe le tecnologie insieme è possibile ma raramente sensato, perché si sovrappongono livelli di compressione e il comportamento sotto pressione diventa meno prevedibile.

Dire che ZRAM aumenta la RAM è una semplificazione non del tutto fuori luogo, anche se la capacità fisica resta identica. A cambiare è l’efficienza. Se un insieme di pagine occupa 1 GB non compresso ma può stare in 400 o 500 MB, il sistema recupera centinaia di megabyte per applicazioni, cache del file system o altre attività. La revisione interviene proprio sui due costi storici di ZRAM, cioè la RAM occupata dall’infrastruttura e il tempo di CPU necessario per gestire le pagine compresse.

Fonte: TecnoAndroid

Condividi:
53 Condivisioni