Cleancache vs zram?

9

J'ai ici un vieil ordinateur portable avec seulement 512 Mo de RAM. Depuis quelques versions du noyau, j'utilise zram pour en convertir 256 Mo en un ramdisk compressé qui est ensuite utilisé comme swap. Cela s'est avéré très efficace et le système est beaucoup plus réactif, l'utilisation de swap (sur disque dur) a considérablement diminué, ce qui a ralenti le système auparavant.

Depuis linux 3.0, le noyau inclut également cleancache qui, en utilisant quelque chose comme zram comme backend, est censé compresser de manière transparente les pages du cache de pages. Pour autant que je puisse voir, c'est différent de zram .

Dois-je activer les deux sur mon ordinateur portable? Ou est-ce que cleancache remplace réellement la solution zram ?

Edit: J'ai trouvé ce lien de forum gentoo , où il semble que je doive également l'activer, CONFIG_ZCACHEce qui fait que cleancache utilise zram pour obtenir quelque chose de similaire à ce que j'avais auparavant. Il semble donc que j'active tout cela et n'utilise pas explicitement zram par la suite. Quelqu'un peut-il confirmer cela?

lytenyn
la source

Réponses:

9

Zram crée un périphérique bloc soutenu par un ram compressé. Vous pouvez utiliser ce périphérique de blocage pour l'échange. Normalement, la pression de la mémoire entraîne d'abord la suppression du cache, et ce n'est qu'après que la majeure partie du cache a été libérée et que la mémoire est encore restreinte que le système commence à échanger.

CleanCache permet de migrer les pages du cache de pages vers un serveur principal, tel que xen tmem, qui est une mémoire gérée par l'hyperviseur et partagée entre plusieurs invités VM. L'objectif est de permettre à plusieurs invités VM de mettre en cache les mêmes données en utilisant le même ram, au lieu d'avoir chacun leur propre cache avec leur propre copie des mêmes données.

ZCache est un autre backend CleanCache. Au lieu de transmettre la mémoire à l'hyperviseur pour la conserver (ce qui ne s'applique que si vous utilisez un environnement de machine virtuelle Xen), il stocke les pages de cache compressées en ram, comme Zram. La différence est que ZCache stocke de manière transparente les pages de cache, mais Zram crée un périphérique de bloc que vous pouvez utiliser pour l'échange.

Si vous avez des applications gourmandes en mémoire, vous aurez besoin d'espace de swap pour les prendre en charge, vous voudrez donc toujours utiliser zram (probablement avec une valeur de swappiness très élevée). En effet, CleanCache ne compresse que les pages de cache; la mémoire de l'application doit être envoyée pour permuter. Si vous n'utilisez pas toute votre mémoire sur les applications, vous pouvez utiliser CleanCache avec le backend ZCache pour utiliser plus efficacement la mémoire restante pour la mise en cache du disque en compressant le cache du disque. Vous pourriez même utiliser un mélange des deux techniques.

psusi
la source
OK, merci, donc les pages de cache sont uniquement pour la mise en cache du disque, pas pour la mémoire d'application. Ce n'était pas clair pour moi.
lytenyn
7

En complément de la réponse ci-dessus, voir également https://lwn.net/Articles/454795 pour une explication détaillée de la technologie.

D'après ce que je comprends, zram sera remplacé par frontswap , qui n'est pas encore dans le noyau principal mais qui a l'avantage qu'aucune taille de swap fixe ne doit être configurée. Cela facilitera l'activation de cleancache et de frontswap (au lieu de zram et cleancache , où la mémoire utilisée pour zram ne peut pas être utilisée pour cleancache ).

lytenyn
la source