Cleancache vs zram?


9

Ho un vecchio laptop qui con solo 512 MB di RAM. Da alcune versioni del kernel, sto usando zram per convertire 256 MB di esso in un ramdisk compresso che viene quindi utilizzato come swap. Ciò ha dimostrato di avere molto successo e il sistema è molto più reattivo, l'utilizzo dello swap (supportato da disco rigido) è notevolmente diminuito, il che ha rallentato il sistema in precedenza.

A partire da Linux 3.0, il kernel include anche cleancache che, usando qualcosa come zram come backend, dovrebbe comprimere le pagine in modo trasparente dalla cache delle pagine. Per quanto posso vedere, questo è diverso da Zram .

Devo abilitare entrambi sul mio laptop? O cleancache sostituisce effettivamente la soluzione zram ?

Modifica: ho trovato questo link al forum di Gentoo , dove sembra che debba anche abilitare il CONFIG_ZCACHEche quindi fa sì che cleancache usi zram per ottenere qualcosa di simile a quello che avevo prima. Quindi sembra che abilito tutto questo e non usi zram in modo esplicito in seguito. Qualcuno può confermarlo?

Risposte:


9

Zram crea un dispositivo a blocchi supportato da ram compresso. È possibile utilizzare quel dispositivo a blocchi per lo scambio. Normalmente la pressione della memoria provoca innanzitutto l'eliminazione della cache e solo dopo che la maggior parte della cache è stata liberata e la memoria è ancora stretta, il sistema inizia a scambiare.

CleanCache consente di migrare le pagine dalla cache delle pagine a un back-end, come xen tmem, che è la memoria gestita dall'hypervisor e condivisa tra più guest VM. L'obiettivo è consentire a più guest VM di memorizzare nella cache gli stessi dati per farlo utilizzando lo stesso ram, invece di avere ciascuno la propria cache con la propria copia degli stessi dati.

ZCache è un altro back-end CleanCache. Invece di passare la memoria all'hypervisor da conservare (che si applica solo se si utilizza un ambiente Xen VM), memorizza le pagine della cache compresse in ram, simile a Zram. La differenza è che ZCache archivia in modo trasparente le pagine della cache, ma Zram crea un dispositivo a blocchi che è possibile utilizzare per lo scambio.

Se hai applicazioni affamate di memoria, avrai bisogno di spazio di swap per supportarle, quindi vorrai comunque usare zram (probabilmente con un valore di swapiness molto elevato). Questo perché CleanCache comprime solo le pagine della cache; la memoria dell'applicazione deve essere inviata per lo scambio. Se non si utilizza tutta la memoria nelle applicazioni, è possibile utilizzare CleanCache con il backend ZCache per utilizzare in modo più efficace la memoria rimanente per la memorizzazione nella cache del disco comprimendo la cache del disco. Potresti persino usare un mix delle due tecniche.


OK, grazie, quindi le pagine della cache sono solo per la memorizzazione nella cache del disco, non per la memoria dell'applicazione. Questo non mi era chiaro.
Lytenyn,

7

In aggiunta alla risposta sopra, vedi anche https://lwn.net/Articles/454795 per una spiegazione dettagliata della tecnologia.

Da quanto ho capito, zram sarà sostituito da frontswap , che non è ancora nel kernel mainline ma che ha il vantaggio di non dover configurare alcuna dimensione di scambio fissa. Ciò consentirà di abilitare sia cleancache che frontswap (anziché zram e cleancache , dove la memoria utilizzata per zram non può essere utilizzata per cleancache ).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.