Scenari di utilizzo del desktop Zswap, Zram, Zcache


11

Ho cercato di capire la differenza nei casi d'uso di Zswap, Zram e Zcache. Ci scusiamo in anticipo per la domanda lunga / leggermente sciatta. Ho fatto un sacco di googling e capisco che zram è fondamentalmente un dispositivo a blocchi per lo scambio compresso, mentre zswap comprime nel kernel usando l'API frontswap. Sembra che uno dei vantaggi di zswap sia che può spostare alcune pagine in uno swap di supporto quando è sotto pressione in un modo LRU, mentre zram non può farlo (si prega di confermare, non sono sicuro che ciò sia vero).

Quindi, ecco la mia domanda: 1.) Come utente desktop, qual è la differenza di prestazioni tra zcache / zswap / zram, in particolare zswap e zram? Ad esempio, uno è molto meglio / peggio alla frammentazione della memoria (il tipo che porta a un uso eccessivo della memoria e spreco)?

Domanda bonus: 2.) Esiste probabilmente una combinazione ideale di quanto sopra (ad esempio, zram + zswap o zram + zcache) per le prestazioni del desktop (inclusa la reattività del desktop, oltre a un comportamento di scambio minimamente distruttivo e una sana gestione della memoria)?

* La citazione delle fonti è molto apprezzata.

Dovrei aggiungere che sono un utente Linux decentemente esperto (5 anni) e ho cercato di capire davvero come funziona il mio sistema, incluso il kernel. Tuttavia, non sono un programmatore e ho solo conoscenze di programmazione di base (corso universitario a 3 crediti). Ma sii tecnico se necessario; Analizzerò il tuo significato nel mio tempo.

Specifiche di sistema:

Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm

Nessun commento "compra più ram", per favore! Ho raggiunto il limite massimo su questa scheda madre e ho un budget di aggiornamento di $ 0 per il prossimo futuro. Tuttavia, mi piace tenere aperti i programmi ad alta intensità di memoria (più browser sono i principali consumatori del mio ram), quindi non mi dispiace scambiare entro limiti di degrado delle prestazioni ragionevoli.


Risposte:


7

Il modo migliore in cui posso tentare di rispondere a queste domande è quello di dire cosa sono realmente quei tre.

zRAM

zRAM non è altro che un dispositivo di scambio in sostanza. La gestione della memoria invierà le pagine al dispositivo di scambio e zRAM comprimerà quei dati, allocando la memoria secondo necessità.

Zswap

Zswap è uno spazio di scambio compresso che è allocato internamente dal kernel e non appare come un dispositivo di scambio. Viene utilizzato da frontswap nello stesso modo in cui può essere utilizzato un dispositivo di scambio, ma in modo più efficiente.

zCACHE

Zcache è il frontend di frontswap e cleancache.

Zcache sostituisce zRAM, quindi non vuoi davvero che entrambi combattano per le risorse, anche se si parla di come i due possano lavorare bene insieme date le giuste circostanze. Per ora non mi preoccuperei di provare e lasciare che gli esperti lo scoprano.

Qualche lettura:
Cleancache vs zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html

Personalmente, ho appena disabilitato zRAM e abilitato Zcache su tutti i miei sistemi che hanno un kernel abbastanza nuovo (zRAM è ancora abilitato sui dispositivi Android).

Per quanto riguarda le prestazioni: è qualcosa che dovresti guardare dentro di te. Ognuno è diverso. In teoria, tuttavia, Zcache dovrebbe essere molto più efficiente in termini di memoria rispetto a zRAM e funziona su due livelli (frontswap e cleancache) e può eseguire il paging su un dispositivo di swap secondo necessità (ad esempio sul disco rigido). Puoi anche scegliere quale algoritmo di compressione usare, se dovesse usare troppa CPU (cosa che non posso immaginare lo farà).

Aggiornamento : Zcache è stato rimosso dal kernel 3.11 (per ora), quindi zRAM è tornato ad essere l'unica opzione nei kernel più recenti. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / commit /? id = 96256460487387d28b8398033928e06eb9e428f7


1
Zswap è abilitato negli ultimi kernel aggiungendo zswap.enabled=1alla riga di comando di Linux.
Ken Sharp,
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.