Linux-Swapiness - Anpassen der Kernel-VM-Einstellungen

9

Bevor Sie dies lesen, beachten Sie bitte, dass ich die Vorteile des Caching verstehe. Ich kenne das Dogma, dass unbenutzter Widder verschwendeter Widder ist.

Diese Frage habe ich aus einer früheren Frage übernommen:

Linux zwischengespeicherten RAM löschen

In dieser Frage war ich neugierig darauf, wie mein Server RAM verwendet und zwischenspeichert. Das System ist ziemlich dynamisch, daher glaube ich, dass die zwischengespeicherten Dateien mir nicht wirklich viel Gewinn bringen. Außerdem haben wir Code auf dem Server, der in kurzer Zeit schnell auf große Mengen an RAM zugreifen muss, um Videodateien zu verarbeiten, und ich glaube, dass die direkte Übergabe von RAM einen Leistungsvorteil bringt, anstatt ihn aus dem Cache zu löschen und dann Gib es ab.

Ich möchte herausfinden, ob einer von Ihnen Erfahrung mit dem Anpassen des Standardwerts von 60 in der folgenden Datei hat (dies befindet sich zufällig auf einem Ubuntu-Server):

/proc/sys/vm/swappiness  

Und wenn ja, welche Auswirkungen haben Sie gesehen? Wenn ich den Standardwert von 60 durch 30 ersetze, sehe ich weniger Auslagerung und viel mehr Wiederverwendung des veralteten Caches? Nähere ich mich 0 oder 100, um die Swapiness zu verringern und die Wiederverwendung des Caches zu erhöhen?

Schließlich weiß jemand, warum die Standardeinstellung auf 60 eingestellt ist?

HINWEIS: Wenn es nahe bei 0 liegt, zieht Linux es vor, Anwendungen im RAM zu belassen und die Caches nicht zu vergrößern. Wenn es nahe bei 100 liegt, wird Linux es vorziehen, Anwendungen auszutauschen und die Caches so weit wie möglich zu vergrößern. Der Standardwert ist eine gesunde 60. - Vielen Dank für den Link unten, 3dInfluence.

Patrick R.
quelle

Antworten:

6

Bearbeiten: Die Antwort so umgeschrieben, dass sie kürzer und klarer ist, hoffe ich :)

Sie müssen wirklich verstehen, wie das VM-Subsystem als Ganzes funktioniert, um mit der Optimierung der Tunables zu beginnen. Andernfalls stellen Sie möglicherweise fest, dass Sie nicht die erwarteten Ergebnisse erzielen. Dieser Artikel ist ein ziemlich guter Ausgangspunkt dafür, wie diese Einstellungen mit einer Desktop-Neigung zusammenarbeiten.

Also mehr zu deiner Frage. Swappiness steuert, wann das VM-Subsystem Prozesstabellenseiten zurückfordert, indem die Zuordnung aufgehoben und ausgelagert wird, auch bekannt als Swapping. Diese einstellbare Funktion weist das VM-Subsystem an, nach Seiten zu suchen, die ausgetauscht werden sollen, wenn der Prozentsatz des Speichers, der für die Verarbeitung von Seitentabellen + Swappiness-Wert zugeordnet ist,> 100 ist. Bei einer Einstellung von 60 beginnt das System, veraltete Seiten von der Prozessseite auszulagern Tabelle, wenn mehr als 40% des Arbeitsspeichers Ihres Systems belegt sind. Wenn Sie Ihren Programmen erlauben möchten, mehr Speicher auf Kosten des Caches zu verwenden, sollten Sie den Swappiness-Wert verringern. Sie sollten sich auch / proc / sys / vm / min_free_kbytes und / proc / sys / vm / vfs_cache_pressure ansehen. Dies steuert auch, wie viel Speicher in Reserve gehalten wird und wie aggressiv das Caching ist.

3dinfluence
quelle
@ 3dinfluence - Ich habe den Artikel durchgearbeitet, auf den Sie oben verwiesen haben. Großartige Ressource!
Patrick R
1
linuxinsight.com/proc_sys_vm_hierarchy.html gibt Ihnen ein oder zwei Sätze darüber, was die einzelnen Tunables tun. Aber ich habe diese Informationen darüber, wie Swappiness funktioniert, aus einem Buch mit dem Titel "Performance Tuning für Linux-Server"
3dinfluence
+1 danke 3dinfluence. Bisher war dieses Buch äußerst lehrreich.
Patrick R
Das ist großartig ... konnten Sie die Leistung Ihrer Anwendung verbessern?
3dinfluence
Ich konnte die Leistung verbessern. Außerdem habe ich festgestellt, dass der folgende Befehl beim Twittern hilfreich ist: # sysctl -w vm.swappiness = 40
Patrick R