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. Wenn das System vertauscht wird, hat es die Leistungskosten bereits bei seiner Entscheidung für den Austausch berücksichtigt und entschieden, dass dies insgesamt eine größere Beeinträchtigung der Systemleistung oder -stabilität bedeuten würde.
Insgesamt führen die Standardeinstellungen zu einer guten Gesamtleistung und Stabilität. Ich würde empfehlen, die Standardeinstellung beizubehalten. Es gibt weitere Möglichkeiten für Linux, die Speicherverwaltung zu verbessern, um einige Randfälle zu lösen, aber im Großen und Ganzen ist die Swappiness-Steuerung keine gute Umgehung - passen Sie sie in eine Richtung an, und Sie können ein Problem beheben und andere Probleme erstellen. Wenn es überhaupt möglich ist, verdrängt die einfache Installation von mehr physischem RAM (und das Überlassen von Swapiness) alle anderen Maßnahmen.
Wie Linux RAM benutzt
Jeder RAM, der nicht von Anwendungen verwendet wird, kann als "Cache" verwendet werden. Cache ist wichtig für ein schnelles, reibungsloses System, das sowohl Lese- als auch Schreibvorgänge auf der Festplatte beschleunigt.
Wenn Ihre Anwendungen den Arbeitsspeicher so weit erhöhen, dass fast der gesamte Arbeitsspeicher belegt ist, wird der Cache verkleinert und der Festplattenbetrieb verlangsamt sich im Durchschnitt. Heutzutage reicht es nicht mehr aus, nur zehn Megabyte oder weniger für den Cache zu haben.
Wenn Anwendungen die Speichernutzung noch weiter erhöhen - vorausgesetzt, Sie haben keinen Auslagerungsspeicher -, haben Sie nicht nur keinen Cache-Speicher, sondern irgendwann keinen Arbeitsspeicher mehr und Ihr System muss die laufenden Prozesse beenden. Tötungsprozesse sind schlimmer als eine Verlangsamung, da sie ein instabiles, unvorhersehbares System ergeben.
Wie Linux Swap verwendet
Um diesen beiden Problemen zu begegnen, kann Ihr System dem Auslagerungsspeicher auf Ihrer Festplatte einen Teil des selten verwendeten Anwendungsspeichers neu zuweisen und so RAM freigeben. Der zusätzliche Arbeitsspeicher kann verhindern, dass Prozesse aufgrund von Speichermangel abstürzen, und kann einen kleinen Cache-Speicher freigeben, damit Festplattenoperationen reibungsloser ablaufen können.
Diese Neuzuweisung erfolgt jedoch nicht nach einem bestimmten Cutoff. Sie erreichen keinen bestimmten Prozentsatz der Zuweisung, nach dem Linux mit dem Auslagern beginnt. Es hat einen "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 oft fälschlicherweise als "Prozentsatz des Arbeitsspeichers" dargestellt, aber nicht, es ist nur ein Wert, der als Teil der Formel verwendet wird. Werte um 40 bis 60 sind die empfohlenen, vernünftigen Werte, wobei 60 heutzutage Standard sind.
Es ist insgesamt eine sehr gute Sache, Ihr System bei Bedarf tauschen zu lassen, auch wenn Sie über viel RAM verfügen. Wenn Sie Ihr System bei Bedarf austauschen, können Sie beruhigt sein, dass Ihr System eine zweite Chance hat, alles am Laufen zu halten, wenn Sie jemals auch nur vorübergehend in eine Situation mit wenig Arbeitsspeicher geraten (während ein kurzer Prozess viel Arbeitsspeicher benötigt). Wenn Sie das Auslagern vollständig deaktivieren, besteht die Gefahr, dass Prozesse abgebrochen werden, weil kein Speicher zugewiesen werden kann.
Was passiert, wenn das System festgefahren ist und stark wechselt?
Das Austauschen ist eine langsame und kostspielige Operation, daher vermeidet das System dies, es sei denn, es wird berechnet, dass der Kompromiss bei der Cache-Leistung dies insgesamt wettmacht, oder es ist erforderlich, das Beenden von Prozessen zu vermeiden.
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 das Auslagern der Speicher Ihres Systems nicht die Ursache des Problems ist, sondern der Versuch, Probleme mit geringem Arbeitsspeicher zu lösen.
Was ist mit Desktop-Systemen? Benötigen sie nicht einen anderen Ansatz?
Benutzer eines Desktopsystems erwarten in der Tat, dass sich das System als Reaktion auf vom Benutzer eingeleitete Aktionen wie das Öffnen einer Anwendung "anspricht". Dies ist die Art von Aktion, die aufgrund der erforderlichen Speichererweiterung manchmal einen Auslagerungsvorgang auslösen kann.
Eine Möglichkeit, dies zu optimieren, besteht darin, den Parameter swappiness zu verringern, wodurch die Toleranz des Systems gegenüber Anwendungen erhöht wird, bei denen der Arbeitsspeicher aufgebraucht ist und der Cache-Speicher knapp wird.
Dies verschiebt jedoch nur die Torpfosten. Die erste Anwendung wird möglicherweise jetzt ohne einen Auslagerungsvorgang geladen, lässt jedoch für die nächste Anwendung, die geladen wird, weniger Spielraum. Derselbe Austausch wird möglicherweise erst später ausgeführt, wenn Sie stattdessen das nächste Mal eine Anwendung öffnen. In der Zwischenzeit ist die Systemleistung aufgrund der reduzierten Cache-Größe insgesamt geringer. Daher kann es schwierig sein, einen Nutzen aus der reduzierten Austauschbarkeitseinstellung zu ziehen, wodurch die Austauschverzögerung manchmal verringert wird, zu anderen Zeiten jedoch eine andere langsame Leistung verursacht wird. Wenn Sie wissen, was Sie tun, ist es möglicherweise gerechtfertigt, die Auslagerungsrate ein wenig zu reduzieren. Wenn Sie sie jedoch auf 10% reduzieren, kann dies zu einer Toleranz des Systems gegenüber sehr geringen Cachegrößen und zu einem kurzfristigen Auslagerungsrisiko führen.
Das vollständige Deaktivieren von Swap sollte vermieden werden, da Sie den zusätzlichen Schutz vor nicht genügend Arbeitsspeicher verlieren, der zum Absturz oder zum Absturz von Prozessen führen kann.
Das mit Abstand effektivste Mittel ist die Installation von mehr RAM, wenn Sie es sich leisten können.
Kann Swap auf einem System mit viel RAM deaktiviert werden?
Wenn Sie viel mehr RAM haben, als Sie wahrscheinlich für Anwendungen benötigen, müssen Sie selten tauschen. Das Deaktivieren von Swap wird wahrscheinlich die meiste Zeit keinen Unterschied machen. Wenn Sie jedoch über ausreichend RAM verfügen, wird das Aktivieren von Swap ebenfalls nicht beeinträchtigt, da das System nicht tauscht, wenn dies nicht erforderlich ist.
Die einzigen Situationen, in denen dies einen Unterschied machen würde, sind die unwahrscheinlichen Situationen, in denen dem System der Speicher ausgeht und das Cache-System infolgedessen behindert wird. In solchen Situationen möchten Sie am meisten tauschen. Auf diese Weise können Sie die normalen Einstellungen für ein beruhigendes Gefühl beibehalten, ohne dass dies negative Auswirkungen hat, wenn Sie über ausreichend Speicher verfügen.
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 Gesamtvorteil durch die Beibehaltung einer angemessenen Cachegröße dies überwiegt.
Wann werden die Daten nach dem Austausch wieder ausgegeben?
Ein bestimmter Teil des Speichers wird aus dem Swap-Speicher entfernt, sobald er verwendet wird - gelesen oder beschrieben. Bei dem ausgelagerten Speicher handelt es sich jedoch in der Regel um Speicher, auf den lange nicht mehr zugegriffen wurde und von dem nicht erwartet wird, dass er bald benötigt wird.
Das Übertragen von Daten aus dem Swap ist ungefähr so zeitaufwendig wie das Einspielen. Ihr Kernel entfernt keine Daten, wenn dies nicht erforderlich ist. Während Daten ausgetauscht werden und nicht verwendet werden, verbleibt mehr Speicher für andere Dinge, die verwendet werden, und mehr Systemcache.
Gibt es Fälle, in denen es angebracht ist, den Austausch zu reduzieren?
Ja. Wenn Sie einen Server für eine bestimmte Serveranwendung ausführen, der nicht vom Systemcache profitiert. Einige Datenbankserver wie Oracle Server, MySQL / MariaDB empfehlen, in einigen Fällen die Auslagerungsrate auf 1 bis 10 zu reduzieren, da diese Datenbankmodule ihr eigenes Caching verwenden.
Beachten Sie, dass dies nur dann zutrifft, wenn Ihr System für diese eine Aufgabe vorgesehen ist, und im Fall von MySQL / MariaDB nur dann, wenn Sie ausschließlich InnoDB oder XtraDB und nicht MyISAM oder Aria usw. verwenden.