Escenarios de uso de escritorio Zswap, Zram, Zcache

11

He estado tratando de entender la diferencia en los casos de uso de Zswap, Zram y Zcache. Disculpas de antemano por la pregunta larga / ligeramente descuidada. Hice un montón de búsquedas en Google y entiendo que zram es básicamente un dispositivo de bloque para intercambio comprimido, mientras que zswap se comprime en el núcleo usando la interfaz de usuario frontswap. Parece que una ventaja de zswap es que puede mover algunas páginas a un intercambio de respaldo cuando está bajo presión de una manera LRU, mientras que zram no puede hacer eso (por favor confirme, no estoy seguro si esto es cierto).

Así que aquí está mi pregunta: 1.) Como usuario de escritorio, ¿cuál es la diferencia de rendimiento entre zcache / zswap / zram, especialmente zswap y zram? Por ejemplo, ¿hay uno mucho mejor / peor en la fragmentación de la memoria (el tipo que conduce al uso excesivo de la memoria y al desperdicio)?

Pregunta adicional: 2.) ¿Existe una combinación ideal probable de lo anterior (por ejemplo, zram + zswap o zram + zcache) para el rendimiento del escritorio (incluida la capacidad de respuesta del escritorio, más un comportamiento de intercambio mínimamente disruptivo y una gestión de memoria sensata)?

* La cita de las fuentes es muy apreciada.

Debo agregar que soy un usuario de Linux con bastante experiencia (5 años), y he tratado de entender realmente cómo funciona mi sistema, incluido el kernel. Sin embargo, no soy programador y solo tengo conocimientos de programación muy básicos (curso universitario de 3 créditos). Pero sé técnico si lo necesitas; Analizaré tu significado en mi propio tiempo.

Especificaciones del 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

No hay comentarios "comprar más ram", por favor! He maximizado la memoria RAM en esta placa base y tengo un presupuesto de actualización de $ 0 para el futuro previsible. Sin embargo, me gusta mantener abiertos los programas de uso intensivo de memoria (varios navegadores son los principales consumidores de mi RAM), así que no me importa intercambiar dentro de los límites razonables de degradación del rendimiento.

Madriguera
fuente

Respuestas:

7

La mejor manera en que puedo intentar responder esas preguntas es decir cuáles son esos tres en realidad.

zRAM

zRAM no es más que un dispositivo de intercambio en esencia. La gestión de memoria enviará páginas al dispositivo de intercambio y zRAM comprimirá esos datos, asignando memoria según sea necesario.

Zswap

Zswap es un espacio de intercambio comprimido que el núcleo asigna internamente y no aparece como un dispositivo de intercambio. Frontswap lo utiliza de la misma manera que se puede utilizar un dispositivo de intercambio, pero de una manera más eficiente.

Zcache

Zcache es la interfaz de frontswap y cleancache.

Zcache reemplaza a zRAM, por lo que realmente no quiere que ambos peleen por los recursos, aunque se habla de cómo los dos pueden funcionar bien juntos, dadas las circunstancias correctas. Por ahora no me molestaría en intentarlo y dejar que los expertos lo resuelvan.

Algunas lecturas: ¿
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, acabo de deshabilitar zRAM y habilité Zcache en todos mis sistemas que tienen un núcleo lo suficientemente nuevo (zRAM todavía está habilitado en los dispositivos Android).

En cuanto al rendimiento: eso es algo que deberías tener en cuenta. Todos son diferentes. En teoría, sin embargo, Zcache debería ser mucho más eficiente en memoria que zRAM y funciona en dos niveles (frontswap y cleancache), y puede pasar a un dispositivo de intercambio según sea necesario (en el disco duro, por ejemplo). También puede elegir qué algoritmo de compresión usar, en caso de que use demasiada CPU (que no puedo imaginar que lo haga).

Actualización : Zcache se ha eliminado del núcleo 3.11 (por ahora), por lo que zRAM se ha convertido nuevamente en la única opción en los núcleos más nuevos. 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

Ken Sharp
fuente
1
Zswap se habilita en los núcleos más recientes al agregar zswap.enabled=1a la línea de comandos de Linux.
Ken Sharp