Scénarios d'utilisation du bureau Zswap, Zram, Zcache

12

J'ai essayé de comprendre la différence dans les cas d'utilisation de Zswap, Zram et Zcache. Toutes mes excuses à l’avance pour la question à la formulation longue / légèrement bâclée. J'ai fait beaucoup de recherches sur Google, et je comprends que zram est essentiellement un périphérique de bloc pour l'échange compressé, tandis que zswap compresse dans le noyau en utilisant l'api frontswap. Il semble que l'un des avantages de zswap est qu'il peut déplacer certaines pages vers un swap de sauvegarde lorsqu'il est sous pression de manière LRU, tandis que zram ne peut pas le faire (veuillez confirmer, je ne sais pas si c'est vrai).

Voici donc ma question: 1.) En tant qu'utilisateur de bureau, quelle est la différence de performances entre zcache / zswap / zram, en particulier zswap et zram? Par exemple, la fragmentation de la mémoire est-elle bien meilleure / pire (celle qui entraîne une utilisation excessive de la mémoire et un gaspillage)?

Question bonus: 2.) Existe-t-il une combinaison idéale des éléments ci-dessus (par exemple, zram + zswap ou zram + zcache) pour les performances du bureau (y compris la réactivité du bureau, plus le comportement de permutation minimalement perturbateur et la gestion saine de la mémoire)?

* La citation des sources est grandement appréciée.

Je dois ajouter que je suis un utilisateur Linux assez expérimenté (5 ans) et que j'ai essayé de vraiment comprendre comment fonctionne mon système, y compris le noyau. Cependant, je ne suis pas programmeur et je n'ai que des connaissances de base en programmation (3 crédits de cours collégial). Mais soyez technique si vous en avez besoin; Je vais analyser votre sens sur mon propre temps.

Spécifications du système:

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

Pas de commentaires "acheter plus de RAM", s'il vous plaît! J'ai maximisé le RAM sur cette carte mère et j'ai un budget de mise à niveau de 0 $ dans un avenir prévisible. Cependant, j'aime garder les programmes gourmands en mémoire ouverte (plusieurs navigateurs étant les principaux consommateurs de mon RAM), donc cela ne me dérange pas de permuter dans des limites raisonnables de dégradation des performances.

Garenne
la source

Réponses:

7

La meilleure façon de tenter de répondre à ces questions est de dire ce que ces trois sont réellement.

zRAM

zRAM n'est rien de plus qu'un dispositif de swap par essence. La gestion de la mémoire poussera les pages vers le périphérique d'échange et zRAM compressera ces données, en allouant de la mémoire selon les besoins.

Zswap

Zswap est un espace d'échange compressé qui est alloué en interne par le noyau et n'apparaît pas comme un périphérique d'échange. Il est utilisé par frontswap de la même manière qu'un périphérique de swap peut être utilisé, mais de manière plus efficace.

Zcache

Zcache est l'interface de frontswap et cleancache.

Zcache remplace zRAM donc vous ne voulez pas vraiment que les deux se disputent les ressources, bien qu'il y ait des discussions sur la façon dont les deux peuvent bien fonctionner ensemble dans les bonnes circonstances. Pour l'instant, je ne prendrais pas la peine d'essayer et de laisser le soin aux experts de trouver celui-là.

Un peu de lecture:
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

Personnellement, je viens de désactiver zRAM et d'activer Zcache sur tous mes systèmes qui ont un noyau suffisamment nouveau (zRAM est toujours activé sur les appareils Android).

Quant à la performance: c'est quelque chose que vous devez examiner vous-même. Tout le monde est différent. En théorie, cependant, Zcache devrait être beaucoup plus efficace en mémoire que zRAM et il fonctionne à deux niveaux (frontswap et cleancache), et il peut paginer vers un périphérique de swap selon les besoins (sur le disque dur, par exemple). Vous pouvez également choisir l'algorithme de compression à utiliser, s'il utilise trop de CPU (ce que je ne peux pas imaginer).

Mise à jour : Zcache a été supprimé du noyau 3.11 (pour l'instant), donc zRAM est redevenu la seule option dans les noyaux plus récents. 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
la source
1
Zswap est activé dans les derniers noyaux en ajoutant zswap.enabled=1à la ligne de commande Linux.
Ken Sharp