Swap wird verwendet, wenn der RAM fast zur Hälfte frei ist

Swap wird verwendet, wenn der RAM fast zur Hälfte frei ist

Mir ist heute aufgefallen, dass ich folgendes gefunden habe:

Bildbeschreibung hier eingeben

Wie Sie sehen, ist der RAM fast zur Hälfte frei und die Nutzung des Swap-Speichers ist sehr hoch. Aus meinem Lehrbuchwissen ging ich immer davon aus, dass das Linux-Betriebssystem versucht, den RAM optimal zu nutzen und bei RAM-Knappheit einige der am wenigsten genutzten Seiten vom RAM in den Swap-Speicher verschiebt.

Kann mir bitte jemand erklären, ob mein theoretisches Wissen falsch ist und wie es in der Linux-Welt eigentlich funktioniert.

Antwort1

Es stimmt zwar, dass der Kernel Swap verwendet, auch wenn möglicherweise noch Speicher übrig ist. Wenn jedoch mehr als zwei Drittel davon verwendet werden, kann dies ein Hinweis darauf sein, dass dem Server in der Vergangenheit möglicherweise der Speicher ausgegangen ist und er deshalb mit dem Swapping begonnen hat. Ich würde die Swap-Nutzung mit der Speichernutzung in den SAR-Berichten korrelieren, um zu ermitteln, ob das System über genügend RAM verfügt. Ich würde auch dmesg oder die Protokolle überprüfen, um festzustellen, ob dem Server tatsächlich der Speicher ausgegangen ist und der oom-Killer eingegriffen hat.

Antwort2

Der Linux-Kernel beginnt, Speicherseiten auszulagern, selbst wenn Sie über ausreichend freien RAM verfügen. Sie können dieses Verhalten optimieren, indem Sie eine benutzerdefinierte Auslagerung festlegen.

http://en.wikipedia.org/wiki/Swappiness

Für Server würde ich empfehlen, die Swappiness auf 1 zu setzen, wenn Sie immer genügend Speicher für Ihre Arbeitslast haben. Für Workstations würde ich empfehlen, den Standardwert 60 zu verwenden.

# check the current value
cat /proc/sys/vm/swappiness
60

# swappiness = 1 (swap only if necessary)
echo 1 > /proc/sys/vm/swappiness

# or use sysctl
sysctl -w vm.swappiness=1

Machen Sie die Einstellung in /etc/sysctl.conf dauerhaft, indem Sie Folgendes festlegen:

vm.swappiness=1

und laden Sie es neu mit

sysctl -w

Antwort3

Einige Anwendungen greifen leider direkt auf den Swap zu und überspringen absichtlich den RAM. Ich meine dich, Chrome (und irgendwann auch Photoshop). Die einzige Möglichkeit, diese Anwendungen vom Swap abzuhalten, besteht darin, sie ohne Swap-Partition auszuführen. Selbst Swappiness 0 (wenn ich mich recht entsinne) gewährt ihnen noch Zugriff, da sie ihn ausdrücklich verlangen.

Das Ändern der Swappiness wie oben beschrieben funktioniert jedoch für alles andere. Ich würde jedoch einen Wert von 10-20 anstelle von 1 vorschlagen.

verwandte Informationen