Frage zu Swap-Partition vs. Swap-Datei

cabriofahrer

Well-Known Member
Bei einer Frischinstallation wird normalerweise eine separate Swap-Partition (ada0p2 oder ada0s2) eingerichtet.
Wo liegt diese dann eigentlich auf der Festplatte, innen, oder außen? Die Festplattengeschwindigkeit ist ja meines Wissens außen deutlich höher.
Andererseits wird in Kap. 11.12. des Hanbuchs beschrieben, wie man nachträglich eine Swap-Datei mit beliebiger Größe erstellen kann, was ich ausprobiert habe und wunderbar funktioniert.
Was ist also grundsätzlich zu empfehlen, separate Partition nach Standardinstallationsschema von bsdinstall oder Swap-Datei, insbesondere unter dem Aspekt der Geschwindigkeit?
 
Ist eigentlich völlig egal. Die Performance dabei ist eh schon so schlecht, da sind Unterschiede vielleicht in der Theorie diskutierbar, aber haben keinerlei Praxisrelevanz. Sorge einfach dafür, dass du für deine Aufgaben genügend RAM hast, sodass die Swap eine Sache für Notfälle und/oder Ausnahmen ist und kein Alltag.

Auch das Innen/Außen bei Platten... dann hast du ggf. dich bemüht, dass es in den schnelleren Bereichen ist und dann hast du dort einen Sektorfehler und der Lesekopf muss zum Reservesektor springen.
 
Das sind so Themen, die seit 10 Jahren so in die Irrelevanz gehen :)
Noch weiter zurueck *musste* man Swappen (weil RAM so teuer war) und da waren so "1% optimierungen" von Belang.
Heute gilt das von oben, wenn die Kiste swappen muss, add more RAM.
 
Der Hauptgrund, weshalb alle seriösen unixoiden Systeme auf Swap-Partitionen statt Dateien setzen ist einfach, dass de facto Dateisysteme und das VFS selbst im schreibenden Pfad Speicherallokationen benötigen. Dadurch kann es zum Ressource-Deadlock kommen: Das System ist extrem knapp an Speicher und will swappen. Um die Daten in die Swap schreiben können, muss Speicher allokiert werden. Damit das möglich ist, müssen Daten aus dem RAM in die Swap geschrieben werden. Pech gehabt...

Das ist aber rein akademisch. Die traurige Tatsache ist, dass sich zumindest FreeBSD und Linux schon früher festfressen, wenn sie wirklich in extrem Speichermangel geraten. Sie swappen, swappen und swappen, alles andere blockiert und staut zurück, irgendwann geht dann gar nichts mehr und wenn man nicht gerade Nerven aus Stahl hat, ist der Resetknopf angesagt. Dazu kommt, dass die Swap heute eher ein eleganter Weg ist, um ewig schlafende Prozesse aus dem Weg zu räumen. Nicht genutzte getty, vergessene Shells, etc. Das ist zwar nur Kleinvieh, kann sich aber auch läppern. Und da reicht auch eine Swap-Datei für.

Ansonsten, es wurde hier schon ein paar Mal gesagt: Wenn die Kiste ernsthaft zu swappen beginnt, steck ein Riegel mehr rein.
 
Eine andere, auch etwas ältere Regel war ja, dass die Swap-Partition etwas größer als der RAM sein sollte, um im Fall der Fälle das Speicherabbild für eine spätere Analyse schreiben zu können. Ich will nicht behaupten, dass ich je solch eine Analyse gemacht hätte, aber ist das heute noch relevant?
 
Danke für Eure Antworten soweit! RAM aufrüsten ist sicherlich immer die beste Lösung, nur leider ist es manchmal schwierig, Module vom gleichen Typ wiederzubekommen.
SSD nur für swap? Da setzt man doch gleich lieber komplett das ganze System neu auf SSD? Überlege ich schon seit einiger Zeit...
Um bei mir noch den konkreten Hintergrund zu erläutern:

Ich ging nach meiner Erfahrung immer davon aus, dass die von bsdinstall vorgeschlagene 4GB-Swap-Datei bei anfänglich 2 GB RAM, die ich hatte, etwas zu überdimensioniert waren, weshalb ich nur eine 2 GB-Partition auswählte. Ich fing dann an, TF2 mit dem Windows-Steam-Client zu zocken und hatte dabei extremes Stottern. Ein Hinzufügen eines weiteren 2 GB-Riegels zu den beiden schon installierten 2x1 GB ließ das Stottern dann verschwinden, allerdings konnte es bei längerem Spielen/Laden weiterer Karten plötzlich zum Absturz mit einem Wine-Fenster und der Meldung "out of memory" kommen. Die Erstellung einer Swap-Datei von 4 GB laut Handbook scheint das Problem jetzt gelöst zu haben. Wollte dann auch mal "Mechwarrior Online" ausprobieren, da komme ich noch in das Menü, aber beim Laden eines Levels Absturz. Hier scheinen 4 GB Ram + 4 GB swap wohl nicht genug zu sein. Leider geben die Angaben zu den Hardwarevoraussetzungen nie Aufschluss zur benötigten Swap-Größe, da die bei Windows standardmäßig beliebig groß werden kann.

Vielleicht könnten die mit mehr Spieleerfahrung noch etwas dazu sagen, vielleicht gibt es so eine Art Faustregel?

Die traurige Tatsache ist, dass sich zumindest FreeBSD und Linux schon früher festfressen, wenn sie wirklich in extrem Speichermangel geraten. Sie swappen, swappen und swappen, alles andere blockiert und staut zurück, irgendwann geht dann gar nichts mehr und wenn man nicht gerade Nerven aus Stahl hat, ist der Resetknopf angesagt.

Interessant: Ich dachte immer, das Speichermanagement bei Unix/Linux sei besser als das von Windows? Nun, bei mir hat in solchen Fällen aber meistens ein Wechsel in die Konsole und ein Killen der problematischen Applikation geholfen.
 
als nicht-Experte und hier wirklich ganz vehement Ahnungslos: probier doch einfach bitte mal einen swapoff.
Das verändert zunächst nichts am System und ist beim nächsten Boot wieder OK oder einfach durch swapon zurückgesetzt.
Weil ich nie ohne weiteres auf gute Ratschläge höre, mache ich das bei allen meinen Rechnern (Desktop-PCs) seit Jahren und habe nicht auch nur einmal einen Nachteil bemerkt, wenn ich keinen SWAP benutze. Letztens hatte ich auf einem i386 mit 500MB RAM ein Ubuntu mit btrfs und ohne SWAP aber mit einem tmpfs für einige Dinge probiert und selbst der hing nicht ein einziges Mal und lief durchaus flüssig, wenn man das bei der HW so nennen möchte.
Meine Überlegung ist einfach: als ich vor zehn Jahren oder so einen PC mit 2GB RAM plus 2GB SWAP betrieb, war das zusammen nicht mehr, als wenn ich heute 8GB RAM einbaue. Selbst, wenn alle Anwendungen immer mehr Speicherhunger bekommen, wenn kein RAM mehr da ist, dann müssen sie sich eben mit weniger begnügen oder sie schmieren mir ab und legen vielleicht den PC lahm. Wie gesagt: nicht ein einziges Mal kann ich das berichten. Ich denke, mehr als 2GB sollten es sein, aber damit gibt es heute wohl kaum irgendein Problem. Und dann einfach mal swapoff loslassen, die Kiste anlassen und damit arbeiten und sehen, was passiert.
Wer viel rechnet, also etwa kompiliert, wird die Sache sicher etwas anders beurteilen.
Wer aber nur seine typischen Desktop-Applikationen fährt, geht ja kein übermäßiges Risiko ein und kann es einfach mal probieren.

Was die Spielereien angeht: das kann sehr brutal werden und auch mit 12GB RAM gibt es da noch Engpässe und ruckeln, wie man mir sagte. Wer sowas will, sollte erst recht in viel RAM investieren und lieber nicht auf SWAP setzen.

Die Regel SWAP >= 2xRAM ist uralt. Manchmal macht es Sinn, vor allem dann, wenn dumps auf den SWAP gezogen werden oder eine Hibernation dort landen soll. Dahinter verbirgt sich keinerlei Intelligenz. Auch nicht im FreeBSD-Installer.
 
Hmmm, ich spiele, allerdings unter Windows, kann dir also zum "Swap" Problem unter FreeBSD nicht direkt weiterhelfen.

Aber "gefühlt" würde ich sagen das die beiden Spiele, die ja nun nicht mehr top-aktuell sind mit 4GB bei niedrigen Details auskommen müssten. Belegt da villeicht noch irgend etwas anderes auf dem System viel Ram? Nutzt du ein dedizierte Grafiklösung oder zwackt sich die GPU auch noch etwas vom Hauptspeicher? Wenn ja mach vermutlich nur mehr Ram sinn würde ich gefühlt sagen. PC-Spielen sind halt recht Hardware-Hungrig.
Mit 8GB kommt man aber selbst bei aktuellen Titeln (Battlefield 1 z.B.) noch immer halbwegs hin (Unter Windows zumindest)
 
Eine andere, auch etwas ältere Regel war ja, dass die Swap-Partition etwas größer als der RAM sein sollte, um im Fall der Fälle das Speicherabbild für eine spätere Analyse schreiben zu können. Ich will nicht behaupten, dass ich je solch eine Analyse gemacht hätte, aber ist das heute noch relevant?
Ich denke Yamagi hat hier mal irgendwo geschrieben, dass heutzutage komprimierte Dumps geschrieben werden und daher in aller Regel eine Swappartition kleiner als der RAM ausreichen sollte.....
Quelle finde ich jetzt auf die Schnelle natürlich nicht. :(
 
Ja, es werden sogenannte Minidumps geschrieben. Es werden nur der Kernel und die gerade aktiven Prozesse ausgeschrieben, aber nicht die Gigabytes an Caches, inaktiven Prozessen und so weiter. Meist kommt man mit 1 bis 2 Gigabyte hin. 12-CURRENT kann das ganze übrigens auch noch verschlüsseln...
 
Zurück
Oben