1/3 Ram Auslastung - und trotzdem swap-Nutzung?

H

holgerw

Guest
Hallo,

mein Quadcore-System, auf welchem ich u.a. auch mit poudriere meine Repos baue, hat mittlerweile 12 GB Ram.

Nun zeigt mir htop eine maximale Auslastung meines Arbeitsspeichers von ca. 4 GB an, und trotzdem krallt sich das System 1 GB zusätzlich von meiner 8 GB Swap-Partition.

Ich dachte, der swap ist nur eine Notreserve, wenn der physkalische Ram qua starker Auslastung zur Neige geht (bei einer nur 1/3 Nutzung kann davon gar keine Rede sein).

Ist das normal? Kann ich Swap ganz weglassen und bremst gar vorhandener Swap das System aus?

Viele Grüße,
Holger
 
Swap-Strategien sind eine komplexes Thema und zu jeder Möglichkeit gibt es Pro- und Contra-Argumente. Windows folgte bis einschließlich 8.1 dem "nutze die Swap früh und reichlich Ansatz", Linux hingegen in Standardeinstellung eher "vermeide die Swap wie die Pest". Aktuelle FreeBSD-Versionen und Windows Nummer 10 sind irgendwo im Mittelfeld. Sie haben einerseits ihre Hemmungen zu swappen, vermeiden es aber andererseits auch nicht auf Teufel komm raus. Es ist schon daher ganz normal, dass sich auch auf Systemen mit wenig RAM-Bedarf mit der Zeit ein Teil der Swap füllt. Vor allem wird nicht aktiv entswapt. Wenn Daten erstmal in die Swap geschrieben sind, bleiben sie dort bis es einen Grund gibt sie zurück in den RAM zu laden.

Ich würde nun vermuten, dass Poudriere das System in die Swap gedrückt hat. Denn es gibt Ports die zum Bauen Unmengen RAM benötigen. Das krasseste Beispiel ist derzeit sicher Chromium, wo man locker im zweistelligen Gigabyte-Bereich landet. Was du nun in der Swap siehst, ist der Bodensatz, der zwar im RAM liegt, aber nicht benötigt wird. Teile von FreeBSD selbst, vom Desktop, Browserfenster im Hintergrund, etc. Sowas halt. Das ist nicht schlimm und tut niemanden weh.

Man sollte, auch wenn einige Leuter immer wieder anderes behaupten, das System sofern irgendwie möglich auch nicht ohne Swap betreiben. Denn die Swap gibt dem System mehr Möglichkeiten Entscheidungen hinsichtlich der RAM-Nutzung zu treffen, macht es damit agiler. Und auch kleine Swaps können sehr dabei helfen, dass einem in Situationen mit hohen RAM-Bedarf - gerade wenn sie plötzlich und unvorhersehbar auftreten - nicht der Out of Memory Killer besucht und den einen oder anderen Prozess wegschießt. Die Frage ist eher, wie viel Swap man nehmen sollte, denn die Verwaltung der SWAP kostet wieder RAM... Die alte Regel "RAM * 2" ist definitiv überzogen, meist liegt man je nach Nutzungsprofil mit 2GB (wenig RAM-Auslastung) bis 8GB (sehr hohe RAM-Auslastung) gut. Und wenn das System regelmäßig viele Daten in die Swap schreibt, sollte man über noch mehr RAM nachdenken. Wobei du mit 24GB schon gut dabei bist und der Spielraum zum Maximalausbau von 32GB (Oder war es ein DDR4-System? Dann wären es 64GB.) begrenzt ist.
 
Hallo @Yamagi

vielen Dank für die - wie immer - sehr ausführliche Erklärung.

Dann lasse ich es einfach so wie es ist. Mit 12 GB DDR3 (1333 Taktung) fahre ich erstmal gut, ein weiterer 4 GB Riegel ist sicher nicht verkehrt. Und da ich mit poudriere meine Repos baue, sind ja dann 8 GB Swap auch passend.

Viele Grüße,
Holger
 
Achso, nur 12GB. Irgendwie kam ich im Halbschlaf auf 24GB. Da wäre ja durchaus noch Luft. Ansonsten ist es auch ein guter Tipp Poudriere in eine VM zu sperren. Denn dann hält er seine klebrige Finger komplett aus dem restlichen System heraus.
 
Hallo Holger

Ich habe dir als Vergleich mal mein System, mit welchem ich in der Firma Pakete baue. Es ist eine VM mit folgenden Einstellungen:
  • FreeBSD 11 RELEASE mit ZFS
  • 1 HDD
  • 8 CPU's
  • 8 GB RAM
  • SWAP 4GB
Die VM läuft seit 14 Tagen und zeigt aktuell folgende Werte (kein Build läuft):
Code:
  Mem[|||||||||||||||||||||||||||||||||||||||||  2.30G/7.97G]
  Swp[|  14.0M/4.00G]
Du siehst auch ich habe dieses Verhalten. Es spielt auch keine Rolle, ob ich 12GB RAM habe. Das bauen der Pakete ist halt nicht trivial und wie @Yamagi schon sagte, würde ich auf eine SWAP Partition nicht verzichten wollen.
 
Hallo,

danke Euch, also heißt das:

Swap zu haben schadet auf keinen Fall, selbst wenn er - bei nur schwacher Ram-Auslastung - mal partitiell genutzt wird.

Keinen Swap zu haben geht zwar - gerade bei viel vorhandenem Ram - meist gut, bei Ram-Auslastung kann man unter Umständen aber Ärger bekommen :D

Na dann lass ich die 8 GB swap bestehen und genehmige mir demnächst noch einen 4 GB Ram-Riegel.

Viele Grüße,
Holger
 
Falls TMPFS in poudriere.conf aktiviert ist kann man das anpassen. Also wenn man das auf "all" hat kann man das mal nur auf "yes" zu setzen oder ganz abzudrehen. Der Hintergrund dazu ist, dass wenn Memory übrig ist das meist als dynamischer Cache bei Reads sinnvoller genutzt werden kann. In den meisten Fällen (mir fällt spontan keiner ein, wo das anders wäre) sind die Writes in der Build-Phase/beim Kompilieren nichts was ein Bottleneck ist. Nur vor und potentiell auch nach dem Build hast du einige Writes, weil das System mit den Dependencies bestückt wird. Gerade im Desktopbereich sind das teilweise ziemliche Mengen an Libs und Build Tools.

Kurzum: Je nach Verfügbarkeit von Memory (und auch Geschwindigkeit der Platte) macht es Sinn die Daten nicht ins TMPFS zu sperren sondern die RAM mit normalem Caching vielleicht sinnvoller zu nutzen.
 
Auch wenn durch Buildprozesse irgendwas ins Swap gedrückt werden sollte, ist es nicht weiter schlimm, wenn es gebraucht wird, ist es nach einem langsamen swapout schon wieder im RAM (der ja dann wieder frei ist). Allerdings vermisse ich schon unter *BSD eine funktionalität wie swappiness unter Linux, oder hab ich da in letzter Zeit was an Entwicklung verpasst?
 
Eigentlich finde ich das System bei FreeBSD besser. Es ist generell klüger per Default (zumindest in aktuellen Versionen) und vor allem kann man einstellen, was man wirklich will. Vielleicht hab ich's unter Linux nur nicht gefunden. Ist auch schon eine Weile her, dass ich mich damit unter Linux beschäftigen musste.

Hattest du damit echt schon mal Probleme unter FreeBSD? Also was wo du das tatsächlich ändern wolltest, weil du wusstest, dass es für den Betrieb des Systems was bringen würde?

Ich habe das persönlich noch nie vermisst, aber unter Linux schien mir die Verwenden teilweise ziemlich stumpfsinnig. Das kann aber auch an den Admins gelegen haben, mit denen ich zu tun hatte. Ich will da gar nicht behaupten, dass Linux da was falsch macht. Häufig hat es entweder nichts gebracht hat oder war gar kontraproduktiv, wenn man nachgemessen hatte. Bzw. wurde es oft wie eine Bauernregel verwendet. Wenn man was mit Memory hat dann schraubt man da mal irgendwie herum. Teilweise hätte man gleich keine Swap-Partition aktivieren können.

Ja, ich weiß schon, man will nicht, dass die DB im Swap landet, wenn es quasi nur darum geht wie schnell die ist, aber zumindest bei dem was ich in der Realität gesehen habe ist es meist einfach ein auf gut Glück umstellen gewesen. Ich lasse mich da aber gerne eines besseren Belehren, wenn man das irgendwie gezielt nutzen kann.

Aber zurück zu FreeBSD. Da habe ich zumindest ein wenig Erfahrung und die sieht so aus, dass man eigentlich was bestimmtes erreichen will und dem entsprechend eine dieser sysctls setzen will.

vm.disable_swapspace_pageouts # in STABLE nicht mehr. Hat vielleicht was mit der neuen Laundry Memory Queue zu tun
vm.swap_idle_enabled
vm.swap_idle_threshold1
vm.swap_idle_threshold2 # Das hier entspricht glaube ich am Meisten der Swapiness, bzw. was man damit erreichen will, auch wenn es nicht genau das Selbe ist
kern.ipc.shm_use_phys # Sehr interessant für unterschiedliche DBs


Allerdings hat das alles nicht wirklich was mit poudriere zu tun, sondern betrifft (wie auch Swappines unter Linux) eher Anwendungsfälle wo man eben sowas wie DBs und manche andere Anwendungen lang laufen hat und beeinflussen will, was im Memory ist und was nicht.

Zumindest halte ich es für unwahrscheinlich, dass im Buildprozess etwas geswapped wird, was tatsächlich unnötig ist, wenn man ein aktuelles FreeBSD hat, kein TMPFS nutzt und nicht an irgendwelchen Settings in der Richtung gedreht hat. Da ist FreeBSD mal rein empirisch ziemlich gut. Natürlich je nach Anwendungsfall, aber beim Kompilieren, wenn viel RAM gebraucht wird haut der Hintergrundprozesse raus, die ich tagelang nicht berühre, der Buildprozess wird dadurch also real verschnellert. Auf einem Desktopsystem gibt's halt leicht mal ein paar Programme, die man sehr, sehr selten tatsächlich nutzt aber mitgestartet werden.

Ich weiß jetzt nicht wie das unter htop ist (verwende selber top oder glances), aber dir sollte angezeigt werden welche Prozesse geswapped wurden. Unter top ist das in spitzen Klammern.

EDIT: Eine Sache noch, die man bei all dem nicht vergessen darf. Dass etwas in der Swap gespiegelt wird heißt NICHT, dass es nicht mehr in der Memory liegt. FreeBSD spiegelt mitunter Prozesse (aus der Inactive Memory Queue), damit diese Bereiche dann schnell frei gemacht werden können. Wenn das nicht passiert muss FreeBSD die nicht wieder lesen. Das heißt selbst wenn du Swap in Verwendung hast heißt das nicht, dass ein Zugriff auf das Programm, dass da hinein gespiegelt wurde mühsam von der Platte gelesen werden muss, weil es potentiell immer noch in der Memory verfügbar ist.

Soll heißen, dass Swap genutzt wird ist gut, und nicht schlecht. Wenn es schlecht ist ist die Lösung für gewöhnlich mehr Memory, deshalb sehr gut überlegen bevor man beginnt an sysctls zu drehen. Das ist in den aller meisten Fällen nämlich kontraproduktiv.
 
Da ich beruflich doch zu ca. 80% mit Linux arbeite, habe ich in diesem Umfeld schon das eine oder andere mal mit den Memory-Optionen gespielt. Wie du schon angedeutet hast natürlich bei DBs, aber auch z.b. bei JVMs die den ganzen RAM allocieren, um nur selten den GC starten zu müssen ist es ganz nützlich. Auch bei NUMA Systemen kann ich beeinflussen, auf welcher "CPU Seite" der RAM benutzt werden soll. Sowas habe ich bisher immer in BSD vermisst. Aber danke für deine Antwort, mal wieder was zum Einlesen :)
 
Das Speichermanagement bei FreeBSD ( aber auch bei OSX ) ist mittlerweile so komplex und somit undurchsichtig, dass es auf die Fragen:
- Swap ja / Nein?
- Swap im Zpool oder extra Partition?
- Tmpfs ja / nein?
- ccache ja / nein?
- bei ja Antworten wie groß Bzw wo max
Unglaublich viele unterschiedliche und auch
gegensätzliche Antworten gibt.
Ich bin da auch regelmäßig unsicher
 
mein eigener Weg als unverbesserlicher Sturkopf ist es, einfach mal zu probieren.
Ich glaube schon, die Gründe für SWAP zu verstehen, aber ich habe auch meine Gründe, darauf ganz zu verzichten.
Zum Beispiel kompiliere ich nichts und ich betreibe Rechner nicht professionell, es macht gar nichts, wenn sie mal crashen (was sie aber bisher niemals wegen zu wenig SWAP taten) und ich habe auch nicht das Gefühl, dass mich nicht vorhandener SWAP ausbremst.
Meine Argumente will ich hier nicht nennen, es sind keine fundierten Systemkenntnisse darin enthalten.

Man kann ja den SWAP auch im laufenden Betrieb einfach mal testweise abschalten und zusehen, was dann so passiert. Das ist doch absolut naheliegend, dass ich das einfach mal probiere, wenn ich es wissen will.
Außerdem möchte ich noch ein Gedankenspiel spielen.
Man kann ja außer SWAP direkt auch ein SWAP-File anlegen und benutzen. Das kann man zur Laufzeit tun und ist so ziemlich flexibel und kann sehr einfach Dinge testen und zusehen, was denn passiert. Ich selbst habe es noch nie probiert, aber was wäre, wenn ich solch ein SWAP-File auf ein tempfs lege und somit wieder in den RAM zurück? Anstatt 2G irgendwo verfügbar zu machen, reserviere ich einfach ein wenig RAM.
Alles andere, wofür wir über die Jahre SWAP gebraucht hatten, brauche ich nämlich überhaupt nicht und meine Erfahrung sagt mir, dass ich ohne SWAP gut leben kann. Mein kleiner Asus ist im Augenblick mein meistbenutzter PC und hat ein 32Bit System mit 2G RAM ohne SWAP und ich habe darauf Claws neben Seamonkey und LibreOffice laufen und sehe mir dann damit auch gleichzeitig noch einen Film an. Das macht er vollkommen klaglos und in Anbetracht der schwachen HW auch relativ flüssig mit. So what? SWAP hinzufügen, damit er dann irgendwas noch besser macht? Und wie könnte ich das merken?

Nur, damit ich nicht falsch verstanden werde: ich will nicht meine Entscheidung Anderen empfehlen oder nahelegen. Ich will nur zeigen, dass man auch einen eigenen Weg gehen kann, sei es auch nur aus Sturheit und dass man sich trauen sollte, auch mal etwas selbst zu probieren. Wenn das Umfeld das erlaubt.
Ein einfaches swapoff genügt für einen ersten Test. Ich wette, es wir nichts passieren und niemandem etwas auffallen.
Sollte das System im Laufe der Zeit träge werden, einfach SWAP wieder einschalten oder ein SWAP-File anlegen und dann sollte ja alles wieder schnell werden und damit eindeutig zeigen, ob oder wie und wieviel SWAP einen Sinn für einen selbst macht.
Das ist ja so cool, dass man das direkt zur Laufzeit testen und für sich selbst herausfinden kann.
 
Nur falls es anders rüber kam. Ich stimme zu, Dinge zu testen, wollte aber nahelegen das dann auch wirklich gründlich zu testen und wenn möglich nicht nach Gefühl zu arbeiten.

Achja, und falls man das in einem Jahr liest oder so: Diese Dinge ändern sich auch sehr schnell. Zum Beispiel wurde PQ_LAUNDRY eingeführt. Das war Anfang November noch in einem separaten Branch (also nicht mal in head/current), aber ist mittlerweile Teil vom kommenden 11.1-Release und soll das Verhalten von Swapping verbessern.

Swap in dem Fall, das Prozesse in die RAM passen kann sich manchmal deshalb auszahlen, weil ein Prozess der nichts tut, sondern nur wartet potentiell RAM belegt, die neben dem Prozess selbst noch als Read-Cache für Daten auf der Platte verbrauchen kann. Bzw. sollte es ein Auf und Ab sein, was am Desktop eher der Fall ist und man doch mal mehr am laufen haben kann das System das oben angesprochene Mirroring machen, damit man dann nicht erst drauf warten muss, dass die Daten auch auf der Platte liegen bis sich wieder was tut. Ob das tatsächlich auftritt ist Sache der Last.

Merken würdest du die beiden Fälle entweder dadurch, dass etwas mit Disk-Access schneller passiert oder dadurch, dass solltest du mal einen Engpass haben du nicht kürzer warten musst.

Nur, wenn das System durch das vorhanden sein durch Swap tatsächlich einen Performance-Einbruch hat würde ich mir überlegen einen Bug-Report zu schreiben.

Zur Frage ob man ohne Swap leben kann: Klar.

Das würde ich trotzdem nur dann machen, wenn einem die paar GiB wichtig genug sind oder man einen tatsächlichen Grund hat. Mal abgesehen von Bug oder schlechter Konfiguration sollte Swap nicht schaden und potentiell was bringen. Wird Swap eigentlich noch für Kernel Crashes gebraucht? Ich bilde mir ein schon mal was gelesen zu haben, dass man auch dafür sorgen will, dass es auch ohne funktioniert.
 
- Swap ja / Nein?
- Swap im Zpool oder extra Partition?
- Tmpfs ja / nein?
- ccache ja / nein?
- bei ja Antworten wie groß Bzw wo max
  • Ja, auf jeden Fall eine Swap. Sie muss nicht mal groß sein, aber gibt dem System in kritischen Situationen mehr Luft. Und wie @Athaba schon andeutet. Was sind schon ein paar Gigabyte? Ob man nun 2 Gigabyte für eine Swap abzwackt, ändert nichts. Wenn man seinen SSD-Speicher so knapp kalkuliert, hat man noch ganz andere Probleme... Aber sie können den Unterschied machen, ob der Out of Memory Killer zuschlägt oder nicht. Oder ob das System schlicht und ergreifend am Speichermangel deadlockt.
  • Keine Swap im Zpool und - zumindest wenn Systemstabilität über alles geht - auch nicht auf GELI. Denn sowohl ZFS als auch GELI benötigen für jedes Ausschreiben von Daten RAM. Das führt zu Ressource Deadlocks: Das System hat keinen Speicher mehr frei. Keinen einzigen Block Kernelspeicher. Nun kommt eine Operation, die Speicher benötigt, sie blockiert bis Speicher verfügbar ist. Das System will eine Page in die Swap schreiben, um sich Luft zu verschaffen. Dabei fordern ZFS und / oder GELI Speicher an, die Anforderung blockiert, bis Speicher frei wird... GELi ist recht genügsam, daher ist das Risikk gering. ZFS ist aber gierig.
  • tmpfs kommt drauf an. Ich habe den Sinn nie verstanden. Wenn ein Speichermedium nicht abkann, dass /tmp auf ihm liegt, gehört es in die Rundablage. Außerdem ist RAM meist besser in Caches investiert, als in temporären Dateien, die zügig von der SSD gelesen werden können. Speziell bei Poudriere kommt es letztendlich drauf an, wie schnell das Speichermedium ist. Läuft Poudriere auf einer lahmen, mechanischem Festplatte, bringt es enorm viel. Läuft er aber auf schnellen NVMe-SSDs, ist der Geschwindigkeitsgewinn vernachlässigbar.
  • ccache bei Poudriere sehe ich als etwas "Bringt vielleicht nicht viel, aber tut auch nicht weh". Muss aber jeder selber wissen.
  • Bei der Größe sage ich immer, dass die Swap ein letztes Mittel ist. Früher war RAM unendlich teuer, Festplatten im Vergleich aber billig. RAM war immer knapp, dass System daher immer am swappen, folglich brauchte man große Swaps. Heute aber ist RAM billig. Also reichen 2 Gigabyte Swaps völlig aus. Wenn man damit ans Limit läuft, ist es in jedem Fall besser RAM nachzukaufen, als sich über eine zu kleine Swap zu ärgern
Wird Swap eigentlich noch für Kernel Crashes gebraucht? Ich bilde mir ein schon mal was gelesen zu haben, dass man auch dafür sorgen will, dass es auch ohne funktioniert.
Ja, wird es. Und ich glaube auch nicht, dass es eine gute Idee wäre einen gecrashten Kernel noch in ein Dateisystem schreiben zu lassen. :)
 
Wird Swap eigentlich noch für Kernel Crashes gebraucht?
selbst wenn: ich kann mit den Logs ohnehin nichts anfangen.

aus top vom aktuellen Rechner, nach gerade mal drei Tagen Uptime und zwei laufenden Browsern, laufendem Claws und LibreOffice plus einigen Kleinigkeiten und nachdem ich mehrmals auch Gimp gestartet und wieder geschlossen hatte, nachdem ich mit meinen Bildern fertig war:
Code:
Mem: 275M Active, 2063M Inact, 4857M Wired, 155M Buf, 669M Free
Daran wird sich in den nächsten Tagen nichts mehr wesentlich ändern, wenn nicht Firefox mal wieder etwas startet, was da irgendwie ins Speicher-Nirvana driftet. Von den vorhandenen 8G des AMD64-Systems sind nur 275M echt aktiv in Gebrauch. Alles Weitere ist gescheites Nutzen der vorhandenen Ressourcen.
Natürlich kann das total anders aussehen, wenn jemand eine ganze Menge aktive Prozesse startet, viele Gäste bedienen muss und SW kompiliert. Auch bestimmte SW, wie manche Spiele, können allerhand Speicher schlucken, vollkommen klar. Ich habe für mich, auf meinen Desktop-Systemen, keinen Vorteil von SWAP gehabt oder zumindest keinen gespürt.
Wie zum Eingang dieses Beitrags angedeutet, gibt es einige weitere Gründe für SWAP, die nicht mit der Speicherverwaltung des Systems zu tun haben. Da kann jemand auch sehr sehr gute Gründe für einen SWAP haben. Aber bei mir kam auch da nichts zum Tragen und deshalb probierte ich zunächst, aber nutze nun schon seit Jahren alle meine Rechner ohne SWAP.

Nun lege ich mal ein Swapfile an und binde es ein, mal sehen, wie sich das entwickeln wird:
Code:
# dd if=/dev/zero of=/swapfile bs=1024 count=1048576
# ll /swapfile
-rw-r--r--  1 root  wheel  1073741824 18 Juni 19:01 /swapfile
# mdconfig -a -t vnode -f /swapfile -u 0 && swapon /dev/md0
aus top:
Code:
Mem: 284M Active, 2013M Inact, 4910M Wired, 155M Buf, 657M Free
Swap: 1024M Total, 1024M Free
htop:
Code:
  1  [||                                                 2.1%]   Tasks: 60, 0 thr; 3 running
  2  [|                                                  1.0%]   Load average: 0.20 0.31 0.37 
  Mem[||||||||||||||||||||||||||||||||||||||      1.77G/7.90G]   Uptime: 3 days, 08:56:01
  Swp[                                               0K/1024M]

Ich lasse das mal vorerst so laufen. Natürlich merke ich davon nun gar nichts. Alles geht genauso, wie es immer geht. Wer ja schon einen SWAP hat, braucht gar kein Swapfile anzulegen, um etwas in der Art zu probieren. Für mich ist das nur der erste Schritt, um danach mal ein Swapfile im tempfs zu testen. Obwohl ich recht wenig RAM habe, will ich das mal versuchen. Nur möchte ich zuvor mal sehen, ob ich mit einem kleineren Swapfile auskommen kann.
Wir werden sehen, was passiert, aber ich arbeite nicht viel mit diesem PC und habe keine neuen Anforderungen. Ein wenig rsync wird noch laufen und ein paar Kleinigkeiten vielleicht. Wir werden sehen.
 
Wieso das denn? Da tmpfs im RAM speichert und das swappt um RAM freizuräumen, ist das sehr sinnlos...
oh, ich möchte das auch nicht als Zustand haben, nur mal sehen, ob ich da überhaupt was sehen kann, ob sich dann also das System irgendwie gutmütiger oder runder verhält, wenn ich also überhaupt einen SWAP gebe.

Ein Grund, weshalb ich keinen SWAP möchte, ist meine Allergie gegen Festplattenzugriffe aller Art.
Ich denke, ich brauche überhaupt gar keinen SWAP, naja, ich nutze seit Jahren einfach keinen und habe damit absolut keine negativen Erfahrungen gemacht, auch nicht auf FreeBSD. Es leuchtet mir aber ein, dass ein System mit ein wenig SWAP sich flüssiger verhalten kann. Nicht, weil ich an die Leistungsgrenzen komme und mir mehr RAM wünsche oder eben alternativ einen SWAP, sondern, wenn es sich tatsächlich bei mir zeigen sollte, dass das System mit ein wenig SWAP "besser" funktioniert, dann würde ich vielleicht einen SWAP auf tmpfs noch lieber haben wollen, als auf einer Platte.
Natürlich hört sich das sinnlos an und ich glaube nicht, dass ich irgendeine "Verbesserung" mit SWAP bemerke, denn es läuft ja nun schon alles gut. Ich will gar keinen SWAP und schon gar nicht auf einer Platte oder einem Stick. FreeBSD will aber lieber einen SWAP, da ist vielleicht einer im tmpfs für mich eine Möglichkeit, ein kruder Kompromiss. Ich kann dem Bedürfnis von FreeBSD nachgeben und gleichzeitig habe ich keine zusätzlichen Festplattenzugriffe.
Aber, wie gesagt: bei mir läuft bisher alles ohne SWAP ganz wunderbar und ich glaube nicht, dass meine Tests nun was anderes ergeben (ich hatte das mit früheren Versionen von FreeBSD schon mal getestet und kam da ohne SWAP aus, ich glaube eher, das Verhalten ist heute besser als früher).
 
Anstatt 2G irgendwo verfügbar zu machen, reserviere ich einfach ein wenig RAM.

Hallo Pit,

merkst Du nicht an dieser Stelle den Fehler? Swap wird bei RAM-Überlastung als Extra-Ressource dringend benötigt, Du reduzierst nun die Ressource RAM zugunsten von Swap, da ist also nix mit "Extra" :)

Besser wäre doch:
Anstatt 2G Swap irgendwo verfügbar zu machen, spendiere ich dem Rechner einfach ein wenig mehr RAM.
 
Ich bin da auch regelmäßig unsicher

Ja, Walter, geht mir ähnlich, deshalb habe ich auch gefragt.

Aber hier sind viele Kommentare auf diese Frage für mich sehr informativ und haben die Unsicherheiten doch ausgeräumt.

Dass ein Swapfile in einem Zpool keine gute Idee ist, hatte ich noch im Hinterkopf, weil ich zu Beginn meiner Beschäftigung mit zfs schonmal dazu hier etwas gepostet hatte und gleich entsprechende Hinweise daraufhin kamen.

Danke jedenfalls für Euer Interesse.
 
Swap wird bei RAM-Überlastung als Extra-Ressource dringend benötigt
naja, genau deshalb habe ich dieses merkwürdige Beispiel ja konstruiert.
In deinem Beispiel war ja gar nichts von einer RAM-Überlastung zu spüren und es wurde trotzdem geswaped. Bei früheren FreeBSD-Versionen war das eher schlimmer: wenn SWAP vorhanden war, dann wurde er auch benutzt und zwar auch, wenn noch lange kein Grund dafür vorhanden war.
Das ist ja eine alte Frage und ich verstehe das Argument gut: was solls, genug Platz vorhanden, also lass uns einen SWAP benutzen. Nur konnte ich das nie so sehen und dachte mir selbst, wenn ich den Platz, den ich nun mit SWAP belege, durch ein RAM ersetze, was soll denn dann noch ein SWAP überhaupt?
Als letzte Antwort darauf bleibt stehen, dass FreeBSD einen SWAP haben möchte. Ich möchte keinen. Das Gedankenexperiment mit dem SWAP im tmpfs (das ich aus purer Neugierde auch tatsächlich mal durchführen möchte), sollte zeigen, dass ich die Idee mit SWAP für obsolet halte und es keinen Sinn macht, dass ein System noch immer darauf besteht, obwohl es ausreichend RAM zur Verfügung hat.

Nach dem Verhalten meines Systems zu urteilen, wird kein SWAP benötigt und ich habe sogar mit 8G RAM noch Reserven für tmpfs und vielleicht ein SWAP-File im RAM. Ich würde mir wünschen, wenn einfach mehr Anwender es (vorübergehend) auch mal ohne SWAP probieren würden, wenn die Anforderungen und ihre Arbeitsumgebung solche Experimente zulassen.
Es ist ja schon ein großer Fortschritt, dass nicht mehr stur die Formel SWAP=2xRAM angewendet wird. Ein Nachdenken fand also schon statt.
Es muss aber auch den Schritt geben, dass ein System vollkommen ohne SWAP glücklich ist, wenn ausreichend RAM vorhanden ist. Es ist widersprüchlich, wenn ich mit 8G RAM praktisch ohne SWAP auskommen kann und jemand mit 24G RAM immer noch 2G SWAP anlegt, um ein flüssigeres Verhalten des Systems zu garantieren, weil FreeBSD das noch immer so haben möchte.

Aus meinem System (FreeBSD 11) kann ich nur sagen, dass der neue SWAP noch immer unangetastet ist und sich nicht wirklich etwas an der Speicherauslastung geändert hat.
 
Aus meinem System (FreeBSD 11) kann ich nur sagen, dass der neue SWAP noch immer unangetastet ist und sich nicht wirklich etwas an der Speicherauslastung geändert hat.
Pit234a baust du alle deine Pakete mit poudriere so wie holger? Ich weiss, dass du das nicht machst daher wird bei dir beim täglichen surfen etc. dieses Problem auch nicht auftreten. Es ging um die Frage, warum hat er eine Auslastung des SWAP Speichers trotz der Auslastung von nur gut 1/3 seines RAM's. Eben weil poudriere beim bauen von gewissen Paketen das System an seine Grenzen bringen kann.
 
Ich kenne da auch ein paar Leute aus der Windows-Welt die lange auf Swapspeicher verzichtet haben und meinten ihr System sei so viel schneller. Das ging auch ein paar Jahre gut, bis irgendwann irgendwelche größeren Spiele wie GTA5 trotz 16GB RAM anfingen abzustürzen. Swap aktivieren löste das Problem.
 
Wieso das denn? Da tmpfs im RAM speichert und das swappt um RAM freizuräumen, ist das sehr sinnlos...

In der Form klar. Aber Sachen wie zram funktionieren so. Dort wird eine komprimierte RAM-Disk angelegt und statt dass Programm auf Festplatte ausgelagert werden, werden die Dienste in den RAM komprimiert "ausgelagert". Dies ist für den Fall von kleinerer Swap-Nutzung gar nicht sooo dumm, zielt aber viel mehr auf den embedded/mobile Markt.
 
Ja, ich hätte schweigen sollen, aber es ist ein Thema, das mich schon seit Jahren um treibt, da kann ich mich immer nur schlecht zurückhalten.
Nur noch einen kurzen Blick auf mein neues SWAP, nachdem ich mal versucht habe, kräftig Action loszulassen:
Code:
Mem: 1649M Active, 1644M Inact, 4473M Wired, 779M Buf, 98M Free
Swap: 1024M Total, 2152K Used, 1022M Free

Mem: 1287M Active, 1267M Inact, 3604M Wired, 1372K Buf, 1706M Free
Swap: 1024M Total, 5756K Used, 1018M Free
Es wird deutlich geswaped.
Nun habe ich es versäumt und traute mich auch instinktiv nicht (was ich nun im Nachhinein für sehr dumm halte), während alle Anwendungen liefen den SWAP abzuschalten. Ich beendete also zunächst etliche Anwendungen, dann swapoff und dann wieder alle Anwendungen an, wie zuvor auch.
Einige Zeit nach swapoff sieht es dann so aus:
Code:
Mem: 1713M Active, 1404M Inact, 4214M Wired, 568M Buf, 533M Free
Swap:

Wenn überhaupt bemerkbar, dann war das Systemverhalten eher träger, als mit dem Swapfile gearbeitet wurde, aber das darf auch nicht weiter verwundern, weil das File ja auch auf einem ZFS liegt und Swapfiles immer schlechter abschneiden, als echter SWAP in einer eigenen Partition.

Ich will das gar nicht weiter testen, auch nicht mehr mit tmpfs. Für mich habe ich das schon häufiger probiert und gelernt, dass ich ohne SWAP auskomme, dass nichts passiert, kein Systemabsturz oder Hänger. Wenn ich SWAP habe, wird er auch benutzt, obwohl dafür in meinen Augen noch gar kein zwingender Grund vorliegt. Die Hintergründe dazu wurden hier ja erklärt und sie sind durchaus verständlich.
Ich möchte aus mehreren Gründen keinen SWAP und wenn der RAM nicht ausreichen sollte, will ich den erweitern oder es wird Zeit für neue Rechner. Aber bisher stoße ich da mit meiner Nutzung an keine Grenzen und werde auch ohne SWAP weiter machen.

Es tut mir leid, dass ich mich nicht besser zusammenreißen konnte und hier eingemischt habe. Ich denke immer, steter Tropfen höhlt den Stein und vielleicht wird irgendwann FreeBSD so gebaut, dass es auch ohne SWAP vollkommen glücklich ist (wobei ich selbst wie gesagt keine negativen Folgen bemerken kann). Ich habe schon häufiger meine sturen Positionen immer wieder vorgetragen und vielleicht ein klein wenig zum Nachdenken angeregt. Ich will das aber nicht mehr, PCs sind mir nicht wichtig genug und ich will da selbst gar nicht mehr nachdenken und mehr nutzen, was angeboten wird. Wie man sieht, bin ich fehlbar ;)
 
Zurück
Oben