Warum ist die Standardeinstellung 60? Was würde der Effekt sein, wenn ich den Swap-Wert für meinen Desktop-PC absenke?

16

Ich habe in verschiedenen Foren über Swappiness gelesen und ein paar Videos gesehen. Viele gaben an, dass es für Desktop-Benutzer eine gute Sache ist, den Swap-Wert unter 60 zu senken (dies ist die Standardeinstellung). Einige gaben an, dass 60 für Server gut ist. Genau, warum ist es besser für mich, es zu senken und warum ist 60 gut für Server? Ich habe versucht, nach einer Antwort zu suchen (ich habe zum Beispiel hier gesucht ), konnte aber nicht verstehen. ... Bitte verwenden Sie einfache Begriffe: D

Mina Michael
quelle
hat die Frage bearbeitet. Ist es jetzt gut?
Mina Michael

Antworten:

22

Ihre Prämisse ist falsch. Es gibt keinen Swapiness-Wert für "Gut für Server".

Swapiness gibt an, wie oft getauscht wird, insbesondere, wie aggressiv Sie tauschen. Bei meinen Servern ist der Swap fast gleich Null, da ich verdammt sicher bin, dass sie genug Speicher für alles haben. Es gibt keinen Wert für "best for servers". Es gibt 60, was die Standardeinstellung ist, und dann gibt es "Ihren Wert", der von der Nutzung und dem verfügbaren Speicher abhängt.

Wenn Sie Server haben, die manchmal viel Speicher belegen, können diese höher sein als die Standardeinstellung, aber ich würde sagen, dass einige Server (Datenbankserver?) Sie möglicherweise viel niedriger halten möchten als ein Heimcomputer.

Nanne
quelle
na gut: DI verfolgte diese unix.stackexchange.com/questions/88693/… . Die zweite Antwort (die derzeit mit 2 positiven Stimmen) besagte, dass 60 für Server am besten geeignet sein könnten. ... Und lassen Sie mich das klarstellen. Ich sollte einen hohen Swap-Status festlegen, wenn ich Prozesse durchführe, die viel Speicher erfordern, und einen niedrigen, wenn ich mehrere kleine Prozesse durchführe.
Mina Michael
(und je nach Angaben meines Computers ofcourse) Ich habe einen Core 2 Duo 2,9 GHz mit Intel integrierten Grafik von der Art und Weise
Mina Michael
1
Unmöglich zu sagen. Hängt von vielen Dingen ab, wie auch in dieser Antwort angegeben -> einige Datenbanken führen möglicherweise ihr eigenes Caching durch, andere jedoch nicht. Das hängt von den Programmen und Ihrer Hardware ab. Es gibt eine Standardeinstellung, und das Beste, was Sie tun können, ist zu testen, wie Ihr System in welcher Situation funktioniert. Wie gesagt, ich habe meinen Systemen genügend Speicher hinzugefügt und weiß, was sie benötigen, sodass ich eine Auslagerungszeit nahe 0 haben kann. Bei gesunden Systemen kann ein gewisses Auslagerungsverhalten jedoch eine gute Sache sein. Hier gibt es keinen einfachen "Gott für alle" -Setup-Rat, lesen Sie die am besten bewertete Antwort. Außerdem heißt es in dieser zweiten Antwort "kann sein", nicht "ist"
Nanne
(und bei Ihren Angaben: Das Wichtigste, wenn Sie über die Erinnerung sprechen, die Sie haben, aber keine besondere Notwendigkeit, sie hier hinzuzufügen: Wir könnten tagelang über alle möglichen Einzelheiten sprechen. Das Beste, was Sie tun können, ist, die zu lesen höchste Antwort auf den von Ihnen angegebenen Unix-Link und fahren Sie mit dem Testen der Funktionsweise in Ihrer Umgebung fort.) '
Nanne
Nun, da habe ich gesagt, dass ich nicht verstehen kann, was ich gelesen habe. Ich bin ziemlich schwach im Wissen (und sogar in der Sprache, um ehrlich zu sein XD) ... also muss ich es einfach weiter versuchen! okay danke: D
Mina Michael
8

Der Swappiness-Wert wird so skaliert, dass die Leute verwirrt sind. Sie sehen, dass es einen Bereich von 0-100 hat, also denken sie an Prozent, wenn wirklich das effektive Minimum bei 50 liegt.

60 bedeutet ungefähr, dass wir nicht tauschen, bevor wir 80% des Speichers verbraucht haben, während 20% für den Cache und so weiter übrig bleiben. 50 bedeutet warten, bis uns der Speicher ausgeht. Niedrigere Werte bedeuten dasselbe, aber mit zunehmender Aggressivität beim Versuch, Speicher auf andere Weise freizugeben.

Die beschreiben es ziemlich gut unter http://lwn.net/Articles/83588/

David
quelle
Was bedeuten höhere Werte, zB 80 oder 100?
Jocull
5

Die Swap-Einstellung ist eine Optimierung der Art und Weise, in der Linux die Vor- und Nachteile des Austauschs in einem bestimmten Szenario berechnet. Eine hohe Auslagerung führt nicht zum Auslagern des Systems, wenn dies nicht erforderlich ist, und eine niedrige Auslagerung verhindert nicht, dass das System auslagert, wenn dies unbedingt erforderlich ist, sofern Sie das Auslagern nicht vollständig deaktivieren.

Die Standardeinstellung von ungefähr 60 ist ein sehr guter Kompromiss, der eine gute Leistung Ihres Systems gewährleistet, indem sichergestellt wird, dass es nicht zu schwer ist, Cache-Speicher zuzuweisen, während nicht genutzter Programmspeicher zugewiesen ist.

Denken Sie daran, dass das Auslagern von Arbeitsspeicher kein Problem für Sie sein sollte, wenn Sie über ausreichend Arbeitsspeicher für alle Ihre Prozesse und den Cache verfügen. Dies sollte normalerweise der Fall sein, wenn Sie über ausreichend Arbeitsspeicher verfügen. Die bevorzugte Möglichkeit, Probleme mit zu viel Auslagerung zu beheben, besteht darin, die RAM-Nutzung durch Prozesse zu verringern und / oder den physischen RAM zu erhöhen. Das Reduzieren der Swap-Fähigkeit wirkt sich negativ aus, wenn Sie wirklich mehr RAM benötigen.

Bitte lesen Sie die Antwort, die ich auf eine sehr ähnliche Frage geschrieben habe:

/ubuntu//a/184221/54256

Auszug:

Warum empfehlen die meisten Leute, den Wechsel auf 10-20 zu reduzieren?

Weil die meisten glauben, dass Tauschen = schlecht ist und dass das System tauschen wird, wenn es nicht wirklich benötigt wird, wenn Sie das Tauschen nicht reduzieren. Keines davon ist wirklich wahr. Leute assoziieren das Tauschen mit Zeiten, in denen ihr System festgefahren ist - es ist jedoch meistens ein Tauschen, weil das System festgefahren ist und nicht umgekehrt. Es ist wahr, dass es bestimmte Zeiten gibt, in denen das Austauschen spürbare Leistungseinbußen nach sich ziehen kann, aber das System hat dies bereits bei seiner Entscheidung für das Austauschen berücksichtigt, und entschieden, dass dies insgesamt eine größere Beeinträchtigung der Systemleistung oder -stabilität zur Folge hätte, die möglicherweise eintreten könnte später auffallen. Insgesamt sollten die Standardeinstellungen die beste Gesamtleistung und Zuverlässigkeit ergeben. Ich würde empfehlen, die Standardeinstellung beizubehalten.

...

Wenn Sie genug Speicher verbraucht haben, um einen reibungslosen Cache zu gewährleisten, weist Linux möglicherweise nicht genutzten Anwendungsspeicher aus dem RAM neu zu, um ihn auszutauschen.

Es tut dies jedoch nicht nach einem bestimmten Cutoff. Es ist nicht so, dass Sie einen bestimmten Prozentsatz der Zuweisung erreichen, wenn Linux mit dem Tauschen beginnt. Es hat einen ziemlich "Fuzzy" -Algorithmus. Es werden viele Dinge berücksichtigt, die am besten mit "wie viel Druck für die Speicherzuweisung besteht" beschrieben werden können. Wenn viel "Druck" besteht, neuen Speicher zuzuweisen, erhöht dies die Wahrscheinlichkeit, dass einige ausgetauscht werden, um mehr Platz zu schaffen. Wenn es weniger "Druck" gibt, werden diese Chancen verringert.

Ihr System verfügt über eine "Swappiness" -Einstellung, mit der Sie die Berechnung dieses "Drucks" optimieren können. Es wird normalerweise nicht empfohlen, dies überhaupt zu ändern, und ich würde Ihnen auf keinen Fall empfehlen, es zu ändern. Das Austauschen ist insgesamt eine sehr gute Sache. Gelegentliche Performance-Einbußen sollen durch eine Steigerung der allgemeinen Systemreaktivität und -stabilität für eine Vielzahl von Aufgaben ausgeglichen werden. Wenn Sie die Auslagerungsrate verringern, lässt sich der Cache-Speicher etwas stärker verkleinern, als dies sonst der Fall wäre, auch wenn dies möglicherweise wirklich nützlich ist. Sie laufen daher Gefahr, Ihren Computer im Allgemeinen zu verlangsamen, da weniger Cache vorhanden ist, während der Speicher von Anwendungen belegt wird, die ihn nicht einmal verwenden. Es liegt an Ihnen, ob dies ein ausreichender Kompromiss für jedes spezifische Problem ist, das Sie beim Tauschen haben.

Was passiert, wenn das System festgefahren ist und stark wechselt?

Die meisten Leute werden sich ihr System ansehen, das die Festplatte stark auslastet und viel Swap-Platz nutzt, und Schuld daran ist, dass es ausgetauscht wird. Das ist der falsche Ansatz. Wenn das Auslagern jemals dieses Extrem erreicht, bedeutet dies, dass Ihr System extrem wenig Arbeitsspeicher hat und nur das Auslagern verhindert, dass es zufällig abstürzt oder Prozesse beendet. In dieser Situation können Prozesse abstürzen und abstürzen, wenn sie nicht ausgetauscht werden. Das Austauschen ist ein Symptom für ein tieferes Problem. In einem System mit genügend Arbeitsspeicher für alle seine Aufgaben wird durch das Auslagern nur sichergestellt, dass der Arbeitsspeicher auf effiziente Weise genutzt wird. Dabei wird der Arbeitsspeicher über ruhende Prozesse an den Cache verteilt, wo er sich lohnt. In einem System, in dem das Austauschen die Festplatte unerbittlich zerstört, ist es nicht die Schuld des Austauschs.

Bei der Auswahl, was auf die Festplatte ausgelagert werden soll, versucht das System, Speicher auszuwählen, der nicht tatsächlich verwendet wird - gelesen oder beschrieben. Es hat einen ziemlich einfachen Algorithmus für die Berechnung, der die meiste Zeit gut wählt.

...

Aber wie kann ein Tausch mein System beschleunigen? Tauscht nicht langsam?

Das Übertragen von Daten vom RAM zum Swap ist ein langsamer Vorgang, der jedoch nur ausgeführt wird, wenn der Kernel ziemlich sicher ist, dass der Gesamtnutzen dies überwiegt. Wenn Ihr Anwendungsspeicher beispielsweise so weit angestiegen ist, dass Sie fast keinen Cache mehr haben und Ihre E / A-Vorgänge aus diesem Grund sehr ineffizient sind, können Sie Ihr System erheblich beschleunigen, indem Sie sogar etwas Speicher freigeben nach dem anfänglichen Aufwand für den Austausch von Daten, um sie freizugeben.

Sie können den gesamten Beitrag unter /ubuntu//a/184221/54256 lesen

thomasrutter
quelle
0

Swappiness widerspricht völlig all diesen Antworten.

Wirkliches Arbeiten von swappiness wird im Artikel beschrieben: https://gokulvasanblog.wordpress.com/2016/11/14/empathising-mammoths-mentality-a-study-on-linux-memory-management/

Die Mehrdeutigkeit wird durch die Aussage von Andrew Morton untermauert : https://lwn.net/Articles/83593/

Ich werde meine Finger in meine Ohren stecken und "la la la" singen, bis mir die Leute sagen "Ich habe die Schnapprigkeit auf Null gesetzt und es hat nicht getan, was ich wollte".

Hoffe es ist nützlich

user3624410
quelle
1
Willkommen bei AU. Können Sie die wichtigsten Punkte des Artikels, auf den Sie verweisen, zusammenfassen und erläutern, wie die Frage beantwortet wird, dh nicht, was Tausch ist oder nicht.
Marc Vanhoomissen