Ich habe mich gefragt, seit ich gehört habe, dass Swap verwendet wird, wenn Sie nicht im RAM sind, und dass zu viel Swap schlecht ist, da ich viel RAM (8 GB) habe.
Was ist, wenn ich keine Swap-Partition erstelle?
Benötige ich es auch für den Winterschlaf oder ist es kein Muss?
linux
swap
swappiness
Mihai Bratulescu
quelle
quelle
Antworten:
Moderne Betriebssysteme benötigen einen Swap Space, um RAM effizient nutzen zu können. Selbst wenn Ihr System über ausreichend RAM verfügt, führt die Verschwendung von RAM zu einem kleineren Puffercache, was eine erhöhte Festplatten-E / A bedeutet. Egal wie viel RAM Sie haben, Sie möchten immer noch, dass das System es effizient nutzt. Effiziente Nutzung bedeutet, Dinge aus dem RAM herauszuholen, auf die äußerst unwahrscheinlich ist, dass jemals zugegriffen wird.
Wenn Sie ein typisches System starten, wird eine große Anzahl von Diensten gestartet. Programme führen Initialisierungscode aus und ändern dabei private Speicherzuordnungen. Einige dieser Dienste werden nie wieder ausgeführt. Viele von ihnen werden nicht stundenlang laufen. Ohne Swap hat das Betriebssystem keine andere Wahl, als die geänderten privaten Speicherzuordnungen, die diesen Diensten zugeordnet sind, für immer im RAM zu belassen. Das ist RAM, das niemals als Festplatten-Cache verwendet werden kann.
Sie möchten also tauschen, ob Sie es brauchen oder nicht.
quelle
Ich habe ein paar Jahre lang ein Desktop-System ohne Tausch betrieben und es läuft großartig! Es gibt einige Verhaltensweisen, die unterschiedlich sind. Einige davon sind vorteilhaft und andere können Ihnen schaden. Es hängt alles davon ab, was Sie tun.
Ein wesentlicher Unterschied besteht darin, wie sich das System verhält, wenn der Speicher knapp wird:
Wenn keine Swap-Partition vorhanden ist, wird der OOM-Killer sofort ausgeführt. Wenn bei einem Programm Speicherplatz verloren geht, wird dieser wahrscheinlich getötet. Das passiert und Sie stellen das System fast sofort wieder her.
Wenn es ist eine Swap - Partition, schiebt der Kernel den Inhalt des Speichers Swap. Ein fehlerhafter Prozess kann die Speicherzuweisung fortsetzen. Dies geschieht so lange, bis der Swap abgelaufen ist. Dies kann zehn Minuten bis eine Stunde dauern, wenn Sie eine große Swap-Partition haben. Währenddessen wird Ihr System langsamer. Es wird unmöglich, ein Terminal zu öffnen und den Prozess abzubrechen. Normalerweise ziehe ich das Netzkabel aus, wenn dies passiert.
Da ich meine Daten sowieso verlieren werde, wenn das System OOMs hat, bevorzuge ich die erstere Option, um zumindest eine (hohe) Chance auf Wiederherstellung zu haben.
quelle
Für den Winterschlaf ist ein Tausch erforderlich, andernfalls können Sie ohne ihn problemlos auskommen.
quelle
Es ist ein weit verbreitetes Missverständnis zu glauben, dass ein Swap-Bereich die Leistung negativ beeinflusst. Was die Leistung stark beeinträchtigt, ist nicht genügend RAM. Der Swap-Bereich an sich hat keinen negativen Einfluss auf die Leistung, es sei denn, Sie legen keinen Wert auf Zuverlässigkeit. Dies kann sich positiv auf die Leistung auswirken, selbst wenn Sie der Meinung sind, dass Sie über genügend RAM verfügen (und kein RAM-Mangel gemeldet wird).
Grundsätzlich sind drei Fälle zu berücksichtigen:
1: Es gibt genügend RAM für interne Kernel-Anforderungen, damit alle Ihre Anwendungen ihre funktionierenden Seiten im RAM haben und dennoch "freien" RAM für den Puffer-Cache haben, um die meisten heißen Daten des Dateisystems zu speichern.
2: Wie oben, außer dass Sie nicht über genügend freien RAM verfügen, damit der Puffercache vollständig effizient ist.
3: Es ist nicht genügend RAM vorhanden, um die von Ihren Anwendungen verwendeten Seiten zu speichern.
In Fall 1, der die Norm für eine Produktionsmaschine sein sollte, ändert ein Swap-Bereich oder nichts nichts (zumindest auf Linux-basierten Betriebssystemen und anderen Betriebssystemen, die zu viel Speicherplatz beanspruchen).
Im Fall 2 könnte einen Swap - Bereich mit verbessert die Gesamtleistung durch das System zu Seite ermöglicht als sehr selten genutzte Seiten und läßt dann dem Puffer - Cache , um besser ihre Rolle spielen.
In Fall 3 ermöglicht die Verwendung eines Auslagerungsbereichs, dass die Anwendung auf Kosten einer Leistungsverschlechterung aufgrund von Paginierung weiter ausgeführt wird. Wenn Sie jedoch einen Swap-Bereich (oder einen ausreichend großen) verpassen, stürzen Anwendungen zufällig ab. Abhängig von den Betriebssystemeinstellungen kann der OOM-Killer außerdem entscheiden, die speicherhungrigsten Anwendungen zu beenden, wenn ein starker RAM-Bedarf besteht, ohne ihnen die Möglichkeit zu geben, ihre (Ihre) kritischen Daten zu speichern.
Dieser letztere Fall ist einer, bei dem Sie eine Wahl treffen müssen. Es gibt sicherlich einige Anwendungsfälle, in denen das Beenden von Prozessen die bevorzugte Option ist, z. B. Systeme, bei denen die Reaktionszeit entscheidend ist und bei denen der Verlust einer Transaktion / eines Prozesses keine große Sache ist.
In den meisten Situationen glaube ich jedoch, dass es besser ist, dem Benutzer / Administrator die Möglichkeit zu geben, den RAM-Mangel zu bemerken und entsprechend zu handeln, ohne das Risiko einzugehen, Daten zu verlieren.
quelle
Wenn Sie keine Auslagerungspartition verwenden möchten, können Sie eine Auslagerungsdatei verwenden: ein Dateisystem-Image, das in einer regulären Datei gespeichert und als Auslagerungsbereich verwendet wird.
In den folgenden Artikeln wird die Vorgehensweise ausführlich erläutert:
quelle
Es ist ein bisschen gefährlich, aber Sie können ohne Swap Space laufen. Wenn Sie jedoch den verfügbaren Speicherplatz endgültig überschreiten, stürzt Ihr System fast sofort ohne Vorankündigung ab.
Was Swap Ihnen im Grunde gibt, ist ein erweitertes, aber weitaus langsameres für Ihr Gedächtnis. Wenn Sie überschreiten, werden Sie anfangen zu tauschen, es wird wirklich das Leben aus Ihrem System nehmen ... JEDOCH, indem Sie die fehlerhaften Prozesse abbrechen, können Sie Ihr System trotzdem retten.
Einige Programme bestehen darauf, Swap-Speicher zuzuweisen (aber nicht zu verwenden), andere sind Datenbankprogramme, wenn ich mich recht erinnere. Wenn Sie keinen Swap-Speicherplatz haben, können Sie die möglicherweise ausgeführten Programme einschränken.
Schließlich ist SWAP GÜNSTIG, da Sie den Bereich nicht sichern müssen. (Ich hoffe, dass Sie einer dieser hervorragenden Systemadministratoren sind, die ihre Systeme sichern).
Also erstelle es.
Meine Faustregel war früher 2 * Speichergröße ..... aber jetzt bin ich in vielen Fällen mit 1 * Speichergröße in Ordnung, benutze aber im Allgemeinen 1,5 * (Speichergröße). Sie müssen nicht so viel schaffen, aber ich würde ... vor allem, wenn Sie irgendeine Art von Produktionsarbeit machen.
Oh ja, und für den Winterschlaf ist ein Tausch erforderlich, um ein Gesamtbild des Gedächtnisses zu erhalten. Und daher sollte die Größe, wenn Sie den Ruhezustand in Betracht ziehen, MINDESTENS (1 * Speichergröße) + 100 MB betragen. Die 100 MB sind für den möglichen Overhead vorgesehen, der im Prozess benötigt wird.
quelle
Linux-Swap scheint eine ziemlich schwierige Anforderung zu haben, sobald Speicherdruck besteht. Das Symptom ist, dass, wenn fast der gesamte RAM von aktiven Prozessen verwendet wird, das System hart blockiert und die Festplatte wild läuft.
Warum?
Seiten ohne Sicherungsdatei (normalerweise aus der dynamischen Speicherzuweisung) können nicht aus dem RAM entfernt werden, wenn kein Swap vorhanden ist. Der Kernel greift auf Seiten mit einer Sicherungsdatei zurück, auch wenn sie tatsächlich bald wieder benötigt werden, d.h. e. Müll auch ohne Tausch!
Weitere Details zu diesem subtilen Problem finden Sie in diesem Blogbeitrag.
Fazit : Immer einen Tausch haben.
Und für die Größe als grobe Richtlinie verwenden Sie etwas zwischen 4 und 8 GB, auch für Systeme mit viel RAM, vorausgesetzt, Sie halten keinen Ruhezustand. Weitere Informationen finden Sie in der Dokumentation von Red Hat zum Swap Space .
quelle