Frage Wie viel SWAP-Platz auf einem 2-4GB-System?


Wie sollte ich entscheiden, welche Größe ich auf einem neuen Linux-Rechner (Debian) mit 2-4 GB RAM austauschen soll? Benötige ich wirklich Swap Space?


52
2018-05-07 15:15


Ursprung


2-4 GB sind nach 5 Jahren nicht mehr wirklich high memory. - guaka
@ KasperSouren Nein, ist es nicht. War zu der Zeit ein fairer Betrag. - C. Ross


Antworten:


Es gibt viele Möglichkeiten, wie Sie herausfinden können, wie viel Swap in einer Maschine verwendet wird. Gängige Vorschläge verwenden auf RAM basierende Formeln wie 2 x RAM, 1,5 x RAM, 1 x RAM, .75 x RAM und .5 x RAM. Viele Male werden die Formeln abhängig von der Menge an RAM variiert (so könnte eine Box mit 1 GB RAM 2 x RAM-Swap (2 GB) verwenden, während eine Box mit 16 GB RAM .5 x RAM-Swap (8 GB) verwenden könnte).

Eine andere Sache zu prüfen ist, wofür die Box verwendet wird. Wenn auf der Box eine große Anzahl gleichzeitig ausgeführter Prozesse ausgeführt wird, aber eine erhebliche Anzahl von ihnen für längere Zeit inaktiv ist, ist das Hinzufügen zusätzlichen Swaps sinnvoll. Wenn Sie eine kleine Anzahl kritischer Prozesse ausführen, ist das Hinzufügen von zusätzlichem Swap sinnvoll (dies könnte kontraproduktiv sein, aber ich werde es gleich erklären). Wenn Sie eine Box als Desktop ausführen, ist das Hinzufügen eines zusätzlichen Swaps sinnvoll.

Ob Sie Swap einbeziehen sollten, ja, sollten Sie. Sie sollten Swap Space immer mit einschließen, außer Sie Ja wirklich Wissen Sie, was Sie tun, und Sie haben wirklich einen guten Grund dafür.

Sehen Sie, wie der Linux-Kernel funktioniert, Swap wird nicht nur verwendet, wenn Sie den gesamten physischen Speicher erschöpft haben. Der Linux-Kernel nimmt Anwendungen, die nicht aktiv sind (nicht aktiv), und verschiebt die Anwendung nach einiger Zeit aus dem realen Speicher. Das Ergebnis ist, dass wenn Sie diese Anwendung benötigen, wird es eine kurze Verzögerung (normalerweise nur ein oder zwei Sekunden) geben, während der Speicher der Anwendung vom Wechsel in den Arbeitsspeicher zurückgelesen wird. Und das ist normalerweise eine gute Sache.

Dadurch können Sie inaktive Anwendungen in den Ruhezustand versetzen und Ihren aktiven Anwendungen Zugriff auf zusätzlichen Arbeitsspeicher gewähren. Darüber hinaus verwendet Linux jeden verfügbaren (nicht zugewiesenen) RAM auf einem Computer als Festplatten-Cache, wodurch die meisten (langsamen) Festplattenaktivitäten schneller und reaktionsfähiger werden. Das Auslagern inaktiver Prozesse erhöht den Festplattencache und macht Ihre Maschine insgesamt schneller.

Schließlich, seien wir ehrlich, Speicherplatz ist billig. Sehr günstig. Es gibt wirklich keinen guten Grund, einen (relativ) kleinen Teil des Platzes für den Tausch zu übernehmen. Wenn ich mit 2 GB - 4 GB RAM in einer Maschine laufen würde, würde ich wahrscheinlich meinen Swap-Speicherplatz so einrichten, dass er mindestens dem RAM entspricht. Wenn es weniger als 2 GB RAM wäre, würde ich immer noch mit mindestens 2 GB Swap gehen.

UPDATE: Als einen ausgezeichneten Kommentar erwähnt (und ich habe vergessen, einzuschließen), wenn Sie einen Laptop oder einen Desktop ausführen, die Sie in den Ruhezustand versetzen möchten (Suspend to Disk), dann Sie immer will mindestens so viel tauschen wie du Speicher hast. Der Auslagerungsspeicher wird verwendet, um den Inhalt des Arbeitsspeichers im Computer zu speichern, während er "schläft".


54
2018-05-07 16:07



Große Antwort, aber Sie haben nur eine Sache vergessen. Wenn es sich um einen Desktop oder Laptop handelt, stellen Sie sicher, dass Swap mindestens so groß ist wie der Arbeitsspeicher, den Sie haben, damit Sie Ihren Computer in den Ruhezustand versetzen können. Dies speichert den RAM zum Tauschen. - Sander Marechal
Guter Eintrag. Sander schlug mich auf das einzige, was ich hinzufügen wollte. Wenn Sie mehrere Laufwerke haben, können Sie Ihren Swap auf ein Laufwerk stellen, auf dem der Rest Ihres aktiven Dateisystems nicht vorhanden ist. Dies kann die Leistung verbessern, da es nicht so viele Konflikte gibt. - GreenKiwi
da ich herausgefunden diesen letzten Sommer müssen Sie umfangreichen Auslagerungsspeicher haben, wenn Sie Java ausführen - warren
Wenn der Benutzer eine RAM-Menge hat, die viel größer ist als die tatsächliche (16 GB / 32 GB) auf einem 100% Uptime Desktop-Computer (kein Ruhezustand), schlagen Sie dann vor, dass Sie SWAP-Prozesse anfordern? Es scheint mir, dass es Vorteile hätte, alles auf RAM zu belassen, wenn Sie sich nie seiner Kapazität nähern würden. - earthmeLon
@earthmeLon - Ich würde vorschlagen, noch ein bisschen Swap zu haben. Festplatten sind heutzutage groß und billig, so dass der Verlust von ein paar GB Speicherplatz zum Swap vernachlässigbar ist. Wenn Sie etwas Swap Space haben, erhalten Sie eine Versicherungspolice, falls etwas mehr RAM als erwartet auffrisst. - Christopher Cashell


roter Hut empfiehlt die folgende Formel für Server mit vielen RAM:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

Wenn Ihr System über 1 GB RAM verfügt, würde Ihr Swap 2 GB betragen, bei 16 GB wären es 18 GB.


17
2017-07-09 13:13



Relevanter Link aus dem RHEL6-Speicherhandbuch: docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/... - Ophidian
Ein Server wäre ziemlich ins Stocken geraten, wenn er 1 Gb Swap konsistent verwendet, weil sein RAM voll wäre. - user2284570


Späte Antwort, und ich denke, dies wurde in der ausgewählten Antwort ziemlich ausführlich behandelt, aber es gibt einige gute und leicht verdauliche Informationen in der Antwort von @ssapkota Hier (Kopieren / Einfügen unten).

Hier ist eine sehr gute Empfehlung von RedHat:Empfohlener Systemaustauschplatz

Ein Auszug aus dem gleichen Link:

In den vergangenen Jahren stieg die empfohlene Menge an Swap-Space linear mit der Menge an RAM im System an. Aber weil die Speicherkapazität in modernen Systemen auf Hunderte von Gigabytes angewachsen ist, Es wird nun erkannt, dass die Größe des Swap-Speicherplatzes, den ein System benötigt, eine Funktion der Speicherauslastung ist, die auf diesem System ausgeführt wird. Dies ist jedoch der Fall, wenn der Swap-Speicherplatz normalerweise zur Installationszeit festgelegt wird und es schwierig sein kann, die Speicherauslastung eines Systems im Voraus zu bestimmenWir empfehlen, den Systemaustausch anhand der folgenden Tabelle zu bestimmen.

Aktuelle Tabelle (Stand Dezember 2012):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

Originaltabelle:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 

12
2018-03-29 15:38





Es hängt ziemlich viel davon ab, was du damit machst. Mit dem Angemessene Arbeitsauslastung, Sie benötigen keinen Swap-Space Sie haben 16 MB oder 16384 MB RAM; tatsächlich laufen die meisten eingebetteten Linux-Geräte ohne (was würden sie tauschen?)

In Anbetracht der RAM-Preise werden Sie Swap wahrscheinlich nicht für aktiv verwenden Berechnung. Also, was ist übrig?

  1. Auf Arbeitsoberflächen wird Auslagerungsspeicher für Suspend-to-Disk verwendet. Dieser Auslagerungsspeicher muss ungefähr 1 × RAM sein, abhängig davon, wie gut der Speicherinhalt ist komprimieren.
  2. Zulassen, dass inaktive Aufgaben aus dem Arbeitsspeicher entfernt werden, um mehr Platz zu schaffen Festplattencache
  3. Gleich, aber damit aktive Prozesse es stattdessen für Heap / Stack verwenden können

(2) und (3) hängen stark von der Arbeitsbelastung ab. Auf meinen Desktops kann ich problemlos verwenden 4GB + on (2), von vims, xterms, etc. auf anderen laufen Desktops.

Auf den meisten Servern, die ich betreibe, wird kaum etwas ausgetauscht und 1-2GB Swap (unabhängig von der RAM-Menge) scheint in Ordnung zu sein.


8
2018-05-07 16:01



Auslagerungsspeicher wird auch verwendet, wenn Sie ausgeführt werden etwas das nutzt die JVM: nicht chintz und vergessen, Swap-Space zuzuweisen, wenn Sie Java ausführen! - warren
@warren: Ich habe Tomcat-Instanzen, die jeweils über 3GiB hinausgehen, aber keinen Swap verwenden (und einer verwendet hugepages und kann daher nicht getauscht werden). Ich bin mir nicht sicher, wovon du redest. - derobert
Es gibt einen halb obskuren Fehler in der JVM, der sich auf minimale und maximale Speichereinstellungen bezieht, die ich in diesem letzten Sommer hatte (antipaucity.com/?p=984). TL; DR - jedes Mal, wenn die JVM nach mehr Speicher vom Betriebssystem fragt, schreibt sie sich selbst zum Auslagern, erhält ihren neuen Speicherblock und liest sich dann wieder in den RAM, so dass ihr Speicher zusammenhängend ist - warren
@warren: OK, ich laufe OpenJDK auf 64-Bit, mit Xmx und Xms gleich. Aber ich bin mir nicht sicher, wie Java sich zum Tausch zwingen würde, der einzige Syscall wäre es madvise, aber das wird nicht scheitern ... dieser Bug spricht davon, dass während der Garbage Collection kein Speicher mehr zur Verfügung steht. Das Hinzufügen von Swap verhindert das natürlich, aber auch das Hinzufügen von RAM. Vielleicht ist es wegen 32-Bit mit PAE? - derobert
Es passiert auch mit der 64-Bit-JVM: wenn Sie haben Xms und Xmx nicht auf die gleichen Werte eingestellt, kann es Sie schlecht beißen: verursachte große Probleme für uns für zwei + Wochen, bis wir es schließlich aufspürten - warren


Nun, es hängt davon ab, welche Dienste und Anwendungen Sie ausführen möchten. Sie können Ihre Speichernutzung mit ansehen frei -m und passen Sie Ihre Swap-Partition im Laufe der Zeit entsprechend an.

Hier ist ein interessante Diskussion zum Thema. Persönlich (und nach dem Lesen dieser Diskussion) würde ich immer noch etwa 1 GB für den Tausch übrig lassen.


4
2018-05-07 15:30





Ich kann nicht direkt mit Debian sprechen, aber wenn Sie über 2 GB RAM aufstehen, ändert sich die ursprüngliche 2xRAM-Gleichung, normalerweise auf 1RAM. Ich denke, sobald Sie 16 GB RAM schlagen, sinkt der Vorschlag wieder auf .75xRAM.

Natürlich fand ich dies für Solaris zutreffend und ist tatsächlich die Metrik, die für Oracle-Installationen verwendet wird, daher hängt YMMV von den Anwendungen ab, auf denen Sie dort laufen werden.


2
2018-05-07 15:24





Ich mache immer so viel (mindestens) wie RAM. Nur für den Fall, dass ich die Maschine eines Tages überbrücken möchte. Kann mit weniger arbeiten, könnte aber auch nicht.

HDD-Speicherplatz ist heutzutage billig, daher zögere ich nicht, Swap-Speicherplatz wegzugeben.


2
2018-05-07 16:12





Swap Space kann als "Padding" dienen, wenn Sie sonst nicht genügend Speicherplatz haben würden.

Wenn ein Prozess den gesamten verfügbaren RAM-Speicher verbraucht, wird die Maschine sehr langsam ausgeführt. In der Regel können Sie jedoch die Daten wiederherstellen. Es wird auch einfacher zu sehen, welcher Prozess das Problem verursacht.


2
2018-05-23 08:53



Dies ist ein zweischneidiges Schwert: Auf meinem Heim-PC habe ich Swap entfernt, als ich Firefox 2.x benutzte, weil es langsam den ganzen Speicher verschluckte, und als die Maschine ausgetauscht wurde, wurde sie komplett unbenutzbar; ohne swap wurde der firefox-prozess einfach vom kernel geschlossen :) - wazoox


Im Laufe der Jahre habe ich die Regel, dass für Windows-Rechner haben Sie so viel Swap wie Sie RAM haben ... Novell wir tune Swap höher, wenn wir mehr Drucker hatten ... Für Linux die Regel und Praxis für mich war 1 GB Tauschen Sie für jeden 2GB RAM, den Sie haben. Und Sie legen es an der Vorderseite der Festplatte, so dass es schneller zugegriffen wird.

  • Wenn es ein Mail / Spam-Gateway ist, verwende ich den doppelten Swap zum RAM
  • Wenn es ein * Server ist, verwende ich keinen Swap
  • Wenn es ein LAMP-Server ist, ist die 1/2-Regel in Kraft.

  • Die Laufleistung variiert je nach Anwendung und GUI-Nutzung.


1
2018-05-07 15:46



Eigentlich würde ich denken, dass das in der Mitte von der Platte würde am schnellsten zugegriffen werden. - Eddie


Ich erstelle 1GB Swap und kaufe mehr RAM, sobald es benutzt wird. Sie müssen nicht wirklich auf modernen Computern tauschen, RAM ist so billig.


0
2018-05-07 15:24