Brauchen wir noch Swap-Partitionen auf Servern?

36

Ich habe diese Frage gelesen , aber sie wurde im Zusammenhang mit Servern gestellt, nicht mit Desktops oder Notebooks.

Wenn auf einem Notebook ausreichend RAM installiert ist, beispielsweise 8 GB, benötigen wir noch einen Auslagerungsspeicher?

Kinderwagen
quelle

Antworten:

32

Es gibt ein weit verbreitetes Missverständnis, dass ein Swap Space die Systemleistung negativ beeinflusst. Das ist falsch. Solange Sie über genügend RAM verfügen, wirkt sich ein Swap-Bereich unabhängig von seiner Größe überhaupt nicht negativ auf die Leistung aus. Was sich auf die Leistung auswirkt, ist die geringe RAM-Kapazität und die effektive Nutzung des Auslagerungsspeichers.

  1. Wenn Sie keinen Auslagerungsspeicher haben und nicht genügend RAM zur Verfügung stehen, wählt der Kernel einen oder mehrere Prozesse aus, die er für gute Kandidaten hält (obwohl Sie ihm möglicherweise einige Hinweise geben ), und beendet sie.

  2. Wenn Sie über einen Auslagerungsspeicher verfügen und kein RAM mehr zur Verfügung steht, wählt der Kernel weniger genutzte Speicherseiten aus und legt sie im Auslagerungsbereich ab, um RAM freizugeben. Dadurch wird das System verlangsamt, Ihre Anwendungen sind jedoch nicht anderweitig betroffen.

Ich bevorzuge immer Fall 2., da es mir unangenehm ist, Teile oder die gesamte Arbeit zu verlieren, weil der Kernel meint, meine Anwendungen sind es wert, getötet zu werden. Da die aktuelle Größe einer durchschnittlichen Festplatte im TB-Bereich liegt, ist es normalerweise kein Problem, ein paar Prozent für den Austausch zu reservieren.

jlliagre
quelle
Ist dein erster Punkt wirklich wahr? Der Kernel bricht laufende Prozesse ab, um RAM freizugeben? Warum verwendet der Kernel nicht einfach Speicherplatz, anstatt Live-Prozesse zu beenden?
Donato
4
@ Donato Ja, mein erster Punkt ist wahr. Wenn kein Auslagerungsspeicher konfiguriert ist (z. B. Festplatte), hat der Kernel nicht die Wahl, Speicherplatz zum Freigeben von RAM zu verwenden.
Juli,
und was passiert, wenn ich den Swap Space beendet habe? Bei Fall 1 zurückgreifen?
Zac
@Zac Ja, es sei denn, Sie haben die Speicherüberbelegung wirklich deaktiviert. In diesem Fall wird der erste Prozess, bei dem der Speicher nicht zugewiesen werden kann, beeinträchtigt. Beachten Sie: Wenn Sie einen (signifikanten) Swap-Space-Bereich konfiguriert haben und zufällig den größten Teil davon verwenden, treten in erster Linie schwerwiegende Leistungsprobleme auf.
jlliagre
1
@Zac Wenn Sie Ihren Swap-Platz erschöpfen, sind Sie im Grunde genommen in der gleichen Situation, als hätten Sie überhaupt keinen Swap-Platz. Ein Prozess oder mehrere werden sterben. Sie könnten vom Oom-Killer ausgewählt werden oder einfach am falschen Ort und zur falschen Zeit sein. Normalerweise sollte ein ordnungsgemäß überwachtes Produktionssystem eine Warnung und dann eine Administratorreaktion auslösen, bevor die Swap-Erschöpfung eintritt.
jlliagre
9

Wenn Sie einen Arbeitsspeicher von 3 GB oder mehr haben, wird Ubuntu den Swap-Platz automatisch NICHT verwenden, da er für das Betriebssystem mehr als ausreichend ist.

Benötigen Sie jetzt wirklich eine Swap-Partition?

Die Antwort ist meiner Meinung nach ja. Weil Sie nicht wissen, was Sie in Zukunft installieren oder tun werden, für das möglicherweise Auslagerungsspeicher erforderlich ist. Auch wenn Sie den Ruhezustand verwenden möchten, möchten Sie möglicherweise etwas Auslagerungsspeicher haben. Sie müssen eigentlich keine Swap-Partition haben, aber es wird empfohlen, wenn Sie im normalen Betrieb so viel Speicher verbrauchen.

Weitere Informationen zum Erfordernis oder Nicht-Erfordernis eines Austauschs finden Sie unter Ubuntu Swap Faq oder Swap-Anforderungen

Mitch
quelle
Haben Sie einen Link, der Ihre erste Aussage bestätigt?
Juli
1
Die Blog-Aussage zitiert die askunbutu-Antwort falsch. Es gibt keine Beweise, dass user4124 ein Ubuntu-Entwickler ist. "wird (normalerweise) keine Verwendung haben" ist ganz anders als "wird automatisch deaktiviert". Tatsächlich deaktiviert Ubuntu Swap nie und nutzt es bei Bedarf, selbst wenn Sie über 8 GB RAM oder mehr verfügen.
Juli
@jlliagre Das bedeutet, dass der Swap-Bereich vorhanden ist, aber nicht verwendet wird. Bei der Installation von Xubuntu 14.04 wurde ein 16-GB-Swap erstellt, der noch nie verwendet wurde. siehe Bild
Mitch
1
Schön, dass Sie Ihre Antwort korrigiert haben. "Nicht verwenden" ist definitiv nicht dasselbe wie "deaktivieren". Ubuntu deaktiviert den Swap nicht und nutzt ihn bei Bedarf, unabhängig von der Größe.
Juli
4

In den letzten 6 Jahren habe ich Desktop-Systeme mit mindestens 8 GB RAM verwendet. Ich erinnere mich nicht an einen Fall, in dem das System bei normaler Nutzung den Speicher ausgelagert hat - und ich überwache die Ressourcennutzung ziemlich oft mit htop. Nicht einmal in Fällen, in denen ich 4 virtuelle Maschinen (Server) gleichzeitig für Entwicklungszwecke laufen ließ, trat ein Austausch auf.

Wenn Sie jedoch speicherintensive Anwendungen ausführen (z. B. Videobearbeitung, Bildbearbeitung, Manipulation großer Datenbanktabellen usw.), kann es vorkommen, dass Ihrem System der Speicher ausgeht. In diesem Fall kann es wünschenswert sein, einen Swap Space zu haben. Stellen Sie es sich als ein Sicherheitsnetz für den letzten Ausweg vor. Und was sind angesichts der Multi-Terrabyte-Kapazität der heutigen Systeme ein paar Gigabyte in einer Swap-Partition wert? Besser auf Nummer sicher gehen :-)

hmayag
quelle
2

Swap Space zu haben ist immer eine gute Sache.

Hier zitiere ich Michael Jangs RHCSA / RHCE-Leitfaden für Zertifizierungsstudien

Linux Swap Space

Dieser Speicherplatz wird verwendet, um den effektiven Arbeitsspeicher eines Systems als virtuellen Speicher für derzeit ausgeführte Programme zu erweitern. Sie können jedoch nicht einfach zusätzlichen Arbeitsspeicher kaufen und den Swap-Bereich eliminieren. Linux verschiebt selten verwendete Programme und Daten, um Speicherplatz zu tauschen, selbst wenn Sie über Gigabyte RAM verfügen.

Bei Systemen mit bis zu 2 GB ist die Standardgröße für den Auslagerungsspeicher doppelt so groß wie der installierte Arbeitsspeicher. Über 2 GB entspricht dies der Größe von RAM + 2 GB. Aber das sind keine „harten und schnellen“ Regeln. Arbeitsstationen mit mehreren GB RAM belegen häufig nur sehr wenig Auslagerungsspeicher. Sie werden jedoch möglicherweise häufiger auf Systemen verwendet, die monatelang nicht neu gestartet wurden oder von bestimmten Diensten stark beansprucht werden.

Gayan Weerakutti
quelle
1
"Linux verschiebt selten verwendete Programme und Daten, um Speicherplatz zu tauschen, selbst wenn Sie über Gigabyte RAM verfügen". Ich gehe davon aus, dass es sich hier um Code und Daten handelt, die in den Speicher geladen wurden. Wenn Sie über 8 GB RAM verfügen und nur normale Apps ausführen, warum sollte dann überhaupt eine Code- oder Datenseite ausgelagert werden, um sie auszutauschen?
Tarik
1

Es hängt davon ab, was Sie auf Ihrem System ausführen.

Wenn Sie Inhalte erstellen, ist es wahrscheinlich eine gute Idee, den zugewiesenen Auslagerungsspeicher beizubehalten. Wenn also der Arbeitsspeicher knapp wird, werden Ihre Prozesse nur langsam, anstatt gestört zu werden und möglicherweise Arbeit zu verlieren.

Wenn auf Ihrem Computer nur Programme ausgeführt werden, benötigen oder möchten Sie keinen Auslagerungsspeicher. Ich entwerfe und baue viele kioskartige Anzeigesysteme, die genau zu dieser Verwendung passen. Ich möchte lieber, dass ein Prozess plötzlich stirbt, als langsam zu sein, denn dann kann ich diesen Zustand erkennen und korrigieren.

Eric Sokolowsky
quelle
1

Wenn Sie jemals Auslagerungsdateien oder mehr Auslagerungsspeicher benötigen, können Sie Auslagerungsdateien auf Ihrem Dateisystem erstellen. Natürlich unterstützen sie den Ruhezustand nicht, aber es ist ein vernünftiger Ansatz für einen Laptop mit SSD-Laufwerk und viel RAM.

Grzegorz Żur
quelle