Warum ist swap eine partition und nicht eine Datei?

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von schwedenmann » 03.10.2016 19:08:55

Hallo


Zu swap auf Desktops. Ich lege aus reiner Gewohnheit swap immer auf 4GB (egal ob i686, oder amd64) egal ob xfce4 oder openbox. Nur auf einem normalen desktop (also ohne aktiven Mailserver, oder einem dbms mit 10TB an Daten und 1000 usern mit gleichzeitigem Zugriff, ist die Nutzung von Swap bei mir exakt Null !!! und das bei RAM von 500MB-8GB. :mrgreen:



mfg
schwedenmann

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 03.10.2016 19:17:00

schwedenmann hat geschrieben:ist die Nutzung von Swap bei mir exakt Null !!! und das bei RAM von 500MB-8GB. :mrgreen:
Wenn du bei 512MiB und X11 keine Swap nutzung hast, ist deine Swapiness massiv zu niedrig. 8GiB voll zu bekommen ist dagegen eine Kunst. Da muss man sich schon was überlegen.
Weiß auch nicht, warum sich Leute jetzt alle 16GiB einbauen. Mit was bekommt man sowas voll?
rot: Moderator wanne spricht, default: User wanne spricht.

schwedenmann
Beiträge: 5528
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von schwedenmann » 03.10.2016 19:25:56

Hallo

@wanne
Wenn du bei 512MiB und X11 keine Swap nutzung hast, ist deine Swapiness massiv zu niedrig. 8GiB voll zu bekommen ist dagegen eine Kunst. D
Ich habe hier zu Hause mehrere amd64 und i686 Systeme im Einsatz , bei den amd64 sinds 2-8GB-RAM bei den i686 reicht die Spannweite von 512-1GB RAM. Bei allen Systemen wird swap nie angetastet, mem dagegen geht bei den kleinen Systemen durchaus auf 90-95% Auslastung und gleichzeitiger 90% CPU Auslastung. Für reine Desktopsystem kann man m.M. getrost keine swap anlegen.


mfg
schwedenmann

am2
Beiträge: 276
Registriert: 20.08.2016 21:56:44

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von am2 » 03.10.2016 19:36:49

wanne hat geschrieben:(...)
Weiß auch nicht, warum sich Leute jetzt alle 16GiB einbauen. Mit was bekommt man sowas voll?
Mit VMs? Mit speicherhungrigen Programmen, die man z.B. in C zu Versuchszwecken schreibt? Warum sollen auf meinem Host drei Datenbankserver und Apache Web-Server laufen, wenn ich das in drei VMs schmeißen kann? Gibt es MSSQL Sever für Linux? Gibt es C# für Linux? (Gott sei Dank nicht :mrgreen: ) Eine meiner VMs, die meinen Arbeitsplatz (für Home-Office-Fälle) 1:1 nachbildet hat z.B 8GB RAM zugesichert, denn mit 4 gigantischen bajts wird sie schnell schlapp. Ohne VM-Betrieb komme ich für mich locker mit 4GB klar.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von Lord_Carlos » 03.10.2016 20:41:03

Ich bekomme meine 32GB raegelmassig mit Video Bearbeitung voll.

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von MSfree » 03.10.2016 21:29:38

Lord_Carlos hat geschrieben:Ich bekomme meine 32GB raegelmassig mit Video Bearbeitung voll.
Ich glaube nicht, daß du mit Videobearbeitung wirklich das RAM voll macht. Da wird eher der Dateisystemcache viel RAM an sich reißen. Schau mal, was cat /proc/meminfo | grep MemAvailable von sich gibt.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 03.10.2016 23:27:48

schwedenmann hat geschrieben: bei den i686 reicht die Spannweite von 512-1GB RAM. Bei allen Systemen wird swap nie angetastet, mem dagegen geht bei den kleinen Systemen durchaus auf 90-95%
Dann läuft da kein Linux Kernel. Oder du hast vm.swappiness auf 0 gesetzt. (Oder vermutlich eher schlich und einfach den Swap nicht eingehängt.) Bremst das system wunderbar aus. Funktioniert aber hervorragend.
Selbst bei 1 wirst du so ein Verhalten nicht erreichen können. Sinnvolle werte für solche Desktop Systeme sind eher ~20 Debian nutzt per default 60. Da fängst du mit KDE schon bei 2GiB relativ schnell an zu swapen.
rot: Moderator wanne spricht, default: User wanne spricht.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 03.10.2016 23:35:43

MSfree hat geschrieben:Ich glaube nicht, daß du mit Videobearbeitung wirklich das RAM voll macht.
Gibt einige Programme die das machen. Will das bearbeiten also klatsch in ein char* und dann darauf editieren.
Praktisch alle weniger professionellen Programme machen das. Viele gucken dann dass sie nicht über 4Gib kommen, weil da 32Bit Windows schluss macht. Da will man dann tatsächlich viel SWAP haben.
rot: Moderator wanne spricht, default: User wanne spricht.

logoft
Beiträge: 223
Registriert: 15.11.2005 19:33:12

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von logoft » 04.10.2016 01:24:18

wanne hat geschrieben:
schwedenmann hat geschrieben:ist die Nutzung von Swap bei mir exakt Null !!! und das bei RAM von 500MB-8GB. :mrgreen:
Wenn du bei 512MiB und X11 keine Swap nutzung hast, ist deine Swapiness massiv zu niedrig. 8GiB voll zu bekommen ist dagegen eine Kunst. Da muss man sich schon was überlegen.
Weiß auch nicht, warum sich Leute jetzt alle 16GiB einbauen. Mit was bekommt man sowas voll?
Eigentlich würde sich jeder Task 2 Giga nehmen. Bei 8 Kernen könnte man 8 Task haben. 8 x 2 wären 16 GB.

Die Parallela-CPU mit einem RISK Prozesser (ein 1Platinen Rechner) war angekündigt mit 100 Kernen. Es sind glaube ich 16 oder 18 geworden.
Viel RAM ist zum Beispiel für eine RAM-Disk gut. Zum Beispiel würde ich versuchen Filme zu bearbeiten auf der RAM-Disk.

Die Swap sollte glaube ich nicht zu groß sein, weil sich der Vorteil dann zumNachteilumkehrt. Je größer die Swap desto länger muß in der Swap gesucht werden. Ob das stimmt weiß ich nicht. Bei Windows-XP habe ich mit der Swap-Datei gespielt. Sie verlagert und die Größe beeinflußt.

mfg
Raspberry Pi 3 B (seit Feb. 2019)
Laufzettel - Schritte zum Ziel

logoft
Beiträge: 223
Registriert: 15.11.2005 19:33:12

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von logoft » 04.10.2016 01:30:24

wanne hat geschrieben:
schwedenmann hat geschrieben: bei den i686 reicht die Spannweite von 512-1GB RAM. Bei allen Systemen wird swap nie angetastet, mem dagegen geht bei den kleinen Systemen durchaus auf 90-95%
Dann läuft da kein Linux Kernel. Oder du hast vm.swappiness auf 0 gesetzt. (Oder vermutlich eher schlich und einfach den Swap nicht eingehängt.) Bremst das system wunderbar aus. Funktioniert aber hervorragend.
Selbst bei 1 wirst du so ein Verhalten nicht erreichen können. Sinnvolle werte für solche Desktop Systeme sind eher ~20 Debian nutzt per default 60. Da fängst du mit KDE schon bei 2GiB relativ schnell an zu swapen.
Wer etwas schnüffelt wird swapon und swapoff finden.
swapon -s --bytes
Filename Type Size Used Priority
/dev/sdb5 partition 3905532 0 -1
Raspberry Pi 3 B (seit Feb. 2019)
Laufzettel - Schritte zum Ziel

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 04.10.2016 02:17:32

logoft hat geschrieben:Die Swap sollte glaube ich nicht zu groß sein, weil sich der Vorteil dann zum Nachteilumkehrt. Je größer die Swap desto länger muß in der Swap gesucht werden.
Da wird nicht gesucht. Da wird zugegriffen. Ob an sektor 50 oder 500 ist da völlig Wurst.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Lord_Carlos
Beiträge: 5578
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von Lord_Carlos » 04.10.2016 07:48:04

MSfree hat geschrieben:
Lord_Carlos hat geschrieben:Ich bekomme meine 32GB raegelmassig mit Video Bearbeitung voll.
Ich glaube nicht, daß du mit Videobearbeitung wirklich das RAM voll macht. Da wird eher der Dateisystemcache viel RAM an sich reißen. Schau mal, was cat /proc/meminfo | grep MemAvailable von sich gibt.
Doch doch. Das ist Adobe After Effects. Jeder gerenderte Frame (von der vorschau) liegt unkomprimiert im ram. Bei 1440p ist das pi mal daumen 11mb pro Frame. Das ist damit die Effekte nicht immer neu berechnet werden muessen. Dazu wird auch noch auf der Festplatte gecache. Das heist bei einem kleinen 10 Minuten Video hat man gerne Ram voll und dann auch noch 100GB an Cache rumliegen :)

Irgendwie muss man seine Hardware ausgaben ja rechtfertigen :D

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von uname » 04.10.2016 09:08:08

Könntest du mal einen Test machen. Führe die Videobearbeitung mit und ohne Swap durch.
Ich könnnte mir vorstellen, dass das Programm bei deaktiviertem Swap dann direkt die Frames auf die Festplatte auslagert. Wie sieht es im Vergleich dann mit der Performance aus?

Generell zu Swap:
Ich halte Swap für unnötig bzw. sogar für eine Senkung der Performance, wenn geswappt wird wenn noch genug RAM da ist. Vor allem auf alten Rechnern mit langsamer Festplatte deaktiviere ich Swap, sofern 1 GB oder 2 GB RAM für Standardanwendungen (Web und Office) bereitstehen.

[1] https://en.wikipedia.org/wiki/Swappiness

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von Meillo » 04.10.2016 09:17:57

Hier gibt es einen Thread von mir von 2012, der die Frage nach der Notwendigkeit von Swap auch schon behandelt:

viewtopic.php?f=15&t=136481
Use ed once in a while!

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 04.10.2016 10:28:14

uname hat geschrieben:Generell zu Swap:
Ich halte Swap für unnötig bzw. sogar für eine Senkung der Performance, wenn geswappt wird wenn noch genug RAM da ist. Vor allem auf alten Rechnern mit langsamer Festplatte deaktiviere ich Swap, sofern 1 GB oder 2 GB RAM für Standardanwendungen (Web und Office) bereitstehen.
Dass du und viele andere das glauben, ist alt bekannt. Dass alles rationale gegen dich spricht hoffentlich auch.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
Meillo
Moderator
Beiträge: 8813
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von Meillo » 04.10.2016 11:11:46

wanne hat geschrieben:
uname hat geschrieben:Generell zu Swap:
Ich halte Swap für unnötig bzw. sogar für eine Senkung der Performance, wenn geswappt wird wenn noch genug RAM da ist. Vor allem auf alten Rechnern mit langsamer Festplatte deaktiviere ich Swap, sofern 1 GB oder 2 GB RAM für Standardanwendungen (Web und Office) bereitstehen.
Dass du und viele andere das glauben, ist alt bekannt. Dass alles rationale gegen dich spricht hoffentlich auch.
Meinst du damit die Verlangsamung der Performance oder die Notwendigkeit von Swap?

Eine schlechtere Zeitperformance durch das Vorhandensein von Swap halte ich fuer nicht vorhanden oder nicht relevant. Dass geswappt wird, wenn noch genug RAM vorhanden ist, kann wohl nur an einer Fehlkonfiguration liegen.

Wenn aber auf einem System ueber Jahre kein Swapspace genutzt wurde, dann tue ich mir schwer, seinen Notwendigkeit *auf diesem System* zu sehen.

Generelle Aussagen wuerde ich nicht treffen; ich sehe vielmehr Gruende fuer Swap auf manchen Systemen und gegen Swap auf anderen.
Use ed once in a while!

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von MSfree » 04.10.2016 11:51:58

Meillo hat geschrieben:Eine schlechtere Zeitperformance durch das Vorhandensein von Swap halte ich fuer nicht vorhanden oder nicht relevant.
Schon klar, solange Swap zwar vorhanden, jedoch nicht genutzt wird, bringt es so gut wie keine Nachteile.
Dass geswappt wird, wenn noch genug RAM vorhanden ist, kann wohl nur an einer Fehlkonfiguration liegen.
Diese Fehlkonfiguration ist aber schon mit der Installation des Systems vorhanden, und vielen Anwendern ist nicht bekannt, wie man das ändert. Der Parameter lautet /proc/sys/vm/swappiness und der kann zwischen Null (nutze Swap nur im äussersten Notfall) und 100 (bevorzuge Cache und Buffers, egal wie viel geswapt wird) variiert werden. Der Default ist 60, so daß hier eine leichte Bevorzugung von Cache/Buffers vs. Swap entsteht. Meiner Erfahrung nach sollte der Wert zwischen Null und Fünf eingestellt werden.
Generelle Aussagen wuerde ich nicht treffen; ich sehe vielmehr Gruende fuer Swap auf manchen Systemen und gegen Swap auf anderen.
Der Idealfall ist immer, genug RAM zu haben, dann kann man auf Swap schlicht verzichten. Systeme, die ständig an der RAM-Grenze operieren, sind unterdimensioniert. Hier Swap statt mehr RAM einzurichten, ist der falsche Weg. Swap ist immer eine Notlösung, die bedingt durch ihre Latenz und Datenrate um den Faktor 1000 langsamer als RAM ist. Selbst kurze Lastspitzen werden durch den Faktor 1000 zu sehr langwierigen Auslagerungsorgien, die bis hin zum Denial of Service führen können.

DeletedUserReAsG

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von DeletedUserReAsG » 04.10.2016 11:55:19

Ich halte Swap für unnötig bzw. sogar für eine Senkung der Performance, wenn geswappt wird wenn noch genug RAM da ist.
Ich hingegen nicht. Ich habe zumindest auf‘m T400 mit 2GB RAM häufiger Kontakt mit dem OOM-Killer (oder oom_reaper, wie er sich ja neuerdings nennt), wenn ich mal vergesse, Swap einzuhängen, bevor ich eine größere Textur in Blender lade, Firefox mit speicherlastigen Tabs und PyCharm (oder Javakram allgemein) gleichzeitig laufen lasse, größere Bilder bearbeite, OSM-Daten importiere, […].
Selbst kurze Lastspitzen werden durch den Faktor 1000 zu sehr langwierigen Auslagerungsorgien, die bis hin zum Denial of Service führen können.
Bei Servern stimme ich zu. Bei meinen lokalen Maschinen ist’s mir dann doch lieber, ’ne Minute zu warten bis es wieder ansprechbar ist, als die offenen Daten zu verlieren.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von uname » 04.10.2016 15:43:27

Ich werde das Thema noch mal durchdenken. Dass Swapiness generell falsch eingestellt ist erklärt wohl meine Probleme auf alten Systemen. Was spricht denn dagegen Swap wirklich auf "0" zu stellen bzw. so, dass es im Notfall genutzt wird. Wo kann der Vorteil liegen, wenn statt RAM die langsame Platte genutzt wird? Leuchtet mir nicht wirklich ein. Oder ist die Speicherverwaltung zu träge bei 0 MB RAM frei noch zu swappen?

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von MSfree » 04.10.2016 16:13:10

uname hat geschrieben:Was spricht denn dagegen Swap wirklich auf "0" zu stellen, bzw. so, dass es im Notfall genutzt wird.
Eigentlich spricht nur mein Bauchgefühl dagegen, Swappiness auf Null zu setzen. Ein Bißchen Cache/Buffers sollte man dem System schon zugestehen, selbst wenn RAM durch Anwendungen belegt wird.
Wo kann der Vorteil liegen, wenn statt RAM die langsame Platte genutzt wird? Leuchtet mir nicht wirklich ein. Oder ist die Speicherverwaltung zu träge bei 0 MB RAM frei noch zu swappen?
Eigentlich sollte die Speicherverwaltung versuchen, Speicher zurück zu erobern, indem Cache und Buffers geopfert werden. Erst, wenn kein Cache mehr geopfert werden kann, sollte die Kiste in den Swap greifen. Von daher kann ich dir nur zustimmen. Allerdings ist gar kein Cache/Swap bei vollem Speicher auch kontraproduktiv, daher ja mein Erfahrungswert von 5.

Der Swappiness-Wert stellt im Prinzip eine Ballanceparameter dar, zwischen denen der Hauptspeicher für Cache/Buffers einerseits und Speicher für Anwendungen andereseits aufgeteilt werden soll. Anwendungen nutzen aber oft intern eigene Cachingmechanismen, so daß auf zusätzliches cachen durch das Betriebssystem verzichtet werden kann. Anwendungen können Daten viel spezialisierter cachen als ein Dateisystemcache. Bei einer Videobearbeitung ist das Cachen der MPEG-Daten durch das Betriebssystem ziemlich sinnlos, während das Cachen der dekomprimierten Frames durch die Verarbeitungssoftware sehr nützlich ist.

Benutzeravatar
whisper
Beiträge: 3184
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von whisper » 04.10.2016 16:14:33

MSfree hat geschrieben: Diese Fehlkonfiguration ist aber schon mit der Installation des Systems vorhanden, und vielen Anwendern ist nicht bekannt, wie man das ändert. Der Parameter lautet /proc/sys/vm/swappiness und der kann zwischen Null (nutze Swap nur im äussersten Notfall) und 100 (bevorzuge Cache und Buffers, egal wie viel geswapt wird) variiert werden. Der Default ist 60, so daß hier eine leichte Bevorzugung von Cache/Buffers vs. Swap entsteht. Meiner Erfahrung nach sollte der Wert zwischen Null und Fünf eingestellt werden.
(..) Systeme, die ständig an der RAM-Grenze operieren, sind unterdimensioniert. Hier Swap statt mehr RAM einzurichten, ist der falsche Weg. Swap ist immer eine Notlösung, die bedingt durch ihre Latenz und Datenrate um den Faktor 1000 langsamer als RAM ist. Selbst kurze Lastspitzen werden durch den Faktor 1000 zu sehr langwierigen Auslagerungsorgien, die bis hin zum Denial of Service führen können.
Ich finde die 60 als genau richtigen Kompromiss.
Der Cache enthält ja u.a. die Pointer und Daten der geöffneten Files und wenn man sich vor Augen führt, dass ein simpler Editor wie gedit schon ca 137 Descriptoren geöffnet hat, kann ich mir gut vorstellen, dass das Auslagern diese Prozesses mit mit großen zeitlichen Einbußen statt finden würde, weil ja auch die gecachten Bereiche mit geswappt werden müssen.
Die swapiness von 60 verlagert momentan nicht benötigte Prozesse aus und hält möglichst die Filedescriptor intensiven (Cache-lastigen) Prozesse im Speicher.
Im Grenzbereich, Swapiness 0 ist einfach die Change höher, das es wenn doch geswappt werden muss, den falschen trifft.
Das Auslagern eines lange nicht benötigen Prozesses ist für das System im Vorübergehen zu bewältigen, es sei denn, es findet bereits anderweitiger heftiger I/O statt.
Evtl sind die Entscheidungen der swappiness auch noch komplexer, habe ich mir noch nicht im Quellcode angesehen, aber die Richtung wird so ein

TomL

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von TomL » 04.10.2016 16:27:31

MSfree hat geschrieben:Meiner Erfahrung nach sollte der Wert zwischen Null und Fünf eingestellt werden.
whisper hat geschrieben:Ich finde die 60 als genau richtigen Kompromiss.
Ist das nicht auch noch ein bisschen abhängig vom tatsächlich installierten RAM? Wie verändern sich eure Empfehlungen, wenn z.b. auf dem einen älteren Rechner nur 2 GB RAM installiert sind, auf einem anderen neueren 8 GB? Ich hätte jetzt die Idee, auf dem 2 GB-Rechner wäre vielleicht gemäß whispers Erklärung der Wert 60 die bessere Wahl, auf dem 8 GB Rechner jedoch MSFree's empfohlene 5. In meinem Desktop sind 8 GB installiert.... was ist da richtig bzw. die bessere Option?

Ich habe auf meinem PC mit 8 GB (nur Office, Internet und Multimedia) einfach mal den Wert 10 eingestellt und bin damit einer Wiki-Erklärung gefolgt, die sagt:
"Value 10 = This value is sometimes recommended to improve performance when sufficient memory exists in a system."

Benutzeravatar
whisper
Beiträge: 3184
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von whisper » 04.10.2016 16:36:43

TomL hat geschrieben: Ich habe auf meinem PC mit 8 GB (nur Office, Internet und Multimedia) einfach mal den Wert 10 eingestellt und bin damit einer Wiki-Erklärung gefolgt, die sagt:
"Value 10 = This value is sometimes recommended to improve performance when sufficient memory exists in a system."
Sicher, ist vom Anwendungsfall abhängig, den Wiki Artikel hatte ich jetzt nicht mehr gefunden, scheint ein guter Hinweis zu sein.
Da aber RAM nicht mehr viel kostet, habe ich in meinem neuen Laptop 16GB, da ist mir die Einstellung wurscht, swappt sowieso nicht, wenn, dann ist was anderes faul ;-)

Benutzeravatar
MSfree
Beiträge: 10752
Registriert: 25.09.2007 19:59:30

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von MSfree » 04.10.2016 17:33:27

TomL hat geschrieben:Ist das nicht auch noch ein bisschen abhängig vom tatsächlich installierten RAM? Wie verändern sich eure Empfehlungen, wenn z.b. auf dem einen älteren Rechner nur 2 GB RAM installiert sind, auf einem anderen neueren 8 GB?
Meiner Erfahrung nach sollte der Wert umso kleiner sein je weniger RAM im Rechner steckt. Für Cache und Buffer wird sowieso der freie Speicher genutzt. Es sollte aber der Cache geopfert werden, bevor geswapt wird. Da das bei wenig RAM sogar noch wichtiger ist als bei viel RAM, sollte bei wenig RAM der Wert sogar noch kleiner eingestellt werden als bei viel RAM.

Vor allem ältere Rechner mit langsameren Platten und wenig RAM profitieren davon, wenn sie möglichst wenig swappen und das erreicht man, in dem man Swappiness möglichst klein wählt.

Nunja, mit 8GB RAM fahre ich sowieso ohne Swap.

wanne
Moderator
Beiträge: 7462
Registriert: 24.05.2010 12:39:42

Re: Warum ist swap eine partition und nicht eine Datei?

Beitrag von wanne » 04.10.2016 23:11:58

uname hat geschrieben:Was spricht denn dagegen Swap wirklich auf "0" zu stellen bzw. so, dass es im Notfall genutzt wird.
Dass dein Firefox zig mal in der Sekunde auf .mozilla/firefox/profil/content-prefs.sqlite/cookies.sqlite... zugreift aber deinen KDM sieht du nur je ein mal bei an- und abmeldung.
setzt du swappiness auf 0 ist dein KDM wunderbar schnell, weil der voll im RAM liegt und dein Firefox bei wenig RAM nicht zu bedienen weil, der massiv Dateizugriffe macht und praktisch keine Daten im vmem hält.
Ein Verhalten, dass du eher nicht haben willst.
MSfree hat geschrieben:Vor allem ältere Rechner mit langsameren Platten und wenig RAM profitieren davon, wenn sie möglichst wenig swappen und das erreicht man, in dem man Swappiness möglichst klein wählt.
Quatsch gerade die bremst du dadurch massiv aus. Deine Hintergrunddienst fressen dir den ganzen Speicher weg und Firefox und co. sind nicht mehr zu bedienen. Kannst du wunderbar mal mit einem Rechner (keine VM) mit ~256MiB RAM ausprobieren. Mit swappiness=0 ist das einfach gar nicht mehr zu benutzen. Dein Swap wird trotzdem nicht angefasst.

Swappiness sagt nichts darüber aus wieviele Daten ausgelaggert werden sondern welche. – Kleine swappiness und der dateisystemcache wird bevorzugt auf die platte gedumpt – große swappiness und der vmem wird bevorzugt in den swap gedumpt. Beides mal muss das bei der nächsten Nutzung erst wieder von der lahmen platte geladen werden. Ist wirklich genug Speicher da wird auch nichts irgendwo hin verteilt sondern alles im RAM behalten.

Entsprechend ist die swappiness auch eher Nutzungsabhänig als Hardwareabhängig:
Hast du Programme, die erstmal alles in den vmem laden (Die meisten grafischen Programme, Bildbearbeitungsprogramme….) willst du ne kleine swappines, hast du Programme die sehr viel IO mit den selben Dateien machen (Die meisten Server Programme vor allem Webserver aber auch Firefox.) willst du eine große.

Insbesondere nimmst du da eine ungewollte Priorisierung vor.
Das ist bevorzugt bei kleiner swappiness.

Code: Alles auswählen

char a;
char buff[1073741824];
read(fd,buff,1073741824);
while(bla)
  a=buff[$random]
Das bei sehr großer:

Code: Alles auswählen

char a;
while(bla){
  fseek(file,$random,SEEK_SET);
  fread(&a,1,1,file);
}

Viele Programme optimieren darauf häufige Daten in den vmem zu laden und weniger häufige in Dateien (/tmp) auszulagern. Entsprechend laufen sie dann schneller mit kleiner swappines.
Mittlerweile geht der Trend aber wieder rückwärts. Man will, dass die Programme auch nach abstürzten noch möglichst stabil laufen und stellt möglichst schnell möglichst alles auf die Platte und syct dann (Datenbanken/Firefox/Chrome/Alle android apps (Die werden ohne komentar von android gekillt, wenn es meint, es bräuchte den RAM für was anders)) Entsprechend werden wieder höhere werte für die swappines sinnvoll.

60 ist für Server ganz OK. Desktops wollen eher 10 oder so haben. – Welche mit wenig RAM eher mehr, welche mit viel eher (>1GiB) weniger.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten