Server und Swap/RAM

bsd4me

Well-Known Member
Hallo,

ich habe da mal eine Frage: zwecks Aufrüstung soll ein Server mehr Speicher bekommen. Ist es auch notwendig, den Swap space mitanzupassen? D.h. aktuell sind 128GB RAM und etwa 140GB Swap vorhanden, das RAM soll auf 384GB hochgezogen werden. Läuft der Rechner, auch wenn ich den Swap space nicht erhöhe (was eine Neuinstallation nach sich ziehen würde, da ich den Swap nicht als Datei anlegen möchte)...

Danke und VG Norbert
 
Läuft der Rechner, auch wenn ich den Swap space nicht erhöhe
Natürlich. Ich bin kein Freund von der Idee FreeBSD ganz ohne Swap laufen zu lassen, aber bei den meisten Einsatzzwecken sind ein paar Gigabyte doch mehr als ausreichend. Ich nehmen meist einfach eine 4GB Swap-Partition. Das ist genug für kritische Situationen und kann einen Kernel-Dump zu Debuggen fassen. Wirklich dauerhaft swappen soll die Kiste sowieso nicht, weil das sehr auf die Performance geht...
 
Ich bin kein Freund von der Idee FreeBSD ganz ohne Swap laufen zu lassen
Andere sehen das auch so.
Alle meine GNU/Linux und FreeBSD Rechner laufen seit Jahren vollkommen problemlos ohne SWAP. Das kann keine Empfehlung sein, für jemanden, der auf Nummer sicher gehen will und vielleicht ernsthafte professionelle Ansprüche hat (mit knappen 400G RAM ist man ganz sicher in dem Bereich). Aber, wenn es niemand jemals ausprobiert, kann man ja auch keine negativen Erfahrungen ohne SWAP machen und es bleibt einfach ein Hörensagen oder (begründetes) Bauchgefühl.
Ich behaupte aus meiner eigenen Erfahrung und aus Überzeugung: ein Desktop-Nutzer kann dauerhaft problemlos ohne SWAP arbeiten. Ausreichend RAM ist wichtiger, ab 4G ist es genug und es hat ja heute eh jeder deutlich mehr.
Und ich weiß und sage das auch gleich dazu, dass ich diese Diskussion immer wieder mit viel Leidenschaft und wenig Wissen um die Fakten führe. Wer einen Dump eh nicht lesen kann, braucht auch keinen und zum Arbeiten mit einem Desktop, braucht man keinen SWAP. Hat man einen, wird er früher oder später genutzt, obwohl das gar nicht notwendig wäre.
Es ist auch erstaunlich für mich, wie wenige Menschen überhaupt bereit sind, mal probeweise auf ihren geliebten SWAP zu verzichten und es einfach mal zu testen. Sie trauen sich einfach nicht, auch dann, wenn sie gar keine wichtigen Rechner betreiben und einen Ausfall durchaus mal verschmerzen könnten. So bleibe ich denn alleine mit meinen Erfahrungen.
 
Ausreichend RAM ist wichtiger, ab 4G ist es genug und es hat ja heute eh jeder deutlich mehr.

Pit, ich habe heute an meine Notebook mit 4 GB Ram audacity genutzt für große Konzertaudios und mal spaßeshalber nach einer Stunde htop aufgerufen.

Von den 4 GB Ram waren schon 3,2 GB verbraten (und zwar nix mit bufferd oder cached, sondern used). Ich werde es mal testen, dem swap abschalten, und dann nochmals mit audacity über 1 GB große Audios öffnen und eine Zeit damit arbeiten - und mal berichten.

Die Arbeitsumgebung war übrigens ein neu aufgesetztes FreeBSD Minimal-Desktopsystem mit lxde.
 
und eine Zeit damit arbeiten - und mal berichten
das wäre schön.
Wir hatten vor einiger zeit eine, von mir ebenso leidenschaftlich vorgetragene Diskussion zum Thema und ich habe damals umgekehrt SWAP eingeschaltet und dann viel Action erzeugt, mit dem Ergebnis, dass irgendwann der SWAP tatsächlich auch genutzt wurde.
Code:
Mem: 322M Active, 2386M Inact, 190M Laundry, 4850M Wired, 99M Buf, 122M Free
So sieht das bei mir fast immer aus, ohne SWAP. Da ist jede Menge im RAM, was frei geräumt werden kann, falls es da Bedarf gibt. Dieser PC läuft quasi immer und RAM läuft niemals leer (8G, wie man zusammenrechnen könnte).
 
Naja, mit dem gleichen Argument kann man auch auf ein RAID oder ECC-Speicher verzichten und sagen "Mir ist da noch nie was kaputt gegangen". Andere Menschen, andere Anforderungen, ist relativ simpel. 5 von 6 Leuten überleben ein russisches Roulette auch :D

Aber zum Thema:
Die RAM Aufrüstung hat ja sicherlich einen Sinn, oder? Wie doll war denn der Speicher vorher belagert und wie viel wurde denn vom Swap vorher benutzt? Ansonsten kann man ja auch hinterher noch über Swap-Files weiteren Swap-Speicher hinzufügen. Eine dringende Voraussetzung besteht also nicht. Es besteht auch kein direkter Grund Swap nicht als Datei anzulegen. Die Performance ist in etwa gleich schlecht.
 
@-Nuke- eine Frage

Wie war das noch mit Swap - ob Datei oder Partition - innerhalb eines zfs Pools? Ich habe dazu eine Diskussion in Erinnerung mit der Kernaussage, dass das nicht so gut sei.
Oder ist das mittlerweile anders?
 
@-Nuke- eine Frage
Oder ist das mittlerweile anders?

Nicht sonderlich. In Grenzbereichen könntest du trotzdem noch eine Out-of-Memory kriegen. Siehe auch: https://wiki.freebsd.org/RootOnZFS#ZFS_Swap_Volume

Aber generell sollte FreeBSD weit früher auslagern, wenn der RAM sich der Füllung nährt. Darum halt auch die Nachfrage wie weit der RAM denn bisher gefüllt war und warum man jetzt tausende EUR in ein Upgrade steckt. Muss ja irgend einen Grund haben :D

Ich betreibe z.B. als Hobby Blender Rendering. Ohne Swap würde dir ein falscher Klick das System schrotten :D Ansonsten dürfen die Swap-Losen mit 4-8GB RAM sich gerne mal Blender installieren und versuchen die Datei zu rendern: https://gooseberry.blender.org/gooseberry-production-benchmark-file/
 
Ohne Swap würde dir ein falscher Klick das System schrotten
dann ist die SW doch falsch geschrieben.
Nun aber bitte nicht falsch verstehen, ich will niemandem seinen SWAP ausreden oder hier missionieren und schon gar nicht für den produktiven Einsatz dazu raten, keinen SWAP zu nutzen.
Es geht mir vielmehr darum, dass seit Jahren immer der Einsatz von SWAP als 2x RAM vorgegeben und niemals hinterfragt worden ist und dass auch heute niemand sich traut,es mal ohne zu probieren, selbst auf einem Desktop ohne große Anforderungen an den Speicherbedarf.
Bleiben wir bei dem Beispiel von eben. Wenn das Programm meinetwegen eine Mindestanforderung von 8G RAM hat, dann ist es mir schon klar, dass ich mit 4G nicht weit komme und unbedingt einen SWAP dazu nehmen muss. Wenn ich aber dann 16G RAM habe und das Programm immer noch nach einem SWAP verlangt oder ohne diesen zusammenbricht, dann ist das in meinen Augen ein Designfehler. Ich rate niemandem zu wenig Speicher UND kein SWAP, aber ein SWAP kann auch nicht die Dauerlösung sein, um Speichermangel zu kompensieren. Rüste ich Speicher nach, muss es irgendwann auch genug sein, dass es ohne SWAP läuft.

Ich sehe allerdings (wir hatten das ja bei der letzten Diskussion schon als Kuriosum angesprochen), dass es tatsächlich Systeme gibt (Knoppix zB), die einen SWAP im RAM anlegen! Hier geht es also wirklich nicht darum, dass nicht ausreichend Speicher vorhanden wäre, sondern ganz offenbar haben die Macher dieser Systeme andere Beweggründe, weshalb sie nicht auf SWAP verzichten möchten. Wie soll ich das nun nennen? Es merkt hoffentlich jeder, wie verkehrt das ist. Aus Angst, ohne SWAP Probleme zu haben, zweige ich sogar einen Teil meines Speichers dafür ab? Regelrecht pervers, oder?

Vielleicht, wenn mehr Leute es mal probieren würden, dann käme vielleicht irgendwann ein Umdenken in Gang und man würde vielleicht Systeme so bauen, dass sie bei ausreichend Speicher auch ohne SWAP auskommen und man nicht Angst davor haben muss, dass die Kiste einem abschmiert.
 
@-Nuke- Wie sieht es eigentlich mit einer Kombination von Swap Partition und Datei aus? Also Beispiel ich sage 2 GB möchte ich als Partition für den Swap nutzen und den Rest dynamisch in einer Datei je nach Bedarf? Ist da der Kernel so "intelligent" das sinnvoll zu nutzen?

So hätte man ja die Sicherheit eines verfügbaren Speichers und unter Stress kann das System noch weiter eine Datei anlegen.
 
dann ist die SW doch falsch geschrieben.

Nö, du hast einfach Software mit dynamischen Speicheranforderungen. Wie bei so ziemlich jeder kreativen Software auf der Welt. Und bei Blender in den Subdivisions aus versehen 22 eingeben statt 2, oder sich bei bei den Modifiern verklicken ist überhaupt kein Problem. Das macht RAM-Verbrauchs Unterschiede von ein paar GB. Muss nicht mal ein Fehler sein. Ich will teilweise auch einfach sehen wie gut ein Modell unter bestimmten Einstellungen ist. Da will ich nicht vorher mit Taschenrechner sitzen und überlegen "passt das noch in meinen RAM oder stürzt dann irgendwas zufällig in meinem OS ab?" Ich will auch nicht provisorisch bei den aktuellen irrwitzigen RAM-Preisen einfach sinnlos viel RAM in den PC bauen, nur um auf sowas banales wie eine Swap-Datei zu verzichten.

Ich sehe allerdings (wir hatten das ja bei der letzten Diskussion schon als Kuriosum angesprochen), dass es tatsächlich Systeme gibt (Knoppix zB), die einen SWAP im RAM anlegen! Hier geht es also wirklich nicht darum, dass nicht ausreichend Speicher vorhanden wäre, sondern ganz offenbar haben die Macher dieser Systeme andere Beweggründe, weshalb sie nicht auf SWAP verzichten möchten. Wie soll ich das nun nennen? Es merkt hoffentlich jeder, wie verkehrt das ist. Aus Angst, ohne SWAP Probleme zu haben, zweige ich sogar einen Teil meines Speichers dafür ab? Regelrecht pervers, oder?

Swap im RAM hat ganz andere Beweggründe. Komprimierte Swap-Speicher (zram) im Hauptspeicher geben dir effektiv mehr Arbeitsspeicher und bei Geräten mit nur 1-2GB RAM ist das ziemlich essentiell dafür, dass die Teile überhaupt so gut funktionieren. So ziemlich jedes Smartphone auf der Welt arbeitet auf diese Weise.

Vielleicht, wenn mehr Leute es mal probieren würden, dann käme vielleicht irgendwann ein Umdenken in Gang und man würde vielleicht Systeme so bauen, dass sie bei ausreichend Speicher auch ohne SWAP auskommen und man nicht Angst davor haben muss, dass die Kiste einem abschmiert.

Es ist halt relativ sinnlos auf Swap-Speicher zu verzichten. Es bringt dir keinerlei Vorteile. Wenn du das für dich möchtest ist das ja schön und gut, aber es ist halt prinzipiell sinnlos es in jedem Swap-Speicher Thema immer wieder hervorzuholen, dass du kein Swap-Speicher benutzt und es als quasi sinnlos hinzustellen.
Der ganze Kram funktioniert bei dir schlicht und ergreifend nur, weil du keinerlei Anforderungen an deinen Arbeitsspeicher stellst. Trotzdem kann sich jeder mit Swap-Speicher diese Blender-Datei angucken. Du aber nicht. Das schränkt dich halt ein. Genauso wird dir vermutlich ein Gigapixel-Bild das System runterreißen. Bei anderen nicht.

@-Nuke- Wie sieht es eigentlich mit einer Kombination von Swap Partition und Datei aus? Also Beispiel ich sage 2 GB möchte ich als Partition für den Swap nutzen und den Rest dynamisch in einer Datei je nach Bedarf? Ist da der Kernel so "intelligent" das sinnvoll zu nutzen?

Ich weiß gerade gar nicht ob FreeBSD Swapfiles dynamisch verhalten kann. In Regel legt man eine Datei mit fester Größe an und dann wird das eben so benutzt. Ich weiß gerade nur, dass es für Linux u.a. für die Raspberry Pis einen Dienst gibt der je nach Auslastung dynamisch Swapfiles anlegt über dphys-swapfile. macOS macht das ja auch so, beginnend mit einer 64MB Datei. Sowas sollte an sich auch unter FreeBSD funktionieren, hat aber vermutlich noch nie jemand portiert, mangels Bedarf.
 
Das Problem bei Systemen ohne Swap sind Extremsituationen. Einmal ein Beispiel: Das System hat 8 GB RAM und macht im Moment nicht viel. ZFS und andere Caches belegen 5 GB, Firefox noch mal 1,5 GB. Der Rest ist Kleinkram oder leer. Also ist alles in Ordnung, das System schnurrt wie eine kleine Katze. Nun kommt der Nutzer auf die Idee seine Windows-VM zu starten. Windows ist gierig, schnappt sind schon beim Boot innerhalb von ein paar Millisekunden gute 4GB. Das System reagiert darauf, indem es Caches freigibt. Das ist aber träge, die Chancen sind gut, dass die VM schneller Speicher anfordert, als das System freigeben kann. Ohne Swap gibt das einen bösen Schluckauf, bis hin zum OOM-Killer. Mit Swap hat das System die Möglichkeit sich einigermaßen sanft zu reorganisieren. Da 2 oder 4 GB Swap-Partition niemanden weh tun, halte ich es aufgrund solcher Situationen für mittelgroßen Wahnsinn ganz ohne Swap zu arbeiten.
 
Ich weiß gerade gar nicht ob FreeBSD Swapfiles dynamisch verhalten kann.
Kann es nicht. :) FreeBSD füllt Swap stumpf von vorne nach hinten. Wenn man die Partition vor der Datei einhängt, wird die Partition zuerst gefüllt. Grundsätzlich müssen Partitionen und Dateien dazu statisch sein, der Speicher also im Moment des Einhängens reserviert sein. Daher kann man Swap-Dateien auch nicht per truncate(1) erstellen (das hat interessante Effekte), es muss mit dd(1) geschehen.

Nachtrag: Bei Swap-Dateien auf ZFS muss man beachten, dass ZFS zum Schreiben RAM benötigt. Das kann in Extremsituationen zum Deadlock führen. Das System hat gar keinen Speicher mehr frei -> Will in die Swap schreiben -> ZFS braucht dafür aber Speicher -> Wartet ewig auf Speicher, der nie kommen wird. Das ist aber eher theoretisch zu sehen.
 
aber es ist halt prinzipiell sinnlos es in jedem Swap-Speicher Thema immer wieder hervorzuholen, dass du kein Swap-Speicher benutzt und es als quasi sinnlos hinzustellen.
Das verstehe ich und sehe es ein. Es war mir auch schon mulmig, als ich diesmal von meiner Emotion getriggert wieder einfach in die Tasten haute. Das wollte ich ja eigentlich nicht mehr. Es geht allerdings nicht darum, mein Beispiel als leuchtend darzustellen, sondern schlicht darum, dass ich offenbar etwa nicht begreife oder hier extrem auf stur geschaltet bin. Ich meine, wo du und auch Yamagi sich doch immer redlich bemühen, es mir zu erklären.

Trotzdem kann sich jeder mit Swap-Speicher diese Blender-Datei angucken. Du aber nicht.
Das verstehe ich eben nicht. Also, nicht etwa, dass ich jetzt die Datei unbedingt ansehen möchte. Aber, wenn ich einen PC mit nur 4G RAM habe und dann 4G SWAP hinzunehme, wieso geht es dann damit, aber mit meinen 8G RAM ohne SWAP bricht dem System der Todesschweiß aus, weil ich keinen zusätzlichen SWAP benutze? Ich müsste ja dann für solche "Killeranwendungen" vorsorglich immer mal einen SWAP von mehreren zig GB bereithalten, um für den Fall der Fälle gerüstet zu sein, denn mein 4G SWAP mit 4G RAM kann da ja auch nicht lange helfen.

Ich selbst benutze deshalb keinen SWAP, weil es auf meinem System gemütlich zugeht (vor allem, seit ich nur noch Pakete nutze) und ich gesehen hatte, dass dann, wenn SWAP vorhanden ist, dieser auch genutzt wird. Das System fängt bei längerer Laufzeit irgendwann an zu swappen. (Das habe ich nicht im aktuellen FreeBSD angesehen, aber in einigen Versionen davor und bei Linux). Der SWAP wird ziemlich lange befüllt gehalten und ich glaube, dass das System zu dieser Zeit auch langsamer wurde. Ich hatte nicht den Eindruck, dass das System versucht, SWAP schnell wieder frei zu geben, obwohl ausreichend RAM (wieder) verfügbar gewesen wäre.
 
Pit,

ich werde auf meinem TP mit 4 GB RAM Swap deaktivieren, dann mit audacity 2 GB große Audios bearbeiten und abwarten, wie lange das gut geht :D

Das Ergebnis werde ich dann hier posten.
 
Das verstehe ich eben nicht. Also, nicht etwa, dass ich jetzt die Datei unbedingt ansehen möchte. Aber, wenn ich einen PC mit nur 4G RAM habe und dann 4G SWAP hinzunehme, wieso geht es dann damit, aber mit meinen 8G RAM ohne SWAP bricht dem System der Todesschweiß aus, weil ich keinen zusätzlichen SWAP benutze? Ich müsste ja dann für solche "Killeranwendungen" vorsorglich immer mal einen SWAP von mehreren zig GB bereithalten, um für den Fall der Fälle gerüstet zu sein, denn mein 4G SWAP mit 4G RAM kann da ja auch nicht lange helfen.

Klar, wenn dein RAM+Swapspace auch nicht ausreicht, dann hilft es bei nicht-dynamischen Systemen auch nicht. Aber du kannst das Problem relativ simpel lösen, indem du einfach ein weiteres Swapfile anlegst. Ich persönlich habe Aufgrund von Blender 32GB Swap-Space. Der war auch schon mal zu 22GB hoch gefüllt. Bevor Blender den aber (versehentlich) gefüllt bekommt, hab ich das Programm aber längst abgeschossen, weil die Performance bis dahin in den Keller gegangen ist. Da musste ich nicht darauf hoffen, dass der Kernel den richtigen Prozess killt.

Ich selbst benutze deshalb keinen SWAP, weil es auf meinem System gemütlich zugeht (vor allem, seit ich nur noch Pakete nutze) und ich gesehen hatte, dass dann, wenn SWAP vorhanden ist, dieser auch genutzt wird. Das System fängt bei längerer Laufzeit irgendwann an zu swappen. (Das habe ich nicht im aktuellen FreeBSD angesehen, aber in einigen Versionen davor und bei Linux). Der SWAP wird ziemlich lange befüllt gehalten und ich glaube, dass das System zu dieser Zeit auch langsamer wurde. Ich hatte nicht den Eindruck, dass das System versucht, SWAP schnell wieder frei zu geben, obwohl ausreichend RAM (wieder) verfügbar gewesen wäre.

Entweder etwas ist im Swapspace und damit deaktiviert oder etwas ist im RAM und wird benutzt. Es wird nichts vom Swapspace ausgeführt, denn das geht technisch gar nicht. Soll heißen: Nur weil etwas im Swap ist, wird dein System garantiert nicht langsamer, weil sonst wäre es hinterher nämlich nicht mehr im Swap.

Linux hat einen Swappiness Parameter, wenn der auf 0 gesetzt wird Swap-Nutzung soweit es nur geht vermieden. Bei FreeBSD weiß ich es gerade nicht (Parameter kommen und gehen hier sehr schnell). Wenn etwas im Swapspace liegt, dann hatte das in der Regel einen guten Grund. Entweder wurde schon ewig nichts mehr benutzt und es wurde Platz für Caches und Co. gemacht oder du warst eben wirklich hart an der Grenze von einem Out-of-Memory. Performance-Einbußen wirst du nur einmalig und kurzzeitig feststellen können, wenn du wirklich auf einen ausgelagerten Prozess zugreifst. Der muss dann eben fix eingelagert werden. Für dauerhaft feststellbare geringe Performance müsste so ziemlich jeder deiner Prozesse ausgelagert sein, konstant und immer wieder. Ist dann doch arg unwahrscheinlich.

Wie gesagt, mir ist es auch relativ egal was du mit deinem System und deinen Daten machst. Mich stört eher, wenn weniger Erfahren Leuten erzählt wird, ein Swapspace wäre unnötig, ohne deren Workload zu kennen. Für deinen Minimal-Workload ohne kreative Anwendungen mag ja bisher alles gut gegangen sein, aber für andere kann das zum Systemcrash und Datenverlust führen. Den Ärger und Verlust hat dann der Nutzer und nicht du.
 
Ich fahre und fuhr nie ohne Swap, OS egal. Meine Erfahrung: bei langen Uptimes wird irgendwann geswappt.

Konkrete Frage: Kann ich mir trotz Swap bei FreeBSD das System totschießen (Crash) mit irgendeiner Workload oder heißt das nur die Performance geht in den Keller?
Anders gefragt: ohne Swap KANN und wird mir die Möhre irgendwann wegschmieren, ist klar. Gilt hier mit Swap (egal wie groß) auf der sicheren Seite oder Swap kann nicht groß genug sein?

Akutes Beispiel: Kompilieren von www/webkit-gtk2. 6gb Ram in der Kiste, zu 74% belegt. Swap 2gb zu 67% belegt.
 
Klar kann dir die Kiste auch wegsemmeln, wenn dir der Swap ausgeht. Der Speicher muss halt für die gegebene Aufgabe ausreichen. Und wenn poudriere anfängt das JDK, VirtualBox und GCC parallel zu bauen, kann man nie genug Speicher haben. :D
 
Ich fahre und fuhr nie ohne Swap, OS egal. Meine Erfahrung: bei langen Uptimes wird irgendwann geswappt.

Konkrete Frage: Kann ich mir trotz Swap bei FreeBSD das System totschießen (Crash) mit irgendeiner Workload oder heißt das nur die Performance geht in den Keller?
Anders gefragt: ohne Swap KANN und wird mir die Möhre irgendwann wegschmieren, ist klar. Gilt hier mit Swap (egal wie groß) auf der sicheren Seite oder Swap kann nicht groß genug sein?

Akutes Beispiel: Kompilieren von www/webkit-gtk2. 6gb Ram in der Kiste, zu 74% belegt. Swap 2gb zu 67% belegt.

Als Fallbeispiel: Wir haben hier einen Server mit 512GB RAM und 64 cores. Der war letztens "zu" - einloggen sehr langsam. Sogar der Swap Bereich von über 500GB zu 75% belegt. "Schuld" war muscle - ein Alignment Program - es liefen davon 4 Prozesse, jeder mit weit über 200GB RAM Nutzung. Nach einem Neustart war alles wieder ok. Ohne Swap wäre die Maschine schon vorher unbrauchbar gewesen...

Grüße, Norbert
 
@-Nuke-

vielen Dank für deine Erklärungen und die Mühe, die du dir damit gemacht hast.
Ich fühle schon, dass das irgendwie eine nachhaltige Wirkung entfaltet. Der Stachel sitzt da allerdings noch viel tiefer bei mir und hat auch nicht wirklich oder nicht nur etwas mit SWAP zu tun. Es ist hier natürlich nicht der Platz, meine psychischen Defizite auszubreiten und zu behandeln, aber es ist mitunter doch eine gute Form der Therapie, vor allem, wenn man dann solche Antworten bekommt, wie von dir.
 
Zurück
Oben