- Qu'est-ce qu'ils sont? en quoi sont-ils différents (j'ai écrit ma compréhension dans une réponse ci-dessous)
- Dans le système Zswap, quand une page est expulsée du zswap en échange réel, est-elle stockée dans un fichier compressé? (ou est-il décompressé avant de stocker?, AFAICT est toujours compressé mais je ne peux pas en être sûr)
- Quel est l'état actuel de zcache? il a apparemment été supprimé ou quelque chose de ce qui est en 3.11. Qu'est-ce que ça veut dire? ( http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=96256460487387d28b8398033928e06eb9e428f7 )
kernel
performance
ram
swap
statique
la source
la source
Réponses:
En ce qui concerne 2., zswap semble décompresser les pages lors de l'écriture différée, confirmant ainsi le commentaire de @ Cbhihe.
mm / zswap.c , ligne 828:
Donc, zswap est utile dans les situations où le cache in-ram compressé sera probablement oublié peu de temps avant d'être réécrit sur le disque. Ce n'est pas pour les applications avec de grands tas de longue vie qui devront éventuellement être supportés par le périphérique d'échange réel.
la source
Il y a beaucoup de choses sur ces trois systèmes, mais rien de tout cela ne permet une simple comparaison, et encore moins une bonne explication. J'ai essayé de comprendre, mais ma tête a explosé. Puis j'ai pensé l'avoir eu alors j'ai essayé de l'écrire et ma tête a explosé à nouveau. (voir le résumé des implémentations) J'ai pensé qu'il serait utile de poster ceci ici car il y avait beaucoup de questions stackexchange demandant des comparaisons par paires entre elles.
Résumé de ce qu'il faut utiliser quand:
Résumé de leurs implémentations:
Détails:
ZRAM: Crée un périphérique d'échange dans la RAM. Les pages envoyées ici sont compressées au fur et à mesure de leur stockage. Il a une priorité plus élevée que les autres périphériques de swap: les pages qui sont permutées sont de préférence envoyées au périphérique zram jusqu'à ce qu'il soit plein, puis tous les autres périphériques de swap utilisés.
ZSWAP: Le
frontswap
système raccroche tente d'échanger des pages et utilise zswap comme cache d' écriture arrière pour un périphérique d'échange HDD / SSD: Une tentative de compression de la page est effectuée; si elle contient des données peu compressibles, elle est directement écrite sur le disque. Si les données sont compressées, elles sont stockées dans le pool de mémoire zswap. Si les pages sont remplacées par trop de mémoire lorsque le nombre total de pages compressées dans la RAM dépasse une certaine taille, la page compressée au moins récemment utilisé (LRU) est écrite sur le disque, car il est peu probable qu'elle soit nécessaire bientôt.ZCache: C'est un backend pour le système de mémoire Transcendent. La mémoire transcendantale fournit une mémoire de type RAM qui ne peut être accédée d’une page à la fois
put
qu’à l’ aide de et d’get
appels. Cela diffère de la mémoire normale à laquelle on peut accéder octet par octet. Le systèmefrontswap
et lescleancache
tentatives de connexion tentent d’échanger et de récupérer les caches de page du système de fichiers et de les envoyer aux serveurs de mémoire transcendants. Lorsque zcache est utilisé en tant que backend, les données sont compressées et stockées dans la RAM. Quand il se remplit, les pages compressées sont expulsées à l'échange. (un autre serveur est RAMster, qui partage un pool de RAM sur des ordinateurs en réseau). Utiliser uniquement lefrontswap
frontend avec lezcache
backend fonctionne exactement commezswap
. (En fait, zswap est un sous-ensemble simplifié de zcache)Les meilleures ressources que j'ai trouvées étaient:
la source
zswap
. Voici les détails askubuntu.com/a/361321/25388zram
c'est unswap
est totalement fausse.zram
Ils ne devraient passwap
. Leswap
seul peut être stocké danszram
. Mais c’est l’un des nombreux cas d’utilisation possibles!. Voici un exemple: "Certaines des cas d'utilisation incluent le stockage / tmp, les utiliser comme disques de swap, divers caches sous / var et peut-être bien plus encore :)" kernel.org/doc/Documentation/blockdev/zram.txt Par exemple, je l'utilise pour stockage temporaire que je formate et monte comme tout autre périphérique de bloc normal.