Ich verwende zram auf meinem Computer als komprimierten RAM-gestützten Swap. Wenn das System etwas auslagern muss, ist das Auslagern in eine zram-gestützte Auslagerungsdatei mehr oder weniger gleichbedeutend mit dem Komprimieren dieser Daten im Arbeitsspeicher, um Speicherplatz freizugeben. Dies macht das Auslagern im Vergleich zum festplattengestützten Auslagern die meiste Zeit sehr schnell. Aus diesem Grund frage ich mich, ob man etwas Leistung gewinnen kann, indem man das System dazu ermutigt, ungenutzte Daten aggressiver auszutauschen, da es dies tun kann, ohne tatsächlich auf die Festplatte zu treffen?
Hat also jemand herumgespielt, sagen wir, vm.swappiness
gesetzt auf 100 bei Verwendung von zram? Wäre dies wünschenswert?
sysctl -w vm.swappiness=100
Akzeptierte Antwort:
Kurze Antwort:vm.swappiness=100
ist ein angemessener Wert für zram (zumindest auf Debian Stretch mit Linux 4.9, ich glaube, das ist der beste Wert)
Ich habe bereits vm.swappiness=100
getestet für mich.
Ich denke, Sie können einen einfachen Test durchführen, um sicherzugehen, welcher Wert für Sie am besten geeignet ist.
Außerdem habe ich ein weiteres einfaches Programm zum Testen dieser Frage erstellt.
x
Auf meiner Maschine eine sehr niedrige vm.swappiness
Wert (z. B. vm.swappiness=1
) führt zu offensichtlichen Reaktionsproblemen.
Über SwapCached
in /proc/meminfo
:
Versuchen Sie zuerst vm.page-cluster=0
, dies kann möglicherweise einige nutzlose SwapCached
reduzieren vom Austausch.
SwapCached kann zram genauso beschleunigen wie Nicht-Zram-Auslagerungsgeräte
SwapCached
Es kann bei Bedarf (kostenlos) wiederverwendet werden:
./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$