Wie groß sollte die Swap-Partition sein?

10

Seit einigen Jahren habe ich gelesen, dass es eine gute Idee ist, eine Swap-Partition mit dem doppelten Speicherplatz meines RAM zu erstellen. gilt es noch heute? oder wird das nicht mehr benötigt?

Ich habe einen Server mit 8 GB RAM und muss eine Swap-Partition erstellen. Ich habe mich gefragt, ob 16 GB zu viel sind.

cd1
quelle

Antworten:

11

Auf großen Systemen mit 8 GB physischem RAM weisen wir normalerweise 2 GB Swap zu. Dies sind geladene Datenbankserver, auf denen Oracle oder PostgreSQL ausgeführt wird. Ich habe jahrelang noch nie einen Swap-Hit gesehen, selbst unter schwerer Last. Die hohe Last beträgt ungefähr 100 bis 150 Benutzer, die ungefähr 10.000 SQL-Lesevorgänge und möglicherweise 2.500 Schreibvorgänge pro Minute ausführen.

Wir passen auch die Swapiness-Stufe an, um das Swapping zu verhindern, und deaktivieren nicht benötigte Prozesse, von denen wir wissen, dass sie nicht ausgeführt werden müssen. (Benutzerdefinierte Linux-Builds)

Wie Eddie oben sagt, ist 1x physischer RAM eine gute Faustregel für alles unter 4 GB. Ich mache benutzerdefinierte Linux-Builds für ein großes Fortune-500-Unternehmen. Dies sind die Dinge, die wir normalerweise tun, und wir hatten in den letzten 5 Jahren keine Probleme, die ich für sie beraten habe.

Auf größeren Systemen: 64-Bit-Linux mit 32 GB und 64 GB RAM sind dies unsere Oracle-Datenbankserver, und wir behalten normalerweise 2 GB Swap für Dinge bei, wie Eddie oben hervorhebt. Leerlaufprozesse werden abhängig von Ihren Swapiness-Einstellungen zum Swap verschoben.

Kilo
quelle
5

Eine scheinbar zeitlose Frage. Die guten Leute bei SlashDot haben das vor einiger Zeit besprochen. Überprüfen Sie, was sie zu sagen hatten:

  • Speicherplatz ist bei modernen Festplatten kein Problem. 16 GB sind für moderne TB-Laufwerke immer noch eine unbedeutende Menge.
  • Ein erheblicher Swap-Speicherplatz kann jedoch bei schlechter Speicherverwaltung ein Problem sein:

Wenn ich einen 4-GB-Film über einen Zeitraum von 2 Stunden anschaue, entscheiden viele Speichermanager, dass der Versuch, all diese Daten zwischenzuspeichern, eine gute Sache sein kann. In der Mitte des Films wird man denken, dass all diese anderen laufenden Programme eine Stunde lang nicht verwendet wurden und sicher ausgetauscht werden können, um mehr von dieser 4-GB-Datei zwischenzuspeichern. Das Endergebnis ist, dass die Hälfte Ihrer Programme nach dem Ansehen eines Films ausgetauscht wird, was zu einem trägen System führt, das die gesamte Auslagerungsdatei zerstört.

  • Am Ende sollte die richtige Entscheidung von den Speicheranforderungen und nicht von den Standardformeln kommen:

Wenn Sie [genügend RAM haben, um die Programme auszuführen, die Sie täglich verwenden möchten], gibt es keinen Grund, jemals Swap zu verwenden.

KPWINC
quelle
3

Siehe die Antwort Wie viel SWAP-Speicherplatz auf einem Hochspeichersystem? zur Orientierung, obwohl Ihre Frage allgemeiner ist. Die Meinungen dazu sind sehr unterschiedlich, aber im Allgemeinen scheinen Leute mit 1 GB RAM oder mehr entweder ohne Swap oder mit 1xmemory als Swap zu laufen.

Selbst wenn Sie nicht vorhaben, so viel RAM zu verwenden, dass Sie das Austauschen erzwingen, ist es von Vorteil, mindestens 1x Speicher als Auslagerung zu haben: Das Betriebssystem kann einige Dinge austauschen, von denen nicht erwartet wird, dass sie verwendet werden sofort, damit es diesen Speicher stattdessen beispielsweise für Festplatten- oder E / A-Puffer verwenden kann.

Eddie
quelle
3

Wenn Sie erwarten, dass Ihr System in den Ruhezustand versetzt und dann erfolgreich fortgesetzt werden kann :-), ist es wahrscheinlich besser, mehr Speicherplatz für die Swap-Partition zuzuweisen als die Menge an physischem RAM

dmityugov
quelle
3

Mein VPS-Anbieter stellt nicht einmal Swap-Speicherplatz für die Server zur Verfügung, und meiner läuft ohne ihn einwandfrei.

Die meisten Server, die ich täglich bei der Arbeit sehe, sind auch ohne Tausch.

Bearbeiten

Wenn Sie jedoch eine JVM ausführen, stellen Sie sicher , dass Sie aufgrund eines bekannten Problems mit der JVM mindestens so viel Swap-Speicherplatz haben, wie Sie jemals festlegen werden .-Xmx

Kurz gesagt, wenn die JVM mehr Speicher benötigt, als sie derzeit verwendet (aber immer noch nicht erreicht hat Xmx), gilt Folgendes:

  • tauscht sich auf Festplatte
  • weist neuen Speicher zu
  • liest sich zurück in den RAM

Dies bedeutet, dass ein Xmxfehlgeschlagener Tausch fehlschlagen kann.

Um den Fehlerbericht zu zitieren

Am besten erhöhen Sie die Swap-Größe auf den Computern, auf denen dieser Fehler auftritt.

Ich versuche auf Nummer sicher zu gehen, wenn ich mit JVMs arbeite, und setze Swap auf den gleichen physischen Speicher.

Labyrinth
quelle
2

Angesichts der Geschwindigkeit moderner Festplatten sind große Swaps nur eine Einladung zum Thrashing. Möglicherweise kehren SSDs diesen Trend um, aber mit einer maximalen Übertragungsgeschwindigkeit von 300 MB / s für eine Festplatte wird das Austauschen von 2 bis 4 GB eine Weile dauern.

Früher (z. B. Linux 1.2, i386, SunOS 4.x) wurden möglicherweise 5 bis 15 MB Daemon-Prozesse ausgeführt, und zwar zwischen 4 und 32 MB RAM, sodass Dämonen, die gerade blockiert wurden, auf I / warteten. O könnte ohne wirklichen Leistungseinbruch ausgetauscht werden ... Und sie sollten besser, da die Benutzerprogramme möglicherweise nur 2-3 MB RAM zur Verfügung haben. Tauschen machte sehr viel Sinn.

In meiner Umgebung haben die meisten Server eine hohe Arbeitslast mit einem Arbeitsspeicher, und der Arbeitsspeicher kann ziemlich genau geschätzt werden ... Swap ist für Notfälle, außer Kontrolle geratene Prozesse usw. vorgesehen.

Die Ausnahme bilden Laptops und Workstations, die möglicherweise schlafen. Viele Betriebssysteme verwenden den Auslagerungsbereich, um das angehaltene Image zu speichern. In diesen Fällen muss der Auslagerungsbereich größer sein als der physische Speicher. Unter Linux mit suspend2 / tuxonice sollten Sie 2xRAM in der Swap-Größe haben, um Suspend-to-Disk zu unterstützen.

Alexandre Carmel-Veilleux
quelle
In früheren Zeiten verwendete System V 3.2 und früher genau den Swap in RAM-Größe. Weniger wurde kaputt gemacht und mehr wurde verschwendet, da es sich nicht um ein so hoch entwickeltes virtuelles Speichersystem wie BSD handelte.
kmarsh
2

Wenn Sie heutzutage einen 32-GB- oder 64-GB-Server betreiben, sind 4 GB Swap für den Standard ein sicherer Betrag. Alles, was größer ist, ist übertrieben, da so viel physischer RAM verfügbar ist.

Edward_178118
quelle
1

Idealerweise verwenden Sie den Swap überhaupt nicht, und das 2x-RAM-Ding ist wirklich etwas, das von den vergangenen Jahren übrig geblieben ist.

Wenn Sie sich darüber Sorgen machen, würde ich etwas tun wie:

Max Memory Requirement - Physical Ram = Swap

Ich denke, 16 GB klingen persönlich viel zu groß.

WerkkreW
quelle
1

In den alten Tagen, in denen Sie so viel wie möglich wollten, gehört der Speicherverbrauch in modernen * nix-Kerneln der Vergangenheit an. Das alte Sprichwort war "2x dein Gedächtnis". Zwischen 2 GB oder dem Speicherplatz, den die Maschine heutzutage im RAM hat, bringen Sie nahe an den Ort, an dem Sie sein müssen.

XTZ
quelle
1

Der Swap wird auch zum Speichern von Dumps nach Kernel-Panik verwendet. Wenn Sie an der Analyse dieser Dumps interessiert sind und kein anderes Dump-Ziel angegeben haben, sollte Ihr Swap mindestens so groß sein wie Ihr RAM.

Benoit
quelle
0

Es gibt keinen einzigen Algorithmus, der Ihnen sagt, wie viel Swap Sie benötigen. In der Praxis müssen Sie Ihr System der größten Last aussetzen, die Sie unterstützen möchten, und herausfinden, wie viel Ressource es tatsächlich verwendet. Stellen Sie Ihre Auslagerungsdatei entsprechend ein.

Für physischen RAM sollten Sie Ihr System unter die tatsächliche "Kreuzfahrt" -Last stellen, die Sie voraussichtlich bewältigen werden, und entsprechend kaufen. Bei Systemen mit geringer Latenz sollten Sie innerhalb Ihrer Reiselast überhaupt nicht tauschen (dies ist nicht gleichbedeutend damit, dass kein Tausch zugewiesen oder sogar verwendet wird). Aufgrund der wenig genutzten Systemdienstprogramme, die die Haushaltsführung durchführen, kann es zu einem geringen Austausch kommen , aber im Großen und Ganzen sollten Sie so wenig wie möglich tauschen.

Natürlich können Sie die Leistung gegen einen niedrigeren Preis eintauschen.

Christopher
quelle