Die kurze Antwort:
Stellen Sie Ihre Auslagerungsdatei auf:
round(sqrt(RAM))
Wenn Sie keinen Ruhezustand verwenden
RAM+round(sqrt(RAM))
Wenn Sie den Ruhezustand verwenden
Setzen Sie Ihre swappiness
auf 10 auf einem Desktop, aber nicht auf einem Server!
Die lange Antwort:
In der Vergangenheit:
Die Faustregel, die in den letzten 25 Jahren verwendet wurde, war ein Minimum von 1xRAM und ein Maximum von 2xRAM, so dass dies die ganze Zeit zitiert wird.
Dieses Minimum wurde in der Steinzeit zurückgesetzt, als ich ein Teenager war und Dinosaurier immer noch die Erde durchstreiften und weil RAM einfach zu teuer war und man diesen Austauschraum unbedingt brauchte, um etwas erreichen zu können.
Das Maximum wurde zu diesem Zeitpunkt aufgrund sinkender Renditen festgelegt: Es ist einfach zu langsam, um so viel Speicher auszutauschen, da der Festplattenzugriff um den Faktor 1000 langsamer ist als der Arbeitsspeicher: gut im Notfall, aber nicht wirklich gut für den täglichen Gebrauch! Zu der Zeit, als Ihnen der Swap-Speicherplatz ausgegangen war, war es Zeit, mehr RAM hinzuzufügen! (was heute noch gilt).
In der Gegenwart:
Wenn Sie keinen Ruhezustand verwenden und Ihr Speicher mehr als 1 GByte beträgt, lautet die neue Faustregel, round(sqrt(RAM))
wo RAM
sich Ihre RAM-Größe in GB und sqrt
die Quadratwurzel befinden. :-)
Wenn Sie den Ruhezustand verwenden, müssen Sie in der Lage sein, die gesamte Menge an RAM + bereits ausgetauschtem RAM auf die Festplatte auszutauschen. Die Formel lautet daher: RAM+round(sqrt(RAM))
Die Regel zur Verringerung der Renditen gilt auch heute noch für das Maximum. Wenn Sie jedoch nicht Ihre tatsächliche Nutzung testen, ist die Verwendung von 2xRAM nur eine Verschwendung von Speicherplatz. Verwenden Sie also nicht das Maximum, es sei denn, Ihnen geht mit den anderen Methoden der Swap-Speicherplatz aus .
Alle diese zusammen ergeben die folgende Tabelle: (Die letzten 3 Spalten geben den Swap-Bereich an)
RAM No hibernation With Hibernation Maximum
1GB 1GB 2GB 2GB
2GB 1GB 3GB 4GB
3GB 2GB 5GB 6GB
4GB 2GB 6GB 8GB
5GB 2GB 7GB 10GB
6GB 2GB 8GB 12GB
8GB 3GB 11GB 16GB
12GB 3GB 15GB 24GB
16GB 4GB 20GB 32GB
24GB 5GB 29GB 48GB
32GB 6GB 38GB 64GB
64GB 8GB 72GB 128GB
128GB 11GB 139GB 256GB
256GB 16GB 272GB 512GB
512GB 23GB 535GB 1TB
1TB 32GB 1056GB 2TB
2TB 46GB 2094GB 4TB
4TB 64GB 4160GB 8TB
8TB 91GB 8283GB 16TB
Das Obige ist nur eine Faustregel; Es ist nicht das Gesetz der Schwerkraft!
Sie können diese Regel (im Gegensatz zum Gesetz der Schwerkraft) brechen, wenn Ihr spezieller Anwendungsfall anders ist!
Profi-Tipp: Weisen Sie SWAP immer zu Beginn einer Festplatte zu, da sich die Köpfe im Inneren der Festplatte weniger bewegen müssen.
Ja: Auf SSDs spielt es keine Rolle mehr, wo Sie den Swap-Bereich lokalisieren, da sie Quantentunneln anstelle von sich bewegenden Köpfen verwenden und moderne SSDs alle ihre Speicherzellen (auch den nicht zugewiesenen Speicherplatz) verwenden, um eine Quantenverschlechterung zu verhindern.
So testen Sie, ob sich Ihre Verwendung von Swap von der "generischen" Regel unterscheidet:
Einfach ausführen:
for szFile in /proc/*/status ; do
awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile
done | sort --key 2 --numeric --reverse | more
Dadurch erhalten Sie eine Liste aller laufenden Programme, die ausgelagert wurden (wobei dasjenige den meisten Swap-Speicherplatz oben verwendet).
Wenn Sie mehr als ein paar KB verwenden: Ändern Sie die Größe auf mehr als das Minimum, andernfalls stören Sie sich nicht ...
Wenn Sie auf einem Server sind, hören Sie jetzt auf zu lesen: Sie sind fertig!
Wenn Sie sich auf einem Desktop- / Laptop-Client (nicht auf einem Server) befinden, möchten Sie, dass Ihre GUI so reaktionsschnell wie möglich ist und nur dann ausgetauscht wird, wenn dies wirklich erforderlich ist . Ubuntu wurde Swap früh für den Servereinsatz optimiert, sondern auf Ihrem Client wollen Bearbeitung Sie das riesige 250 Mega-Pixel - Rohbild in gimp
speedy zu sein , so dass Ihre Einstellung swappiness
zu 10 den Kernel zu verhindern , zu früh Swapping, während sichergestellt wird es doesn‘ t zu spät tauschen:
Wenn Sie eine sysctl.conf
Datei haben,
sudo nano /etc/sysctl.conf
ODER
Wenn Sie ein sysctl.d
Verzeichnis, aber keine sysctl.conf
Datei haben, erstellen Sie eine neue Datei:
sudo nano /etc/sysctl.d/35_swap.conf
und in beiden Fällen hinzufügen:
# change "swappiness" from default 60 to 10
# (theoretically only swap when RAM usage reaches around 80 or 90 percent)
vm.swappiness = 10
Speichern Sie die Datei bis zum Ende der Datei ( Ctrl+ XY+ Enterin nano) und führen Sie Folgendes aus:
sysctl --system
um den Parameter neu zu laden oder den Window $ -Ansatz zu wählen und neu zu starten ... :-)