Wie soll ich entscheiden, wie groß mein Swap auf einem neuen Linux-Rechner (Debian) mit 2-4 GB RAM sein soll? Brauche ich wirklich Swap Space?
Wie soll ich entscheiden, wie groß mein Swap auf einem neuen Linux-Rechner (Debian) mit 2-4 GB RAM sein soll? Brauche ich wirklich Swap Space?
Antworten:
Es gibt viele Möglichkeiten, herauszufinden, wie viel Swap in einer Maschine verwendet wird. In allgemeinen Vorschlägen werden auf RAM basierende Formeln verwendet, z. B. 2 x RAM, 1,5 x RAM, 1 x RAM, 0,75 x RAM und 0,5 x RAM. Die Formeln variieren in Abhängigkeit von der Größe des Arbeitsspeichers um ein Vielfaches (eine Box mit 1 GB RAM verwendet möglicherweise 2 x RAM-Swap (2 GB), während eine Box mit 16 GB RAM 0,5 x RAM-Swap (8 GB) verwendet.
Eine andere zu berücksichtigende Sache ist, wofür die Box verwendet wird. Wenn eine große Anzahl von Prozessen gleichzeitig auf der Box ausgeführt wird, aber eine erhebliche Anzahl von Prozessen für einen bestimmten Zeitraum inaktiv ist, ist das Hinzufügen eines zusätzlichen Austauschs sinnvoll. Wenn Sie eine kleine Anzahl von kritischen Prozessen ausführen, ist das Hinzufügen eines zusätzlichen Austauschs sinnvoll (dies mag kontraintuitiv erscheinen, aber ich erkläre es gleich). Wenn Sie eine Box als Desktop ausführen, ist es sinnvoll, einen zusätzlichen Swap hinzuzufügen.
Ja, Sie sollten angeben, ob Sie Swap einbeziehen sollen. Sie sollten immer Swap Space einschließen, es sei denn, Sie wissen wirklich , was Sie tun, und Sie haben wirklich einen guten Grund dafür.
Sehen Sie, wie der Linux-Kernel funktioniert, wird Swap nicht nur verwendet, wenn Sie den gesamten physischen Speicher ausgeschöpft haben. Der Linux-Kernel nimmt Anwendungen entgegen, die nicht aktiv sind (inaktiv sind), und verschiebt die Anwendung nach einiger Zeit, um sie aus dem realen Speicher auszutauschen. Wenn Sie diese Anwendung benötigen, kommt es zu einer kurzen Verzögerung (normalerweise nur ein oder zwei Sekunden), während der Speicher der Anwendung vom Auslagerungsspeicher in den Arbeitsspeicher zurückgelesen wird. Und das ist normalerweise eine gute Sache.
Auf diese Weise können Sie inaktive Anwendungen in den Energiesparmodus versetzen und Ihren aktiven Anwendungen Zugriff auf zusätzlichen Arbeitsspeicher gewähren. Außerdem verwendet Linux jeden verfügbaren (nicht zugewiesenen) RAM auf einem Computer als Festplatten-Cache, wodurch die meisten (langsamen) Festplattenaktivitäten schneller und reaktionsschneller werden. Durch das Auslagern inaktiver Prozesse erhalten Sie mehr Festplatten-Cache und Ihr Computer wird insgesamt schneller.
Zum Schluss, seien wir ehrlich, Speicherplatz ist billig. Sehr günstig. Es gibt wirklich keinen guten Grund, einen (relativ) kleinen Teil des Speicherplatzes nicht für den Tausch zu streichen. Wenn ich mit 2 GB - 4 GB RAM auf einem Computer arbeiten würde, würde ich meinen Auslagerungsspeicher wahrscheinlich so einrichten, dass er mindestens dem RAM entspricht. Wenn es weniger als 2 GB RAM wären, würde ich immer noch mindestens 2 GB Swap verwenden.
UPDATE: Wie bereits erwähnt (und ich vergaß einzuschließen), wenn Sie einen Laptop oder Desktop betreiben, den Sie möglicherweise in den Ruhezustand versetzen möchten (Suspend to Disk), möchten Sie immer mindestens so viel Swap, wie Sie Speicher haben. Der Auslagerungsspeicher wird verwendet, um den Inhalt des Arbeitsspeichers im Ruhezustand des Computers zu speichern.
Red Hat empfiehlt die folgende Formel für Server mit viel RAM:
if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB
Wenn Ihr System über 1 GB RAM verfügt, beträgt Ihr Swap 2 GB, für 16 GB sind es 18 GB.
Späte Antwort, und ich denke, dies wurde in der ausgewählten Antwort ziemlich genau behandelt, aber die Antwort von @ssapkota hier enthält einige gute und leicht verdauliche Informationen (kopieren / einfügen unten).
Hier ist eine sehr gute Empfehlung von RedHat: Empfohlener System Swap Space
Ein Auszug aus demselben Link:
In den vergangenen Jahren hat sich die empfohlene Größe des Auslagerungsspeichers linear mit der Größe des Arbeitsspeichers im System erhöht. Da die Speicherkapazität in modernen Systemen jedoch auf Hunderte von Gigabyte angestiegen ist, wird erkannt, dass die für ein System erforderliche Swap-Speicherkapazität von der auf diesem System ausgeführten Arbeitsspeicherauslastung abhängt. Angesichts der Tatsache, dass der Auslagerungsspeicher normalerweise zum Zeitpunkt der Installation festgelegt wird und es schwierig sein kann, die Arbeitsspeicherauslastung eines Systems im Voraus zu bestimmen , empfehlen wir, den Systemauslagerungsspeicher 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
Es hängt ziemlich stark davon ab, was Sie damit machen. Bei entsprechender Auslastung benötigen Sie keinen Auslagerungsspeicher, unabhängig davon, ob Sie über 16 MB oder 16384 MB RAM verfügen. In der Tat laufen die meisten eingebetteten Linux-Geräte ohne (wohin würden sie wechseln?)
In Anbetracht der RAM-Preise werden Sie Swap wahrscheinlich nicht für die aktive Berechnung verwenden. Also, was ist noch übrig?
(2) und (3) hängen stark von der Arbeitsbelastung ab. Auf meinen Desktops kann ich problemlos 4 GB + auf (2) verwenden, da Vims, Xterms usw. auf anderen Desktops ausgeführt werden.
Auf den meisten Servern, die ich verwende, wird kaum etwas ausgelagert, und 1 bis 2 GB Swap (unabhängig von der Größe des Arbeitsspeichers) scheinen in Ordnung zu sein.
madvise
, aber das wird nicht scheitern ... dieser Fehler spricht von Speichermangel während der Garbage Collection. Das Hinzufügen von Swap verhindert das natürlich, aber das Hinzufügen von RAM würde es auch tun. Vielleicht liegt es an 32-Bit mit PAE?
Xms
und Xmx
nicht, kann es Sie beißen: Wir hatten zwei + Wochen lang große Probleme, bis wir es endlich aufgespürt haben
Nun, es hängt davon ab, welche Dienste und Anwendungen Sie ausführen möchten. Sie können Ihre Speichernutzung mit free -m beobachten und Ihre Swap-Partition im Laufe der Zeit entsprechend anpassen.
Hier ist eine interessante Diskussion zu diesem Thema. Persönlich (und nachdem ich diese Diskussion gelesen habe) würde ich immer noch ungefähr 1 GB für den Tausch übrig lassen.
Ich kann nicht direkt mit Debian sprechen, aber ich weiß, dass wenn Sie über 2 GB RAM aufsteigen, sich die ursprüngliche 2xRAM-Gleichung ändert, normalerweise auf 1xRAM. Ich denke, sobald Sie 16 GB RAM erreicht haben, senkt sich der Vorschlag wieder auf .75xRAM.
Natürlich habe ich dies für Solaris als zutreffend befunden und es ist tatsächlich die Metrik, die für Oracle-Installationen verwendet wird. Daher hängt YMMV von den Apps ab, auf denen Sie dort ausgeführt werden.
Ich mache immer so viel Swap (zumindest) wie RAM. Nur für den Fall, dass ich die Maschine eines Tages in den Ruhezustand versetzen möchte. Kann mit weniger arbeiten, könnte aber auch nicht.
HDD-Speicherplatz ist heutzutage billig, daher zögere ich nicht, Swap-Speicherplatz freizugeben.
Swap Space kann als "Auffüllung" dienen, wenn Ihnen sonst sofort der Speicher ausgeht.
Wenn ein Prozess den gesamten verfügbaren Arbeitsspeicher und einige davon belegt, läuft der Computer sehr langsam, Sie können sich jedoch in der Regel erholen. Es ist auch einfacher zu erkennen, welcher Prozess das Problem verursacht.
Im Laufe der Jahre habe ich die Regel befolgt, dass Sie für Windows-Computer so viel Auslagerungsspeicher haben wie Sie RAM ... Bei Novell würden wir den Auslagerungsspeicher höher einstellen, wenn wir mehr Drucker hätten ... Für Linux betrug die Regel und Praxis für mich 1 GB Tauschen Sie für jeden 2 GB RAM, den Sie haben. Und Sie platzieren es vorne auf der Festplatte, damit Sie schneller darauf zugreifen können.
Wenn es sich um einen LAMP-Server handelt, gilt die Regel 1/2.
Die Laufleistung variiert je nach Anwendung und GUI-Nutzung.
Ich erstelle 1 GB Swap und kaufe mehr RAM, sobald es benutzt wird. Auf modernen Computern muss man nicht wirklich tauschen, RAM ist so billig.
Wofür setzen Sie das System ein? Persönlich benutze ich keinen Swap. Wenn irgendetwas ein Token mit 512 MB oder so benutzt, können die Dinge auf die Festplatte gestellt werden, wenn sie residieren, aber für längere Zeit inaktiv sind.
Ich verwende nur einen kleinen Token-Swap (normalerweise 256 MB, aber ich habe sogar 64 MB getan), weil die Konfiguration eines Systems mit Null-Swap eine spezielle Konfiguration erfordert.
Speicherplatz ist billig, aber slooooooooow. Sobald das System zu tauschen beginnt, ist die Leistung gleich Null. Und RAM ist nicht mehr so teuer.
Vertrauen Sie mir, kaufen Sie einen etwas langsameren Prozessor und kaufen Sie mehr RAM. 2,8 GHz statt 3,0 GHz sparen Sie genug Geld, um mindestens 2 GB RAM zu kaufen.