Unnötiges Tauschen unter Linux

1803
Ryan Fox

Es sieht so aus, als ob mein Computer manchmal unnötig zu tauschen beginnt (Speicherverbrauch beträgt ~ 25%), und ich kann nicht herausfinden, warum.

Es scheint am häufigsten zu passieren, wenn Perl-Skripts ausgeführt werden, aber dies sind keine intensiven Skripts, und ich kann nichts finden, was besagt, dass Perl nur eine bestimmte Menge Speicherplatz sieht. Die Swap-Verwendung bleibt bestehen, nachdem die Skripts beendet wurden und sogar nach dem Schließen von Firefox, Banshee usw. Wenn Sie X neu starten, wird das Problem manchmal gelöst. In anderen Fällen ist jedoch ein vollständiger Neustart erforderlich.

Dies wird für mich zu einem großen Problem, denn sobald etwas zu tauschen beginnt, scheint alles andere auch zu sein. Grundlegende Dinge wie das Schließen eines Programms oder das Wechseln von Gesichtspunkten dauert immer länger. Wenn Sie das Kontrollkästchen nicht aktivieren, wird mein Computer letztendlich dazu gezwungen, auf unbestimmte Zeit zu schlagen, ohne auf Tastatureingaben reagieren zu können.

Ich verwende den Ubuntu 9.04, 2.6.28-15 Kernel, ich habe 4 GB RAM und sitze normalerweise bei ~ 25%.

Ich habe auch versucht, den "Swappiness" zu senken, ohne Glück.

4
Wie überwachen Sie den Austausch - "vmstat"? Können Sie überprüfen, was passiert, wenn Sie Swap-Speicher zum Deaktivieren des Swap-Bereichs verwenden? nagul vor 15 Jahren 0
Bitte posten Sie die Ausgabe von "free -m" und "cat / proc / meminfo". Es klingt wirklich so, als wären Sie weit über 25% ausgelastet. derobert vor 15 Jahren 0
Ich konnte das nicht reproduzieren, seit ich die Frage gestellt habe. Ich werde es aktualisieren, wenn es wieder passiert. Ryan Fox vor 15 Jahren 0

1 Antwort auf die Frage

3
Patrick

Mein Vorschlag setzt Ihr Swappiness auf 0.

Wenn Sie den Swap auf eine "niedrigere Zahl" setzen, kann dies die "Häufigkeit" der Verwendung von Swap reduzieren. Wenn Sie den Wert auf 0 setzen, wird der Kernel jedoch auf einen anderen Codepfad gesetzt, wodurch die gesamte Speicherzuweisung zunächst den gesamten verfügbaren Speicher und Cache beansprucht, bevor Sie Swap verwenden Platz.

Sie können den Swap auf Null setzen, indem Sie Folgendes ausgeben:

echo 0> / proc / sys / vm / swappiness