ist eine Swap Partition heute noch nötig....

club-mate

club-mate

LiNuX Fanatic
Hi,

ist es heute überhaupt noch notwendig bei einer Neuinstallation einer Linux Distribution eine extra Swap Partition anzulegen?
Mein Rechner der kommenden Monat ansteht besitzt dann 16 GB RAM, ratet ihr mir trotzdem noch eine kleine Swap Partition anzulegen oder sollte ich sie gänzlich weglassen?
Gibt es dafür vielleicht eine Faustregel? ;-)



mfg, mate
 
Zuletzt bearbeitet:
Da bin ich auch auf die (Experten-)Meinungen gespannt...

Ich behaupte aber mal, dass ohne Swap-Partition der Ruhezustand (Hibernation) Suspend-to-Disk nicht möglich sein wird. (Habs noch nicht selber getestet.)
Und hier gilt ja die Faustregel: RAM + 30%
 
Hi,

Swap-Space ist nur noch zum Teil nötig, obwohl ich nicht darauf verzichten würde, erst recht nicht bei Server-Installationen.
Dabei mache ich jedoch die Swap-Größe nicht am verbauten RAM fest, sondern wieviel Festplattenplatz ich übrig habe und wie stark das System ausgelastet ist.
Hauptsächlich geht es darum das bei einem Überlauf des RAMs nicht der OOM-Killer einspringt und mir das System um die Ohren fliegt.

Ich habe hier Geräte mit weit über 400 Gigabyte an RAM, die auch fast zur gänze aufgebraucht werden, jedoch trotzdem noch eine Interne HDD für Swap-Space mit 32 Gigabyte. Die größe des Swap-Space geht dabei hauptsächlich auf zu viel freien Platz zurück, da die Systeme selbst hauptsächlich von einer SAN arbeiten.
Der Swap-Space wird dabei so gut wie nie angegriffen, da ist das Speichermanagement von Oracle recht schlau, sollte es jedoch zu verschiedenen Locks auf Tablespaces kommen und sich Anfragen aufstauen kann der Swap-Space zwischen Absturtz oder nur Trägheit den unterschied machen.

Es kommt also absolut auf deine Umgebung an und was du mit deinen Systemen machst. Bei den größen heutiger Festplatten sind jedoch "kleine" SWAP-Bereiche um die 2 Gigabyte meist vollkommen ausreichend um amok laufende Programme abzufedern.

Für einen Suspend-to-Disk ist natürlich Swap nötig, und hierbei zählt dann die Größe SWAP=RAM
 
Suspend to disk bei 16gb ram? Ich seh den Nutzen davon nicht, das neu booten sollte da doch wesentlich schneller gehen, als vom suspend aufzuwachen.

Ich kann zwar nicht für den serverbetrieb reden, weil ich nur dektops administriere, aber bei den aktuellen ram preisen macht eine swap partition denk ich kaum noch Sinn. Ich habs auch lieber, wenn wegen ram knappheit irgendwelche prozesse getötet werden, als wenn die Festplatte auf Anschlag läuft und der computer 20 min braucht, bis ich überhaupt in eine shell komme, um zu sehen was gerade los ist.
 
Das ist halt eine Anwendungsfrage, ich hätte das auch nur sehr sehr ungern, dass auf meinen Systemen der OOM-Killer um sich haut. Das kann böse ins Auge gehen.
 
Ich habe in meinem Rechner rund 8 Gb Speicher und ich ärgere mich im Prinzip über die unnötige Anschaffung. Ich habe noch nie erlebt das mein Speicherverbrauch auf über 2 gb steigt. Bei einem Server oder auch beim arbeiten mit Virtuellen Systemen mag das anders sein, aber ich denke mir mal der Fragesteller hat eher einen ganz normalen Desktop gemeint auf dem eine grafische Oberfläche, ein Browser und ein Office läuft. Bei einem solchen System denke ich das man bei 4 gb Speicher locker auf einen swap Speicher verzichten kann.

Ob es heute auch noch Sinn macht einen Ruhezustand zu benutzen ist auch so eine Sache. Die aktuellen Systeme starten ja extrem flott und da sollte es kaum noch eine Rolle spielen.

Grüße
 
Naja,

auch bei Desktops mit 8 Giga RAM kommt es immer drauf an was man macht. Editiert man z.b. Full-HD Videos sind die 8 Giga schnell dahin.
Mein Desktop hat auch 8 Gigabyte RAM, ich brauche diese so gut wie nie, ausser ich fange an große Projekte zu Kompilieren wie z.b. Android Images.
Wenn man dann keinen Swap-Space hat wird bei einer Vollauslastung des Arbeitsspeichers wiederum der OOM Aktiv und bricht z.b. den Compiler ab, da der meist einen höheren OOM-Score hat.

Die Swap-Frage ist schlussendlich nicht richtig oder falsch beantwortbar. Du wirst bei einer normalen Desktopanwendung deine 16 Giga nicht voll bekommen und vermutlich sogar Probleme haben nur die hälfte davon zu füllen, daher wäre ein Swap-Space mit 16 Giga Verschwendung. Wenn du nun mit Sicherheit sagen kannst das du nie einen Overcommit deines verbauten RAM hast, kannst du auf Swap verzichten. Ansonsten ist Swap der Rettungsschirm vor einer OOM-Condition und dem damit verbundenen Crash.

Ohne Swap-Space bleiben natürlich auch Pages im RAM belegt die eigentlich von nicht arbeitender (idle) Software kommen, so können mehrere aufgeblasenen Anwendungne auch mal ein paar Gigabyte an RAM verwenden, obwohl sie eigentlich garnichts machen. Solche Speicherbereiche will man doch eigentlich lieber für nützliche Dinge verwenden und können auf den Swap-Space ausgelagert werden. Denn wenn ich einen RAM-Hungrigen Prozess starte, wie z.b. einen Kompiliervorgang, ist ein Teil des Speichers von Idle-Anwendungen befüllt, dies kann zu längeren Kompilierzeiten führen. Eine Auslagerung solcher Idle-Prozesse vom RAM in den Swap-Space ist dann natürlich wünschenswert.

PS: Sollte euer Swap-Space nie berührt werden ist ein Blick auf die Swappiness sicherlich nicht verkehrt. Ich kenne Leute die mit einer Swappiness von 100 fahren obwohl viel Speicher in ihren Systemen verbaut ist, aber jeder Idle-Prozess wird dann ausgelagert und nur wirklich Benötigte Anwendungen laufen im RAM selbst. Was natürlich den vorhanden RAM für diese Anwendungen erhöht. Dabei kommt es aber wieder auf den Anwendungsbereich an, denn die genannten Personen haben "Kernel-Kompilieren" zu ihrem Beruf gemacht ;)

PPS: Ich lege immer einen Swap-Space zwischen 2 und 4 Gigabyte an (Desktops), egal wieviel RAM das System verbaut hat.
Bei den heutigen Festplattengrößen sollte dies auch verkraftbar sein, noch dazu ist jedes GB auf einer HDD um ein deutliches günstiger als bei einem RAM.
 
Zuletzt bearbeitet:
+1

Bevor man über die swap-Vergabe grübelt, sollte man sich fragen, ob man überhaupt so viel RAM benötigt - kostet ja immer noch mehr als ein oder zwei GB swap.

Aus Erfahrung kann ich sagen, dass ein zuschlagender oom-Killer sehr schwer nachzuvollziehen ist und man 'ne Weile braucht, um auf die richtige Spur zu kommen. Dem beuge ich dann doch lieber vor.

Außerdem war da doch noch was - auch bei nicht ausgelastetem Arbeitsspeicher wird der swap verwendet, ich komme nur gerade nicht aufs richtige Stichwort...
 
Die Frage bleibt auch was man mit dem Ram macht. Beispielsweise bei mir

Code:
marcellus@sinep ~ $ free -m
             total       used       free     shared    buffers     cached
Mem:         15998       4386      11612          0        602       2378
-/+ buffers/cache:       1405      14593
Swap:            0          0          0

sind 2.3gb meines rams belegt, um Festplatteninhalte zu cachen. Mir kommt vor, dass die Reaktionsgeschwindigkeit von einem Desktop durch zu viel ram verbessert werden kann. Die Swapiness ist sicher eine Sache, aber im Gegensatz dazu meine idle Prozesse auf die Festplatte auszulagern probiere ich häufig genutzte Festplatteninhalte im Ram zu cachen.

Bei Swap hat man schreib/leseraten von 20-200Mb und seek Zeiten von ein paar ms. Im Ram hab ich schreib und leseraten von 1-10Gb/s und seek raten in ns. Das schlägt sich sehr auf die Reaktionsgeschwindigkeit von einem Desktop nieder, wenn man ein Programm startet, das bereits im ram gecahced ist.

Ein einfacher Test dafür ist es ein Programm, dass lange zum starten braucht zu starten, es zu schließen und noch einmal zu starten. Beim 2. mal startet es schneller, weil die Inhalte bereits im Ram sind und sie deswegen nicht mehr von der Platte gelesen werden müssen.

Im Gegensatz dazu

Code:
# echo "1" > /proc/sys/vm/drop_caches

und das Programm startet wieder so langsam, wie beim 1. mal.
 
+1
Außerdem war da doch noch was - auch bei nicht ausgelastetem Arbeitsspeicher wird der swap verwendet, ich komme nur gerade nicht aufs richtige Stichwort...

Anonymous Pages müssen immer im RAM behalten werden, falls es neue Versionen davon gib werden diese Als "Modifyed Anonymous Page" gekennzeichnet und normalerweise je nach Swappiness in den Swap-Space abgelegt.
 
Mir kommt vor, dass die Reaktionsgeschwindigkeit von einem Desktop durch zu viel ram verbessert werden kann. Die Swapiness ist sicher eine Sache, aber im Gegensatz dazu meine idle Prozesse auf die Festplatte auszulagern probiere ich häufig genutzte Festplatteninhalte im Ram zu cachen.

Bei Swap hat man schreib/leseraten von 20-200Mb und seek Zeiten von ein paar ms. Im Ram hab ich schreib und leseraten von 1-10Gb/s und seek raten in ns. Das schlägt sich sehr auf die Reaktionsgeschwindigkeit von einem Desktop nieder, wenn man ein Programm startet, das bereits im ram gecahced ist.

Da muss ich dir jetzt aber stark wiedersprechen. Die Programme selber, Shared Libs sowie der Filesystem-Cache werden niemals in den Swap geschrieben, im Swap liegen nur die modifizierten Anonymous Pages. Diese haben mit der Startgeschwindigkeit einzelner Programme überhaupt nichts zu tun, daran ändert auch eine Swapiness von 100 nichts. Nur der Relocate solcher Anon-Pages kann beim lesen von der HDD etwas länger dauern, dies betrifft aber nur bereits laufende Programme und die Vorraussetzung das diese Pages im Idle stehen. Filesystem-Pages werden nur bei einem OOM auf den Swap abgelegt!
 
Zuletzt bearbeitet:
@T-One das war eher ein Argument für viel ram, als gegen swap. Cachen kannst du nur, wenn du ram übrig hast und wenn du viel ram zum cachen hast brauchst du keinen swap.
 
Vielen Dank für eure Antworten und Tipps insbesondere von "T-One" :D

Ihr habt mir damit sehr geholfen!


Danke

ps: Meine Frage bezog sich übrigens auf ein Desktop System ;-)





mfg, mate
 

Ähnliche Themen

Linux Kernel VFS Panic HP Thin Client

Problem mit Apache2 + MySQL Server

OpenSuse 10.2 startet nicht von Festplatte

Solaris 9 - Installation auf zweiter Platte

Deutsche Installationsanleitung für Slackware 9.0 (und auch 9.1)

Zurück
Oben