Wie viel Swap sollte ich für 14 GB bis 8 TB RAM am 14.04 oder höher benötigen?


13

Ich werde 64-Bit 14.04 auf einem neuen Computer mit 1 bis 128 GB RAM und später noch mehr RAM installieren. Wie viel Speicherplatz sollte ich der Swap-Partition zuweisen?

Und vor allem: WARUM diese Empfehlungen für diese Zahlen?

(Keine der hier und hier vorhandenen Antworten erklärt das Warum und ist etwas veraltet, wenn wir uns 1 GB oder RAM und mehr ansehen.)


6
Mögliches Duplikat von Ich habe 16 GB RAM. Benötige ich 32 GB Swap? Es gibt Antworten von 2017 (oder aktualisiert in 2017), daher enthält es derzeit aktuellere Empfehlungen als diese.
Melebius

1
@Melebius: Ich bin anderer Meinung: Obwohl diese Frage neuer ist, ist sie allgemeiner als die, zu der Sie duplizieren möchten . Diese Fragen und Antworten umfassen die älteren, aber das Gegenteil ist nicht der Fall! ;-)
Fabby

1
@Fabby Sollte in diesem Fall der andere nicht als Duplikat von diesem markiert werden?
Melebius

1
@Melebius Wenn beide Fragen von Rezensenten als doppelte Fragen anderer Fragen in unterschiedlichen Situationen verwendet werden könnten, könnten beide Fragen offen gehalten werden, um diese unterschiedlichen Situationen zu behandeln, da beide Fragen hoch bewertete Antworten haben.
Karel

2
@Melebius Wir haben bereits eine Diskussion zu diesem Thema in Meta geführt und die Community hat beschlossen, jeden so zu belassen, wie er ist.
Fabby

Antworten:


29

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 swappinessauf 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:

  1. Wenn Sie keinen Ruhezustand verwenden und Ihr Speicher mehr als 1 GByte beträgt, lautet die neue Faustregel, round(sqrt(RAM))wo RAMsich Ihre RAM-Größe in GB und sqrtdie Quadratwurzel befinden. :-)

  2. 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))

  3. 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 gimpspeedy zu sein , so dass Ihre Einstellung swappinesszu 10 den Kernel zu verhindern , zu früh Swapping, während sichergestellt wird es doesn‘ t zu spät tauschen:

Wenn Sie eine sysctl.confDatei haben,

sudo nano /etc/sysctl.conf

ODER

Wenn Sie ein sysctl.dVerzeichnis, aber keine sysctl.confDatei 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 ... :-)


1
Vielen Dank. Was meinst du mit "abnehmender Rendite"? Wenn sowohl der RAM als auch der Swap voll ausgelastet sind, ist es unmöglich, den Ruhezustand zu aktivieren, selbst wenn der Swap eine RAM-Größe von 2 * hat, nicht wahr? (Weil der Ruhezustand die Größe des Swaps benötigt, um RAM + Swap zu sein, was ist unmöglich?)
Tim

Ja, aber ich habe das noch nie erlebt ... (und ich bin alt! Daher 2 * RAM: Wenn der gesamte RAM ausgetauscht ist, können Sie immer noch den Ruhezustand
aktivieren

2
"Abnehmende Renditen" bedeuten nur, dass der Festplattenzugriff um den Faktor 1000 langsamer ist als der Arbeitsspeicher. Wenn Sie also zweimal Ihren Arbeitsspeicher austauschen müssen, sind Sie vor dem Abschluss an Altersschwäche gestorben ... Es ist nur da, um den Ruhezustand zu aktivieren, wenn Sie
Wir

1
@Fabby Es ist wieder Zeit für die Überprüfung des Lebenslaufs der ursprünglichen Frage: askubuntu.com/review/close/889454 . Siehe den Kommentar von Yufenyuy Veyeh Dider unter der Frage.
Karel

1
@ Mrkskwsnck: Es ist vom selben Autor ... ;-)
Fabby

6

Notwendigkeit für den Tausch

Swap ist aus 3 Gründen nützlich:

  1. Entfernen von Unordnung aus dem RAM. Aus dem Artikel auf kernel.org:

    "Eine erhebliche Anzahl der Seiten, auf die ein Prozess zu Beginn seines Lebens verweist, darf nur zur Initialisierung verwendet und dann nie wieder verwendet werden. Es ist besser, diese Seiten auszutauschen und mehr Festplattenpuffer zu erstellen, als sie resident und unbenutzt zu lassen."

    Mit anderen Worten, die im RAM gespeicherten Daten sind möglicherweise nur dann nützlich, wenn ein Prozess gestartet wurde (wie der Startvorgang), und befinden sich dann einfach im RAM, wodurch der Platz überfüllt ist, der für bessere Zwecke verwendet werden kann.

  2. Es erweitert die Speichermenge, die Prozesse verwenden können. Das ist gut verstanden. Sie möchten nicht, dass dem System der Speicher ausgeht und es aufgrund eines Mangels abstürzt. Aus diesem besonderen Grund, swap muss existieren, als Schutzmerkmal dient.

  3. Ruhezustand: Wenn ein Computer in den Ruhezustand versetzt wird, wird der Inhalt des Arbeitsspeichers auf die Festplatte übertragen.

Betrag tauschen

Wenn Sie den Zweck des Austauschs kennen und von der RAM-Größe Ihres Computers abhängen, können Sie eine Auslagerungsgröße auswählen, die Ihrem Zweck entspricht. Es gibt keine spezifischen Richtlinien, sondern nur Faustregeln, mit denen Sie Ihre Swap-Größe an Ihr System anpassen können .

Zum Beispiel empfiehlt linux.com :

Als Faustregel gilt: 1) Verwenden Sie für ein Desktop-System einen Swap-Bereich mit doppeltem Systemspeicher, da Sie damit eine große Anzahl von Anwendungen ausführen können (von denen viele möglicherweise inaktiv sind und leicht ausgetauscht werden können) mehr RAM für die aktiven Anwendungen verfügbar; 2) Für einen Server steht eine geringere Menge an Swap zur Verfügung (z. B. die Hälfte des physischen Speichers), damit Sie bei Bedarf eine gewisse Flexibilität beim Swap haben. Überwachen Sie jedoch die Menge des verwendeten Swap-Speicherplatzes und aktualisieren Sie gegebenenfalls Ihren RAM. 3) Verwenden Sie für ältere Desktop-Computer (mit beispielsweise nur 128 MB) so viel Swap-Speicherplatz wie möglich, sogar bis zu 1 GB.

Aus persönlicher Erfahrung würde ich Folgendes tun:

In Anbetracht eines Computers mit 1 bis 2 GB, der nicht in den Ruhezustand versetzt werden muss, und für den gelegentlichen Gebrauch können Sie über 1 GB bis 2 GB Swap-Speicher verfügen. Mein PC mit 14.04 Ubuntu hat 1 GB RAM und 2 GB Swap. Der Swap-Betrag überschreitet nie die 800-MB-Grenze, und ich verwende meinen PC nur zum Surfen im Internet und zum Erstellen von Skripten.

Mit einem PC mit mehr als 2 GB und ohne Ruhezustand können Sie den Swap von 512 MB auf 1 GB beibehalten. Ich habe einen Laptop mit 15,04 , die ich überwintern nicht immer und das eine Auslagerungsdatei ( kein Partition ) von 512 MB. RAM selbst ist 6 GB groß, überschreitet aber nie 2-3 GB. Nochmals: Gelegenheitsgebrauch.

Cosmoscalibur und Fabby haben sich bereits mit dem Tausch befasst, falls Sie in den Ruhezustand wechseln müssen, damit ich nicht zu ausführlich darauf eingehen werde. Meine bescheidene Meinung ist folgende:

Wenn Sie in den Ruhezustand wechseln möchten, müssen die RAM-Inhalte ausgetauscht werden. Daher benötigen Sie mindestens die gleiche Größe wie Ihr RAM.


:-) Erst bemerkt, dass du etwas gepostet hast. Bearbeitet und bewertet! (Wie es jetzt ist eine gute Antwort nach meiner Bearbeitung !: D: D: D)
Fabby
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.