GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Der angemessene Wert von Vm.swappiness bei der Verwendung von Zram?

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$ 

Linux
  1. Eine Einführung in die Verwendung von tcpdump auf der Linux-Befehlszeile

  2. Fehlerbehebung mit dem proc-Dateisystem unter Linux

  3. Verwenden der Kraft in der Linux-Befehlszeile

  4. Was ist der Sinn der Verwendung des Linux-Makros access_ok()

  5. Wie konfiguriere ich Swapiness in der Linux-Speicherverwaltung?

Das vollständige Handbuch zur Verwendung von ffmpeg unter Linux

Führen Sie Hintergrundprozesse in Linux mit dem Screen-Befehl aus

Tutorial zur Verwendung des Timeout-Befehls unter Linux

Tutorial zur Verwendung des letzten Befehls im Linux-Terminal

Verwenden des tr-Befehls in Linux, um mit Charakteren zu spielen

Welche Echtzeitpriorität hat in Linux die höchste Priorität?