Linux: Erstellen Sie keine Swap-Partition.

28200
Mihai Bratulescu

Ich habe mich gewundert, seit ich gehört habe, dass Swap verwendet wird, wenn Sie sich im RAM befinden und zu viel zu tauschen schlecht ist, da ich sehr viel RAM (8 GB) habe.

Was ist, wenn ich keine Swap-Partition erstelle?

Brauche ich es auch für den Winterschlaf oder es ist kein Muss?

9
Sie müssen Swap erstellen. Ich habe einmal versucht, Swap nicht zu erstellen. Die Installation konnte nicht fortgesetzt werden Lynob vor 10 Jahren 0
Was passiert, wenn Sie in Windows installieren? Ich habe das gemacht und es schien mir auch ein bisschen langsam im Vergleich zu Windows, aber ich habe die Partition nicht erstellt Mihai Bratulescu vor 10 Jahren 0
Ich habe nie versucht, ein Linux in Windows zu installieren, ich erstelle immer eine separate Partition Lynob vor 10 Jahren 0

6 Antworten auf die Frage

12
David Schwartz

Moderne Betriebssysteme benötigen einen Swap-Bereich, um den RAM effizient zu nutzen. Selbst wenn Ihr System über ausreichend RAM verfügt, führt das Verschwenden von RAM zu einem kleineren Puffercache, wodurch die Festplatten-E / A erhöht werden. Unabhängig davon, wie viel RAM Sie haben, möchten Sie, dass das System es effizient nutzt. Wenn Sie es effizient einsetzen, müssen Sie Dinge aus dem RAM herausholen, auf die es äußerst unwahrscheinlich ist, dass Sie jemals darauf zugreifen.

Wenn Sie ein typisches System starten, werden zahlreiche Dienste gestartet. Programme führen einen Initialisierungscode aus und ändern dabei die privaten Speicherzuordnungen. Einige dieser Dienste werden nie wieder ausgeführt. Viele von ihnen werden stundenlang nicht 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 behalten. Das ist RAM, das niemals als Festplatten-Cache verwendet werden kann.

Sie möchten also tauschen, ob Sie es brauchen oder nicht.

* "Sie wollen also tauschen, ob Sie es brauchen oder nicht." * - Sieht so aus, als hätten Sie den Fall gemacht, dass er tauschen muss, ob er es will oder nicht. sawdust vor 10 Jahren 8
Angenommen, ich habe viel RAM und kann es mir leisten, 2 GB zu verschwenden. Warum brauche ich eine Auslagerungsdatei? Tarik vor 7 Jahren 2
In diesem Fall benötigen Sie keine Auslagerungsdatei. Aber wie ich argumentiert habe, willst du eins. Denn unabhängig davon, ob Sie es sich leisten können, RAM zu verschwenden, sollten Sie RAM nicht ineffizient verwenden wollen, wenn Sie es nicht müssen. David Schwartz vor 7 Jahren 1
Ich betreibe einen CLI-Server ohne Swap und er läuft einwandfrei. Wenn ich einen teamspeak3-Server, apache2, node.js betreibe, sehe ich nie mehr als 500 MB RAM. Es stört mich also nicht, RAM "ineffizient" zu verwenden. HAFTUNGSAUSSCHLUSS: Die Webserver-Funktion dieses Servers ist ausschließlich für die Entwicklung bestimmt, daher ist die Last sowieso immer niedrig. Und wenn ich während der Entwicklung ein Gedächtnisleck habe, würde ich eher den OOM-Killer töten, sobald ich keinen RAM mehr habe, als all diesen Unsinn auf die Festplatte zu schieben. Native Coder vor 6 Jahren 0
11
Jeff Taylor

Ich habe ein Desktop-System seit einigen Jahren ohne Swap betrieben, und es läuft großartig! Es gibt einige Verhaltensweisen, die sich unterscheiden. Einige davon sind von Vorteil und einige können Ihnen schaden. Es hängt alles davon ab, was Sie tun.

Ein Hauptunterschied besteht darin, wie sich das System verhält, wenn der Speicher ausgeht:

Wenn keine Swap-Partition vorhanden ist, wird der OOM-Killer sofort ausgeführt. Wenn Sie ein Programm haben, das Speicher verliert, wird dies wahrscheinlich dasjenige sein, das getötet wird. Das passiert und Sie können das System fast sofort wiederherstellen.

Wenn es ist eine Swap - Partition, schiebt der Kernel den Inhalt des Speichers Swap. Fehlerhafter Prozess kann weiterhin Speicher zuweisen. Dies geschieht so lange, bis der Swap erschöpft ist. Dies kann bei einer großen Swap-Partition zehn Minuten bis eine Stunde dauern. Während dieses Vorgangs verlangsamt sich Ihr System zu einer Durchforstung. Es wird unmöglich, ein Terminal zu öffnen und den Prozess zu beenden. In diesem Fall ziehe ich normalerweise das Netzkabel aus.

Da ich meine Daten sowieso verlieren werde, wenn das System OOMs hat, bevorzuge ich die frühere Option, um zumindest eine (hohe) Chance auf Wiederherstellung zu haben.

Das war auch meine Erfahrung. Linux behandelt das Swap-Thrashing nicht gut genug, um das anstößige Programm selbst zu beenden. Es ist zuverlässiger, wenn der OOM-Killer es selbst erledigt. Natürlich ist dies ein schreckliches Design - ein besseres wäre, den beleidigenden Prozess einzufrieren, anstatt ihn zu töten, und eine nette Benutzeroberfläche bereitzustellen, die es Ihnen ermöglicht, ihn aufzulösen oder zu töten, aber ... Linux. Timmmm vor 8 Jahren 0
Endlich eine Antwort, die sinnvoll ist und zu meiner eigenen Erfahrung passt. Ich kann die Gründe hinter "Sie müssen eine Swap-Partition haben" nicht verstehen. Außer, wenn wir das System in den Ruhezustand versetzen möchten. Tarik vor 7 Jahren 2
5
psusi

Für den Winterschlaf ist ein Swap erforderlich, ansonsten kommt man auch ohne aus.

Daher sollte die Größe des Auslagerungsbereichs etwas größer sein als der in Ihrem System installierte Speicher. mdpc vor 10 Jahren 0
@mdpc, nicht unbedingt; es muss nur groß genug sein, um den verwendeten RAM zu halten, der nicht verworfen werden kann (dh Daten, die von einer Datei auf der Festplatte gesichert werden). psusi vor 10 Jahren 0
und wie schätzen Sie das bei der Schöpfung ein? Würdest du nicht die richtige Planung und Vorbereitung auf den schlimmsten Fall vorbereiten, da die Unterteilung im Allgemeinen nach dem Festlegen ein Problem ist. mdpc vor 10 Jahren 0
2
jlliagre

Es ist ein weit verbreitetes Missverständnis zu glauben, dass ein Swap-Bereich die Performance negativ beeinflusst. Was die Leistung stark beeinträchtigt, ist nicht genügend Arbeitsspeicher. Der Swap-Bereich an sich hat keinen negativen Einfluss auf die Leistung, es sei denn, Ihnen ist die Zuverlässigkeit nicht wichtig. Dies kann sich positiv auf die Leistung auswirken, auch wenn Sie der Meinung sind, dass Sie über ausreichend RAM verfügen (und kein RAM-Mangel gemeldet wird).

Es sind im Wesentlichen drei Fälle zu berücksichtigen:

  • 1: Es gibt genügend RAM für die Anforderungen des internen Kernels, damit alle Ihre Anwendungen ihren Arbeitssatz von Seiten im RAM haben und immer noch "freien" RAM für den Puffercache haben, um die meisten der heißen Dateisystemdaten zu speichern.

  • 2: Wie oben, nur dass Sie nicht über genügend freien RAM verfügen, damit der Puffer-Cache voll effizient ist.

  • 3: Es ist nicht genügend RAM vorhanden, um auch die von Ihnen verwendeten Anwendungen zu speichern.

In Fall 1, der für einen Produktionscomputer die Norm sein sollte, ändert sich nichts (zumindest bei Linux-basierten Betriebssystemen und anderen Betriebssystemen, die Speicher überfordern).

Im Fall 2 könnte einen Swap - Bereich mit verbessert die Gesamtleistung durch das System zu Seite ermöglicht als sehr selten verwendete Seiten und dann dem Puffer - Cache besser ermöglichen, ihre Rolle zu spielen.

In Fall 3 können Sie mit einem Auslagerungsbereich die Anwendung auf Kosten einer durch die Paginierung bedingten Leistungsbeeinträchtigung weiterlaufen lassen. Auf der anderen Seite führt das Fehlen eines Swap-Bereichs (oder eines ausreichend großen) dazu, dass Anwendungen zufällig abstürzen. Abhängig von den Betriebssystemeinstellungen kann der OOM-Killer außerdem entscheiden, die meisten speicherhungrigen Anwendungen zu beenden, wenn ein hoher RAM-Bedarf besteht, ohne dass er sogar die Möglichkeit hat, seine (Ihre) kritischen Daten zu speichern.

In diesem Fall müssen Sie eine Entscheidung treffen. Es gibt sicherlich einige Anwendungsfälle, bei denen das Stoppen von Prozessen die bevorzugte Option ist, wie Systeme, bei denen die Antwortzeit von entscheidender Bedeutung 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 dass dabei Daten verloren gehen.

0
Joseph R.

Wenn Sie keine Auslagerungspartition verwenden möchten, können Sie eine Auslagerungsdatei verwenden: Ein Dateisystem-Image, das in einer regulären Datei gespeichert ist und als Auslagerungsbereich verwendet wird.

In den folgenden Artikeln wird ausführlich beschrieben, wie das geht:

Was ist der Unterschied zwischen einer Auslagerungsdatei und einer Auslagerungspartition? und was würde passieren, wenn ich keine habe? Mihai Bratulescu vor 10 Jahren 0
Geschwindigkeit des Zugriffs .... mdpc vor 10 Jahren 0
@mdpc Ist der Unterschied in der Zugriffszeit signifikant? Aufgrund meines begrenzten Verständnisses sollte es in Bezug auf die Festplatten-E / A-Geschwindigkeit nicht zu viel sein, oder? Wenn Sie nicht der Meinung sind, dass die Auslagerungsdatei in nicht zusammenhängenden Blöcken gespeichert ist? Joseph R. vor 10 Jahren 0
Wenn ja, ist dies sehr wichtig. Wenn Sie eine Partition verwenden, ist dies eine einfache Adressierung. Wenn Sie eine Datei verwenden, müssen Sie den gesamten Dateisystem-Overhead ausführen, um eine Auslagerungsdatei zu verwenden, und Sie können NICHT garantieren, wo sich die Segmente auf der Festplatte befinden. mdpc vor 10 Jahren 2
@mdpc Der System-Overhead ist ab Kernel 2.6 vernachlässigbar. Metadaten, Cache und Dateisystemcode werden umgangen. Auf Raw-Plattenblöcke wird einfach direkt zugegriffen. jlliagre vor 10 Jahren 2
@ jlliagre - eine Auslagerungsdatei ist immer noch fragmentiert, und Sie können nicht einfach ein umfangreiches Lese- / Schreibzugriff ausgeben, wie Sie es ohne das Dateisystem tun könnten. mdpc vor 10 Jahren 0
@mdpc Eine Auslagerungsdatei sollte, wenn überhaupt, nicht wesentlich fragmentiert werden, es sei denn, Sie erstellen sie in letzter Zeit. Außerdem ist der Swap-Zugriff selten sequenziell, aber meistens zufällig, da Demand Paging so funktioniert, dass die Fragmentierung kein Problem sein sollte. jlliagre vor 10 Jahren 1
@mdcp Wie oft stößt du an dein RAM-Limit? Tarik vor 7 Jahren 0
0
mdpc

Es ist ein bisschen gefährlich, aber Sie können ohne Swap Space laufen. Wenn Sie jedoch die Speicherkapazität übersteigen, wird Ihr System fast sofort ohne vorherige Benachrichtigung abbrechen.

Der Swap gibt Ihnen grundsätzlich ein erweitertes, aber für Ihr Gedächtnis viel langsameres. Wenn Sie die Anzahl überschreiten, werden Sie anfangen zu tauschen. Dadurch wird Ihrem System wirklich das Leben genommen ... JEDOCH, indem Sie die fehlerhaften Prozesse abtöten, können Sie Ihr System trotzdem retten.

Einige Programme bestehen darauf, Swap-Speicher zuzuordnen (aber nicht zu verwenden), einige davon sind Datenbankprogramme, wenn ich mich recht erinnere. Auch wenn Sie keinen Speicherplatz haben, können Sie die Programme einschränken, die möglicherweise ausgeführt werden.

Sehen Sie sich schließlich SWAP is CHEAP an, da Sie den Bereich nicht sichern müssen. (Ich hoffe, dass Sie einer dieser hervorragenden hervorragenden Sysadmins sind, die ihre Systeme sichern).

So erstellen Sie es.

Meine Faustregel war früher 2 * Speichergröße ..... aber jetzt bin ich in vielen Fällen mit 1 * Speichergröße in Ordnung, verwende aber in der Regel 1,5 * (Speichergröße). Sie müssen nicht so viel erstellen, aber ich würde ... vor allem, wenn Sie irgendeine Art von Arbeit haben, die Sie erledigen.

Oh ja, und für den Winterschlaf ist Swap erforderlich, um ein Gesamtbild des Speichers zu speichern. Daher sollte die Größe der H8ibernation MINDESTENS (1 * Speichergröße) + 100 MB betragen. Die 100 MB werden für den möglichen Overhead benötigt.

also ... für einige Programme benötigen Sie einen Swap-Bereich, damit sie ausgeführt werden können? Ich bin nicht besorgt, dass der RAM mit 8 GB ausgeht (wenn auch nicht unmöglich). Mihai Bratulescu vor 10 Jahren 0
Die Regel für die 2x-Speichergröße ist veraltet. Aber ein bisschen Swap ist keine schlechte Idee. Es belegt nicht zu viel Speicherplatz, so dass Sie den belegten Speicherplatz nicht verpassen. Es wird normalerweise nicht verwendet, wenn Sie über ausreichend RAM verfügen, und Sie können den Core auf Ihren Swap speichern. Hennes vor 10 Jahren 0
@Hennes - lies meine Notiz ... "Früher" mdpc vor 10 Jahren 0