J'utilise zram sur mon ordinateur en tant que swap compressé basé sur la RAM. Lorsque le système doit échanger quelque chose, l'échanger contre un fichier d'échange basé sur zram équivaut plus ou moins à compresser ces données en mémoire pour libérer de l'espace. Cela rend l'échange très rapide la plupart du temps, par rapport à l'échange sur disque. Pour cette raison, je me demande s'il y a des performances à gagner en encourageant le système à échanger les éléments inutilisés de manière plus agressive, car il peut le faire sans toucher le disque ?
Donc, quelqu'un a-t-il dérangé, par exemple, la définition de vm.swappiness
à 100 en utilisant zram ? Serait-ce souhaitable ?
sysctl -w vm.swappiness=100
Réponse acceptée :
Réponse courte :vm.swappiness=100
est la valeur appropriée pour zram (au moins sur Debian Stretch avec Linux 4.9, je pense que c'est la meilleure valeur)
J'ai déjà testé vm.swappiness=100
pour moi.
Je pense que vous pouvez faire un test simple pour déterminer quelle valeur vous convient le mieux.
J'ai également créé un autre programme simple pour tester cette question.
x
Sur ma machine, un vm.swappiness
très faible valeur (telle que vm.swappiness=1
) entraînera un problème de réactivité évident.
À propos de SwapCached
dans /proc/meminfo
:
Tout d'abord, essayez vm.page-cluster=0
, cela peut peut-être réduire certains SwapCached
inutiles à partir de l'échange.
SwapCached peut accélérer zram de la même manière qu'un périphérique d'échange non zram
SwapCached
Il peut être réutilisé (gratuitement) si nécessaire :
./linux-4.9/mm$ grep -rn delete_from_swap_cache
memory-failure.c:715: delete_from_swap_cache(p);
shmem.c:1115: delete_from_swap_cache(*pagep);
shmem.c:1645: * unaccounting, now delete_from_swap_cache() will do
shmem.c:1652: delete_from_swap_cache(page);
shmem.c:1668: delete_from_swap_cache(page);
vmscan.c:673: __delete_from_swap_cache(page);
swap_state.c:137:void __delete_from_swap_cache(struct page *page)
swap_state.c:218:void delete_from_swap_cache(struct page *page)
swap_state.c:227: __delete_from_swap_cache(page);
swapfile.c:947: delete_from_swap_cache(page);
swapfile.c:987: delete_from_swap_cache(page);
swapfile.c:1023: delete_from_swap_cache(page);
swapfile.c:1571: delete_from_swap_cache(page);
./linux-4.9/mm$