Brauche ich Swap Space, wenn ich mehr als genug RAM habe?

91

Soweit ich weiß, besteht der Zweck einer Swap- Partition in Linux darin, einige Informationen, auf die nicht so häufig zugegriffen wird, aus dem Arbeitsspeicher freizugeben und sie auf eine bestimmte Partition auf Ihrer Festplatte zu verschieben (auf Kosten der Verzögerung beim Lesen oder Schreiben) zu), was im Wesentlichen aktiven Anwendungen mehr von dem "Hochgeschwindigkeitsspeicher" ermöglicht.

Dies ist ideal, wenn Sie auf einem Computer mit wenig Arbeitsspeicher arbeiten und keine Probleme haben möchten, wenn der Arbeitsspeicher knapp wird. Wenn Ihr System jedoch über 16 GB oder 32 GB RAM verfügt und Sie keine MySQL-Datenbank für StackExchange ausführen oder einen 1080p-Film in voller Länge unter Linux bearbeiten, sollte eine Swap-Partition verwendet werden?

IQAndreas
quelle
16
@mikeserv Weißt du, ich würde diese beiden Briefe gerne als Antwort annehmen, nur um eine komödiantische Wirkung zu erzielen.
IQAndreas
3
@ Janis - es kostet viel. Und Sie hätten auch auf dem 1-GB-Computer problemlos auf das Auslagern verzichten können, wenn Sie eine solide Speicherverwaltung implementiert hätten. Swap cost performance - wenn Sie es haben, wird der Kernel es zwangsläufig benutzen. Eine Swap-Partition auf einer Festplatte mit 1 TB oder einer beliebigen Größe ist eine Aufforderung an den Kernel, Speicherseiten auf der Festplatte abzulegen, anstatt sie im RAM zu belassen oder vollständig zu löschen. Mit 16 GB wird ein typischer Benutzer niemals alle Möglichkeiten nutzen können - ich habe 24 GB RAM mit 2 GB belegt und 10 GB zwischengespeichert (da ich einen Torrent dazu geschrieben habe /tmp), nach 3 Tagen Betriebszeit.
mikeserv
5
@ MikeServ, ich fürchte, du liegst falsch. Ich habe die angezeigten Datenträgerkennzahlen ständig beobachtet. Solange freier Speicher verfügbar ist, wurde der Swap nicht verwendet, sondern nur, als der Speicher voll war. Der Swap wurde gestartet. Ich denke, es hängt davon ab, wie Sie Ihren Computer benutzen. Ein Desktop-System, das jeden Abend heruntergefahren wird, stößt selten auf Speicherprobleme. Mein System war jedoch monatelang in Betrieb. Ja, Swap kostet Leistung, aber wenn kein RAM-Speicher mehr verfügbar ist, kann Ihr System weiterarbeiten. Was ist die Option, die Sie haben? Vielleicht können Sie das Argument der Speicherverwaltung näher erläutern. Ich benutze mein Linux-System vorkonfiguriert.
Janis
40
@mikeserv Wie haben Sie einen Kommentar mit weniger als 15 Zeichen gepostet?
immibis
11
@immibis es 12 sind Null-Breite Räume dort
Dave

Antworten:

98

Ja.

Auf jeden Fall sollte Swap immer aktiviert sein, es sei denn, es gibt einen sehr zwingenden, verbotenen Grund (z. B. keine Festplatte oder nur Netzwerkfestplatte vorhanden). Sollten Sie einen Swap in der Größenordnung der oft empfohlenen lächerlichen Größen haben (z. B. das Doppelte des Arbeitsspeichers)? Nun, nein .

Der Grund dafür ist, dass Swap nicht nur nützlich ist, wenn Ihre Anwendungen mehr Speicher belegen als es physischen RAM gibt (in diesem Fall ist Swap überhaupt nicht sehr nützlich, da es die Leistung ernsthaft beeinträchtigt). Der Hauptanreiz für den Austausch besteht heutzutage nicht darin , 16 GB RAM auf magische Weise in 32 GB RAM umzuwandeln, sondern den installierten, verfügbaren RAM effizienter zu nutzen.

Auf einem modernen Computer bleibt der Arbeitsspeicher nicht ungenutzt. Nicht genutzter Arbeitsspeicher ist etwas, das Sie genauso gut nicht kaufen und stattdessen sparen könnten. Daher wird alles zwischengespeichert, was Sie laden oder was auf andere Weise im Speicher abgelegt ist. Alles, was möglicherweise später von irgendjemandem wiederverwendet werden könnte (eingeschränkt durch Sicherheitsbeschränkungen). Sehr bald , nachdem die Maschine gestartet ist, alle physischen RAM wird seit verwendet etwas .

Wenn Sie vom Betriebssystem eine neue Speicherseite anfordern, muss der Speichermanager eine fundierte Entscheidung treffen:

  1. Bereinigen Sie eine Seite aus dem Puffercache
  2. Bereinigen einer Seite aus einer Zuordnung (auf den meisten Systemen identisch mit # 1)
  3. Verschieben Sie eine Seite, auf die lange Zeit nicht mehr zugegriffen wurde - vorzugsweise nie -, um sie auszutauschen (dies kann sogar proaktiv geschehen, nicht unbedingt im allerletzten Moment).
  4. Beenden Sie Ihren Prozess oder einen zufälligen Prozess (OOM)
  5. Kernel Panik

Die Optionen 4 und 5 sind sehr unerwünscht und treten nur auf, wenn das Betriebssystem überhaupt keine andere Wahl hat. Die Optionen 1 und 2 bedeuten, dass Sie etwas wegwerfen, das Sie möglicherweise bald wieder benötigen werden. Dies wirkt sich negativ auf die Leistung aus.

Option 3 bedeutet, dass Sie etwas, das Sie (wahrscheinlich) nicht so schnell benötigen, in einen langsamen Speicher verschieben. Das ist in Ordnung, da jetzt etwas, das Sie brauchen , den schnellen Arbeitsspeicher verwenden kann.

Durch Entfernen von Option 3 haben Sie das Betriebssystem effektiv auf die Schritte 1 oder 2 beschränkt. Das erneute Laden einer Seite von der Festplatte ist dasselbe wie das erneute Laden von der Auslagerung, mit der Ausnahme, dass das erneute Laden von der Auslagerung in der Regel weniger wahrscheinlich ist (aufgrund der richtigen Paging-Entscheidungen).

Mit anderen Worten, durch Deaktivieren von Swap erhalten Sie nichts, aber Sie begrenzen die Anzahl der nützlichen Optionen des Betriebssystems für die Verarbeitung einer Speicheranforderung. , Die vielleicht nicht , aber sehr wahrscheinlich sein kann , einen Nachteil (und nie von Vorteil).

[BEARBEITEN]

Der aufmerksame Leser der mmap Manpage , insbesondere der Beschreibung von MAP_NORESERVE, wird einen weiteren guten Grund bemerken, warum Swap auch auf einem System mit "genügend" physischem Speicher eine Notwendigkeit darstellt:

Msgstr "Wenn der Auslagerungsspeicher nicht reserviert ist, kann beim Schreiben SIGSEGV auftreten, wenn kein physischer Speicher verfügbar ist."

- Warten Sie einen Moment, was bedeutet das?

Wenn Sie eine Datei zuordnen, können Sie direkt auf den Inhalt der Datei zugreifen, als befände sich die Datei auf magische Weise im Adressraum Ihres Programms. Für den Nur-Lese-Zugriff benötigt das Betriebssystem im Prinzip nicht mehr als eine einzige Seite des physischen Speichers, die es bei jedem Zugriff auf eine andere virtuelle Seite mit unterschiedlichen Daten auffüllen kann (aus Effizienzgründen ist dies natürlich nicht der Fall, aber Im Prinzip können Sie mit einer einzigen Seite physischen Speichers auf Daten im Wert von Terabyte zugreifen. Was ist, wenn Sie auchin eine dateizuordnung schreiben? In diesem Fall muss das Betriebssystem für jede Seite, auf die geschrieben wird, über eine physische Seite oder einen Auslagerungsspeicher verfügen. Es gibt keine andere Möglichkeit, die Daten zu speichern, bis der Rückschreibevorgang für schmutzige Seiten abgeschlossen ist (dies kann mehrere Sekunden dauern). Aus diesem Grund reserviert das Betriebssystem Swap-Speicherplatz (legt diesen jedoch nicht unbedingt fest). Falls Sie also in eine Zuordnung schreiben, während zufällig keine physische Seite ungenutzt ist (dies ist durchaus möglich und unter normalen Umständen der Fall), müssen Sie Folgendes tun: Wir garantieren, dass es immer noch funktioniert.

Was ist nun, wenn es keinen Swap gibt? Dies bedeutet, dass kein Swap reserviert werden kann (duh!), Und dies bedeutet, dass Sie eine angenehme Überraschung in Form des Empfangs Ihres Prozesses erhalten, sobald keine freien physischen Seiten mehr vorhanden sind und Sie auf eine Seite schreiben ein Segmentierungsfehler, und wahrscheinlich getötet.

[/BEARBEITEN]

Die traditionelle Empfehlung, Swap doppelt so groß wie RAM zu machen, ist jedoch unsinnig. Obwohl der Speicherplatz billig ist, ist es nicht sinnvoll, so viel Swap zuzuweisen. Etwas zu verschwenden, das billig ist, ist immer noch verschwenderisch, und Sie möchten auf keinen Fall ständig Arbeitssets mit einer Größe von mehreren Hundert Megabyte (oder mehr) austauschen.

Es gibt keine einzige "richtige" Swap-Größe (es gibt so viele "richtige" Größen wie Benutzer und Meinungen). Ich weise normalerweise feste 512 MB zu, unabhängig von der RAM-Größe, was für mich sehr gut funktioniert. Die Argumentation dahinter ist, dass man sich 512 MB heutzutage immer leisten kann, selbst auf einer kleinen Festplatte. Auf der anderen Seite ist es nicht besser, mehrere Gigabyte Swap hinzuzufügen. Sie werden sie nicht verwenden, es sei denn, etwas läuft ernsthaft schief.

Selbst auf einer SSD ist der Austausch um Größenordnungen langsamer als der Arbeitsspeicher (aufgrund der Busbandbreite und der Latenz), und es ist durchaus akzeptabel , etwas zu verschieben, das wahrscheinlich nicht mehr benötigt wird (dh Sie werden es höchstwahrscheinlich nicht mehr benötigen) Wenn Sie es erneut einlagern, so dass Ihr Pool verfügbarer Seiten effektiv kostenlos erweitert wird, sind Sie ziemlich verloren , wenn Sie wirklich viel Swap benötigen (das heißt, Sie haben eine Anwendung, die z. B. einen 50-GB-Datensatz verwendet).

Sobald Ihr Computer beginnt, Seiten im Wert von Gigabyte ein- und auszutauschen, wird alles durchsucht. Für die meisten Leute (einschließlich mir) ist dies keine Option, und so viel Swap zu haben macht daher keinen Sinn.

Damon
quelle
7
Völlig falsch: Es könnte für den Kernel von Vorteil sein, die Festplatte nicht zu verwenden, insbesondere wenn Sie OOM nach Ihren Vorgaben konfiguriert haben. Wenn der OOM-Killer für die Bereinigung konfiguriert ist, ist es von Vorteil
mikeserv
22
Was ist der Unterschied zwischen 8 GB RAM und 8 GB Swap und 16 GB RAM und keinem Swap? Wenn Ihr Computer beschließt, 16.001 GB Arbeitsspeicher zu benötigen, wird er dann trotzdem mit dem Löschen / Beenden beginnen (die Leistung wird jedoch krater, bevor sie einsetzt)?
Nick T
5
@NickT: Der Swap ist nicht so sehr für mehr RAM als für eine rote Fahne, dass etwas bald getötet wird. Ich mag es, eine rote Fahne vor einem Kill zu haben, anstatt einen Prozess "zufällig" vor meinen Augen verschwinden zu lassen.
Mooing Duck
10
-1 Diese Antwort macht keinen Sinn. Warum zum Teufel hätte ein langsamerer Speicher (Swap) eine bessere Leistung als die gleiche Menge an schnellerem Speicher (RAM)? Irgendwann muss man sich genügend RAM eingestehen, was bedeutet, dass kein Swap notwendig ist.
Mehrdad
14
@Mehrdad: Es macht auf jeden Fall Sinn. Langsamerer Speicher (Swap) verbessert die Leistung, da "langsamer" für Dinge, auf die Sie selten oder nie zugreifen, keine Rolle spielt. Swap erhöht effektiv den für "heiße" Daten verfügbaren Speicher, indem "kalte" Daten ausgelagert werden. Ein Beispiel dafür sind Daemons, die nur einmal pro Stunde etwas ausführen oder den von einem Kernelmodul zugewiesenen Speicher, der standardmäßig geladen, aber nie verwendet wird. Sie können auslagern diejenigen , oder Sie können stattdessen Seiten aus dem Cache löschen. Welches ist besser?
Damon
50

Ich werde einigen der Meinungen, die ich hier sehe, nicht zustimmen. Ich würde immer noch eine SWAP-Partition erstellen, insbesondere in einer Produktionsumgebung. Ich mache das auch für meine Heimcomputer und VMs.

In diesen Tagen berechne ich sie um das 1-1,5-fache des Speichers. Früher galt das 2-fache des Gedächtnisses als Faustregel. Die Auslagerungsfestplatte ist "billig", da sie nicht gesichert oder geschützt werden muss.

Sollte Ihnen der Speicherplatz ausgehen, haben Sie in Ihrem Auslagerungsbereich ein wenig Zeit und Zeit, um das Problem zu beheben.

Beachten Sie, dass sich Dinge wie / tmp im Swap-Bereich befinden können.

Der Auslagerungsbereich kann einen Teil des Kernel-Dumps enthalten, damit dieser beim nächsten Neustart wiederhergestellt werden kann. Dies ist möglicherweise hilfreich für einen zukünftigen Debug-Notfall, zu dem Sie aufgefordert werden.

mdpc
quelle
16
+1. Ein Swap bedeutet den Unterschied zwischen der Leistungseinbußen bei geringem Arbeitsspeicher und einem harten Absturz.
Davidmh
6
@mikeserv Egal wie Sie es konfigurieren, wenn Ihr Programm versucht, mehr Speicher zuzuweisen, als verfügbar ist, stürzt etwas ab, oder das Betriebssystem beginnt, sie zu beenden.
Davidmh
6
@Davidmh: Aus diesem Grund muss Ihre Auslagerungsdatei unendlich groß sein, da Ihre Programme sonst immer noch abstürzen, wenn sie die Auslagerungsdatei erschöpfen.
Mehrdad
6
@Mehrdad ist es aber auch teurer. Angesichts der Tatsache, dass Sie über X GB RAM verfügen, da dies so viel ist, wie Sie sich leisten können, ist dies für einige vernünftige Werte von Y (die von Ihrer Nutzung und Größe abhängen) strikt schlechter als X GB RAM und Y Swap deine HD).
Davidmh
9
"Ihr Swap Space gibt Ihnen ein wenig Zeit und Polster, um das Problem anzugehen" - Es bedeutet auch, dass ich so viel länger vor einem nicht reagierenden Computer sitzen muss, bis sich ein Speicherverlust von selbst "löst".
Raphael
23

Vielleicht:

Ich habe viel über dieses Thema nachgedacht und gesehen, dass mehr Meinungen auf beiden Seiten des Arguments landeten, als ich zählen kann. Mein Ansatz war es, einen Weg zu finden, um es herauszufinden.

Beginnen Sie mit einer aktiven Swap-Partition, die Ihrer Meinung nach eine ausreichende Größe hat.

Öffnen Sie dann ein Terminal in einem Arbeitsbereich und geben Sie den Befehl ein, free -hs 1der jede Sekunde die Nutzung meldet.

Optional können Sie zu anderen Arbeitsbereichen wechseln.

Tun Sie alles, was Sie wahrscheinlich jemals tun werden, und dann noch etwas mehr. Führen Sie alle gängigen Apps auf einmal aus, durchsuchen Sie mehrere Registerkarten und versuchen Sie verzweifelt, dem System ein echtes Workout zu bieten. Dies kann bedeuten, dass Sie ein halbes Dutzend Videos neu codieren, während Sie einen Kompilierungsvorgang ausführen und Ihre E-Mails abrufen oder was auch immer. Seien wir ehrlich, hier geht es darum, wie Sie Ihr System verwenden.

Wenn Sie das Gefühl haben, dass das System stark ausgelastet ist (oder so hoch ist, wie Sie es wahrscheinlich jemals bekommen werden, und dann einige), schauen Sie sich das Terminal an und überprüfen Sie die Ergebnisse. Oder leiten Sie die Ausgabe noch besser in eine Datei um, indem Sie >output.txtsie zum Befehl hinzufügen , damit Sie den vollständigen Lauf untersuchen können. Wenn Ihr genutzter Swap Mem Free nie überschreitet, brauchen Sie keinen Swap. Wenn doch, tust du es. free.png

Ich brauche keinen Tausch. Vielleicht tust du es. Warum nicht herausfinden?

In Bezug auf den Größentausch werden Faustregeln in der Regel überbewertet, da es sich um eine nutzungsbasierte Frage handelt.

Elder Geek
quelle
2
Wollen Sie damit sagen, dass Swap immer dann verwendet wird, wenn Ihr System dies unbedingt erfordert? In welchem ​​Fall gibt es jemals eine Strafe dafür, dass der Tausch aktiviert ist - nur für den Fall? Andere Kommentare scheinen darauf hinzudeuten, dass selbst das Vorhandensein eines Swaps die Performance beeinträchtigen kann?
MrWhite
3
@ w3d Nein das sage ich nicht. Wie Sie meiner Ausgabe oben entnehmen können, wird Swap verwendet, auch wenn es nicht erforderlich ist. dies kann mit dem swappiness factor etwas angepasst werden. Ich spreche von der Notwendigkeit, tauschen zu müssen oder nicht.
Elder Geek
Können Sie dieses Skript verwenden, um den Swap nach oben zu erhöhen, wenn swapdie Zeit um ist free?
JFA
@JFA Ich habe das noch nicht gesehen. Persönlich habe ich Schwierigkeiten mit dem Konzept, eine unbestimmte Menge an Swap Space für diesen Zweck zu reservieren. Theoretisch sind alle Dinge möglich. Es ist die Implementierungsphase, die interessant wird.
Elder Geek
17

HINWEIS: Dies ist mir in einer bestimmten, ungewöhnlichen Situation passiert. Wenn Sie ein Problem beheben, kann dies hilfreich sein. Ich will damit nicht andeuten, dass ALLE Maschinen einen Tausch haben MÜSSEN.

VIELLEICHT!

Ich hatte in der Vergangenheit Probleme mit einer von mir gebauten "Appliance", auf der Linux ausgeführt wurde - auf einem CompactFlash-Gerät wollte ich meine CF nicht mit Swap verwenden, und es war genügend Speicher für die Anwendung vorhanden.

Die meisten dieser Geräte funktionierten einwandfrei, aber auf einer besonders belebten Box trat ein Problem auf:

SPEICHER-FRAGMENTIERUNG

Ohne Auslagerungsspeicher wurde der Speicher vor allem bei langen laufenden Prozessen nach und nach fragmentierter (obwohl ich viel freien Speicher hatte, war alles in sehr kleinen Teilen). Ich habe ein wenig Swap-Space eingefügt und Linux angewiesen, es nicht zu verwenden, es sei denn, es muss; Dies löste das Problem vollständig.

Zusätzlich zu allem anderen ermöglicht der Auslagerungsspeicher das Verschieben und Defragmentieren des Speichers. Wenn Sie einen fragmentierten Speicher haben und einen einzelnen großen Block benötigen, werden die Fragmente ausgetauscht. Wenn sie wieder eingelagert werden, werden sie effektiv defragmentiert.

Check out / proc / buddyinfo - meine sieht momentan so aus:

Node 0, zone      DMA      9      5      3      4      2      3      2      2      3      3      1 
Node 0, zone    DMA32  33901   1149      0      0      0      0      0      0      0      0      1 
Node 0, zone   Normal   2414   1632    259     22      3      0      2      0      1      1      0 

Die Zahlen stehen für Blöcke unterschiedlicher Größe. Jede Größe entspricht der Hälfte der Größe des nächsten Blocks, von 4 MB-Blöcken auf der linken Seite bis zu 4 KB auf der rechten Seite (dh 4 MB, 2 MB, 1 MB usw.). Eine neu gebootete Maschine sollte alle Blöcke links und nur sehr wenige rechts haben (= nicht fragmentiert). Denken Sie auch daran, dass die gleiche Menge an Speicher (z. B. 4 MB) in den Spalten als unterschiedliche Zahlen dargestellt wird - 1 Block in der ganz linken Spalte, 1024 in der ganz rechten Spalte.

Der Speicher wird aus dem Pool zugewiesen, der so weit wie möglich rechts liegt. Wenn Ihr Programm beispielsweise 12 KB Speicher benötigt (auf einmal), wird dies aus der 16-KB-Spalte übernommen. Der Rest wird in der 4-KB-Spalte angezeigt. Wenn es keine 16-kb-Blöcke gibt, werden die 32-kb-Blöcke verwendet, sodass 16-kb- und 4-kb-Blöcke übrig bleiben und so weiter.

Wenn es keine ausreichend großen Speicherblöcke gibt, und Sie über Swap Space verfügen, wird z. B. der am wenigsten genutzte Block mit 16 KByte (der z. B. einen 4-KByte-Block enthalten kann, einen 4-KByte-verfügbaren Block) gefunden. und 2 weitere verwendete 4-kb-Blöcke), verschieben Sie die USED-Teile nur, um sie auszutauschen, und weisen Sie der neuen Anwendung den freigegebenen Speicher zu.

In der abgestürzten Box hatte ich Hunderttausende von 4kb- und 8kb-Blöcken und sonst nicht viel.

Soweit ich das beurteilen kann (geht an den abgestürzten Maschinen vorbei!), Wechselt der Kernel von Speicher zu Auslagerungsspeicher und von Speicher zu Speicher, aber niemals von Speicher zu Speicher.

AMADANON Inc.
quelle
3
Ihr Fall sieht gut aus, um riesige Seiten zuzuweisen / zu implementieren. Es würde Fragmentierungsprobleme vermeiden (da eine riesige Seite einer bestimmten Größe, sobald sie zugewiesen wurde, von nun an und für immer nur in dieser Größe erneut zugewiesen wird) .
mikeserv
2
Das ist der beste Grund, warum ich jemals für die Verwendung einer Swap-Partition gelesen habe. Ich habe eine Schnellsuche durchgeführt und keine Referenz gefunden. Ich frage mich, warum diese Funktion nicht häufiger dokumentiert wird.
마 SE
1
(nicht transparente) Riesenseiten können von Ihrer App möglicherweise nicht verwendet werden. In der Regel können Apps, die tonnenweise Speicher benötigen, diese verwenden. zB Datenbankserver, Java JVM. Sie müssen explizit aktiviert werden und werden zu einem separaten Speicherpool, der nicht für andere Zwecke verwendet werden kann. Dies kann je nach Ihren Umständen gut oder schlecht sein. Informieren Sie sich auch über transparente Riesen-Seiten. Diese versuchen, Dinge so zu verschieben, dass Sie riesige Seiten verwenden (um die Leistung zu verbessern), obwohl Ihre Apps nicht wissen, wie. Wenn das Gedächtnis fragmentiert ist, können die Dinge nach Süden gehen, da der Riesen-Seitenfeger mehr zu tun hat.
Dan Pritts
1
Ich bezweifle nicht, dass Sie Erfahrung mit Ihrer Flash-Appliance haben. Ich bin nur nicht davon überzeugt, dass der von Ihnen vorgestellte Einzelfall wahrscheinlich einen Austausch erfordert, und ich bin weiterhin nicht davon überzeugt, dass die Speicherfragmentierung mit dem Austausch zusammenhängt oder nicht. Es wirft eine interessante Frage auf, die leicht geprüft und bewiesen oder widerlegt werden könnte.
Elder Geek
1
Folgefrage . Was meinst du mit "Speicherfragmentierung"? Der MMU ist es egal, ob die für aufeinanderfolgende Seiten in einem virtuellen Adressraum verwendeten physischen Seiten aufeinanderfolgend sind oder nicht. Physische Seiten sind fragmentiert, aber das spielt keine Rolle (solange es sich um normalen Anwendungsspeicher auf einem physischen Computer mit einem Cluster handelt und nicht z. B. um Speicherseiten, die von einem Peripherie- oder Hypervisor verwendet werden). Wenn ein Programm nach 16 KB fragt, erhält es vier Seiten, die sich im physischen Speicher möglicherweise irgendwo in der Nähe befinden.
Gilles
15

Eine Swap-Partition hat einen hohen Stellenwert, da sie nicht nur als zusätzlicher RAM-Speicher fungiert, wenn der Speicher knapp wird.

Zum einen verwendet Linux so viel Speicher wie möglich, um Dateien und E / A-Vorgänge zwischenzuspeichern. Wenn Sie über einen Swap verfügen, wird möglicherweise mehr Speicher für das Zwischenspeichern von E / A-Vorgängen benötigt und beschleunigt (indem der Festplattenzugriff minimiert und der Verschleiß von SSDs verringert wird) Daten zu speichern, die ein Programm zugewiesen hat, die jedoch nur alle 12 Stunden verwendet werden, was bei einigen Daemons der Fall sein kann.

Darüber hinaus verwendet Linux eine optimistische Speicherzuweisungsstrategie, mit der die Seiten nominal zugewiesen werden können, auch wenn nicht sicher ist, ob sie über echten Speicher verfügen, um sie zu füllen. Dies ist effizienter als eine ordnungsgemäße Überprüfung und Zuordnung jeder Zuordnung und verursacht normalerweise keine Probleme. Zu den Heuristiken, die der Kernel verwendet, um festzustellen, ob das Zulassen einer Zuordnung sinnvoll ist, gehört der auf dem System verfügbare Swap-Level. Daher können Zuordnungen schneller sein, wenn das System über viel Swap verfügt, auch wenn es nicht häufig verwendet wird.

Diese Faktoren lassen mich persönlich glauben, dass es besser ist, auf fast jedem normalen System einen Swap durchzuführen. Bei großen RAM-Größen ignoriere ich jedoch die RAM * 2-Regel und beschränke meinen Swap einfach auf 4 bis 8 GB (abhängig von der Größe der Festplatte) ).

Wertigkeit
quelle
9
Selbst 4 GB sind für einen Desktop zu groß. Ich möchte lieber, dass der OOM-Killer aktiviert wird, bevor ich darauf warte, dass sich so viel Swap auffüllt, wenn etwas schief geht. (Wenn ich jemals auf einen Fall stieß, in dem ich mehr benötigte, konnte ich eine Auslagerungsdatei dd und mkswap, bevor ich einen riesigen Auftrag ausführte, der mehr virtuellen Speicher benötigte, als mein Computer über RAM verfügte. Das heißt, wenn das Beenden meines Webbrowsers nicht ausreichend frei wurde ...)
Peter Cordes
@PeterCordes Das hängt wahrscheinlich davon ab, welche Art von Aufgaben Sie erledigen. Ich verstehe das vollkommen. Persönlich profitiere ich von einem hohen Swap-Level, da ich oft lange Kompilierungen mit niedriger Priorität im Hintergrund mache, während ich meinen Computer benutze. Diese werden dann ausgetauscht, wenn der Speicher ansonsten knapp ist (normalerweise, wenn der Computer zu beschäftigt ist, um Kompilierungen durchzuführen) sowieso). Trotzdem stimme ich zu, dass es eine sehr persönliche Sache ist, die auf der Arbeitsbelastung basiert. Man sollte immer über den eigenen Gebrauch nachdenken, bevor man sich entscheidet.
Vality
1
lustige Geschichte: erst heute hat Firefox auf meinem Laptop mit 4 GB RAM, 0,5-G-Swap (SSD) den OOM-Killer ausgelöst (der sich für Firefox entschieden hat). Das war mir noch nie passiert. (Obwohl ich meinen Laptop öfter als gewöhnlich benutzte). Es lief so ziemlich nichts anderes (nur Gnome-Terminal in xfce). Also denke ich, dass ich damit einverstanden bin, da Firefox besser wissen sollte, als so viel RAM zu binden. Ich habe vor einiger Zeit jemanden sagen sehen, dass "Webbrowser existieren, um das Subsystem für den virtuellen Speicher einem Stresstest zu unterziehen", oder so ähnlich. Firefox ist ziemlich schlecht darin, Caches für Tabs freizugeben, die seit Tagen nicht mehr verwendet wurden usw.
Peter Cordes
3
Ein Fall, in dem Linux den verfügbaren Swap-Speicher als verfügbar ansieht, besteht darin, dass ein großer Prozess versucht, ein untergeordnetes Element zu starten: Die Systemaufrufe fork () + exec () duplizieren zunächst grob die Zuweisung des übergeordneten Elements. Der Kernel kann nicht garantieren, dass das neue untergeordnete Element kleiner wird als die Eltern. Der Auslagerungsbereich wird normalerweise nicht verwendet, aber wenn er nicht verfügbar ist, schlägt fork () möglicherweise fehl. Ein typisches Beispiel auf einem Client ist ein Browser, der ein Plug-In startet, oder auf einem Server, wenn ein großer Anwendungscontainer ein Hilfsprogramm aufruft. 1/2 oder 1 GB Swap reichen normalerweise aus, um das Problem zu lösen. Google "Java Exec kann Speicher nicht zuordnen"
James
13

Sie sollten niemals einen Swap haben, der größer ist als die maximale Größe, die Sie tolerieren können, wenn Sie darauf warten, dass der Kernel ein- oder auslagert. Andernfalls erstellen Sie lediglich einen neuen Fehlermodus für Ihr System (der beim Austauschen nicht mehr wiederherstellbar ist). Beachten Sie, dass Linux trotz moderner Laufwerke, die Daten in der Größenordnung von GB / s übertragen können, in der Regel nur Swap-Bewegungen ausführen kann, die Hunderten von kB oder bestenfalls einigen MB pro Sekunde entsprechen. Ein so großer Swap kann Ihr System für Minuten, Stunden oder sogar Tage unbrauchbar machen.

Wenn Sie über ausreichend physischen Speicher für Ihre Aufgaben verfügen, sollten Sie die Größe des Swap-Speichers an die Menge der "Junk Data" -Prozesse anpassen, die zwar vorhanden sind, aber niemals verwendet werden. Dies liegt wahrscheinlich im Bereich von wenigen bis einigen hundert Megabyte. Diese Strategie ermöglicht es, den gesamten physischen Speicher zum Zwischenspeichern nützlicher Informationen zu verwenden und nicht als permanenten Speicher für Daten, die wahrscheinlich nie wieder verwendet werden.

Wenn Sie nicht über genügend physischen Speicher verfügen, müssen Sie prüfen, ob Sie eine starke Verlangsamung durch starkes Auslagern tolerieren können. Wenn ja, mit bis zu 1-2 GB Swap könnte Sinn machen, und vielleicht bis zu 4 GB , wenn Sie extrem schnelle Laufwerke haben. Aber mehr als das wird die Ausfallmodi Ihres Systems nur verschlimmern, und Sie sollten stattdessen in Betracht ziehen, einfach mehr RAM zu kaufen.

R ..
quelle
2
Ich denke das ist die beste Antwort. Wenn Sie zu viel Auslagerungsspeicher haben, reagiert die Maschine möglicherweise aufgrund des gesamten Auslagerungsvorgangs nicht mehr. Dies bedeutet, dass Sie den störenden Prozess nicht beenden können. Wenn Sie den Swap-Bereich verkleinern, erledigt der OOM-Killer Ihren Job automatisch für Sie. Die Argumente in anderen Antworten zum Dateipuffer-Caching sind absolut nicht überzeugend. Sie sollten Swap haben, damit der Kernel Dateipuffer zum Swap verschieben kann ... welches ist auf der Festplatte? Bitte.
Timmmm
Das einzige Argument gegen Swap Space, das ich finden kann, ist folgendes: "Ein Programm leckt den Speicher". Und? Wenn der OOM-Killer wichtige Dinge tötet, die Sie nicht gespeichert haben, haben Sie effektiv Ihre Arbeit verloren. Das bedeutet, dass dieses Argument völlig irrelevant wird. Ich kann einfach das Herunterfahren meiner Maschine erzwingen, um genau den gleichen Effekt zu erzielen, während für Aufgaben mit niedriger Priorität, die viel Speicher beanspruchen und häufig ausgelagert werden, immer noch viel Auslagerungsspeicher zur Verfügung steht. Wenn Ihre Maschine in einem solchen Zustand hängen bleibt, sind Sie selbst schuld. Das einzige Mal, dass es mir passiert ist, war, als ich selbst ein Programm geschrieben habe, um den gesamten Arbeitsspeicher zu füllen.
Sahsahae
11

Nur wenn Sie in der Lage sein möchten, in den Ruhezustand zu wechseln (Diese Funktion wird auch als "Suspend to Disk" bezeichnet und umfasst das Speichern des gesamten RAM-Inhalts und das Ausschalten der Stromversorgung). In der Regel wird dies nur auf Laptops und anderen Mobilgeräten verwendet, es hängt also davon ab.

hanetzer
quelle
6

Es gibt keine allgemeingültige und eindeutige Antwort, da dies von einer Aufgabe abhängt, die Sie ausführen möchten. Wenn Sie einen DB-, HTTP-, Virtualisierungs- oder Cache-Server ausführen möchten, sollten Sie niemals einen Swap aktivieren, unabhängig von der Größe des Arbeitsspeichers. Wenn Sie einen Desktop- oder Mixed-Task-Host haben und über 16 GB schnelles RAM verfügen, schauen Sie hier: zRam

Alexey Vesnin
quelle
zRam ist eine gute Wahl. Ich habe es in Verbindung mit winzigen Flash-Laufwerks-Systemen gut eingesetzt.
Elder Geek
1
@ ElderGeek Ich habe es auch in einer plattenlosen Umgebung verwendet, z. B. Netzwerk-Boot. Großartige Arbeit, aber es gibt einige Vorbehalte: Zuerst brauchen Sie nicht nur mehr, sondern auch einen SCHNELLEN Widder. Langsame und kostengünstige RAM-Module, die Sie wahrscheinlich in einem herkömmlichen klassischen Fall einsetzen würden, können ein Problem verursachen. Der CPU-Front-Side-Bus muss ebenfalls berücksichtigt werden: Selbst wenn Sie eine langsamere CPU-Frequenz, aber eine schnellere FSB-Frequenz haben können, wird dies Ihre Leistung erheblich verbessern. Das zweite Problem betrifft eine Reihe von zRam-Swap-Partitionen. Versuchen Sie es mit Zahlen von 1 bis zur Nummer Ihres CPU-Kerns. Nicht auf Single-Core-Systemen verwenden!
Alexey Vesnin
Gute gültige Punkte alle. Da ich ein Performance-Freak bin und immer meine eigenen Systeme entwerfe und baue, bin ich nicht persönlich von solchen Bedenken geplagt
Elder Geek
@ ElderGeek mich auch :) schön dich zu treffen! Ich habe auch eine seltsame Sache im zRam-Verhalten bemerkt. Es erscheint und verschwindet in verschiedenen Kernelversionen und -konfigurationen, ist aber bei Kernel HZ 100 und 1000 hoch reproduzierbar. ZRam funktioniert gut für 1,2,4 - aber nicht mehr Partitionen. Sogar auf 8 und 16 physischen Kernen auf der Top-Hardware bei fast inaktiven Aufgaben. Denken Sie also daran, mit Tweaks zu spielen! Grüße aus Russland!
Alexey Vesnin
Ich bin nicht einverstanden mit "Wenn Sie eine Datenbank betreiben, ... sollten Sie niemals eine Art von Swap aktivieren, unabhängig davon, welches RAM-Mount Sie haben". Das Austauschen ist normalerweise dem Töten zufälliger Prozesse durch OOM-Killer vorzuziehen. Ja, Sie sollten genügend Arbeitsspeicher für die von Ihnen ausgeführten Anwendungen haben, und ja, die Verwendung großer Mengen an Swap kann Ihr System verlangsamen. Ich beneide dich, in einer idealen Welt zu leben.
AMADANON Inc.
5

Es ist nicht möglich festzustellen, ob Sie Auslagerungsspeicher benötigen oder nicht, ob der einzige Parameter, den wir kennen, die Größe des installierten Arbeitsspeichers ist.

In jedem Fall gibt es ein weit verbreitetes Missverständnis, dass ein Swap Space die Systemleistung negativ beeinflusst. Das ist falsch. Solange Sie über genügend RAM verfügen, wirkt sich ein Swap-Bereich unabhängig von seiner Größe überhaupt nicht negativ auf die Leistung aus. Die Leistung wird dadurch beeinträchtigt, dass der Arbeitsspeicher knapp ist und der Auslagerungsspeicher effektiv genutzt wird.

  • Fall 1: Wenn Sie keinen Auslagerungsspeicher haben und nicht genügend RAM zur Verfügung stehen, wählt der Linux-Kernel einen oder mehrere Prozesse aus, die er für gute Kandidaten hält, und beendet sie.

  • Fall 2: Wenn Sie einen Auslagerungsspeicher haben und nicht mehr über genügend RAM verfügen, wählt der Kernel weniger genutzte Speicherseiten aus und legt sie im Auslagerungsbereich ab, um RAM freizugeben. Dadurch wird das System verlangsamt, Ihre Anwendungen sind jedoch nicht anderweitig betroffen.

Ich bevorzuge immer Fall 2, da es mir unangenehm ist, Teile oder meine gesamte Arbeit zu verlieren, weil der Kernel meint, meine Anwendungen sind es wert, getötet zu werden. Darüber hinaus sollte es angesichts der aktuellen Größe einer durchschnittlichen Festplatte im TB-Bereich kein Problem sein, ein paar Prozent für den Austausch zu reservieren.

jlliagre
quelle
6
Ich bevorzuge Fall 1, weil mir nur dann der Arbeitsspeicher ausgeht, wenn ich ein außer Kontrolle geratenes Programm habe. Der OOM-Killer ist im Allgemeinen ziemlich gut darin, Ausreißer zu identifizieren, und ich würde ihn lieber sofort töten lassen, als nach ein paar Stunden intensiven Austauschs.
Mark
1
@ Mark, das ist ein gültiger Punkt. Ich versuche immer noch zu vermeiden, dass der Dreh zuerst an einen Algorithmus delegiert wird, und denke an einen späteren Ansatz.
Juli
2
Fall 2 ist nur gültig, wenn Sie eine Warnung zu dieser Situation haben und genügend Zeit haben, um manuell etwas zu tun, bevor das System nicht mehr auslagert. Sie können jedoch auch den Prozentsatz des verwendeten Arbeitsspeichers überwachen, um dieselben Ergebnisse zu erzielen.
Totor
1
Basierend auf Ihren Überlegungen ist die Überwachung der RAM-Auslastung ausreichend .
Totor
1
@Totor Ich möchte nicht mitten in der Nacht von meiner Laptop-Überwachungs-App geweckt werden, weil ich einen Stapel gestartet habe, der eine Reihe von Dateien verarbeitet und den Arbeitsspeicher erschöpft hat. Ich ziehe es vor, die Arbeit zu erledigen, auch wenn es wegen zu geringer RAM-Größe ein paar Stunden länger dauert, als wenn das Ganze unterbrochen wird.
Juli
3

Meine Regel, Swap in einem beliebigen System anzuwenden, lautet, die Antwort darauf zu haben:

  • Was ist der Zweck des Systems?
  • Wie viel Speicher verbrauchen die Anwendungen?
  • Ist das ein kritisches System?
  • Benötige ich einen temporären Speicherplatz für Dateiübertragungen?
  • Voraussichtliche Wachstumsrate der Anwendungen?

Wenn ich eine Antwort auf diese Information bekomme, passe ich das System entsprechend an. In früheren Jahren habe ich die Faustregel von Sun Microsystem angewendet. Bis zu 16 GB doppelt so viel RAM für SWAP, von 16 GB bis zur gleichen Menge. Wenn Sie jedoch über genügend RAM verfügen und Ihre Apps SWAP nicht zwangsweise verwenden, können Sie auf Swap verzichten. Bei Bedarf müssen Sie lediglich eine neue Festplatte oder ein neues LUN einlegen und den SWAP konfigurieren. Die Sun-Regel galt hauptsächlich, weil unter Solaris im Falle einer "Kernel-Panik" der Speicher vollständig gesichert und für die weitere Analyse ausgetauscht wurde.

BitsOfNix
quelle
1

Swap wird benötigt, wenn Sie nicht genug RAM haben , um alle Ihre Programme auszuführen.

Sie sagen, Sie tun nichts, was viel RAM erfordert. Sie haben also genügend RAM.

Dann brauchen Sie keinen Swap Space.

Aber wenn Sie glauben, dass Ihre Programme irgendwann mehr als die Hälfte (oder zwei Drittel) Ihres Arbeitsspeichers (Faustregel) belegen, lesen Sie bitte den anderen "Pro-Swap" "Antworten. Sie werden es nicht brauchen , tauschen, aber es könnte verbessern die Leistung Ihres Systems.

Totor
quelle
Die Verwendung von Swap kann dazu beitragen, einen katastrophalen Absturz zu vermeiden, verbessert jedoch niemals die Leistung, da ein Ferrari durch einen Fallschirm beschleunigt wird. ;-)
Elder Geek
@ ElderGeek Es könnte ein Randfall sein, aber Swap kann helfen. Es gibt Zeiten, in denen Sie gerade genug RAM für alles haben, aber inaktive Programme können ausgetauscht werden, um den RAM besser zu nutzen (z. B. nützlicher Festplatten-Cache). Ich habe das in den späten 90ern oft gesehen. Ich sehe das jetzt manchmal, wenn ich <1 GB freien RAM (einschließlich Festplatten-Cache) habe, ohne tatsächlich Auslagerungsspeicher zu benötigen.
jbo5112
@ jbo5112 Ich werde die Möglichkeit nicht ganz ausschließen, wenn du es sagst, meine Erfahrung hat bisher etwas anderes gezeigt. Dies ist nicht allzu überraschend, da es sich um einen Fall handelt, bei dem das System mehr als eine feste Regel ist (nach der jeder zu suchen scheint).
Elder Geek
@ElderGeek Ich kann es jetzt nur sehen, weil meine Festplatten ein Jahrzehnt alt sind und dringend Cache benötigen. In der Regel besteht ein zusätzliches Problem darin, dass die Swap-Einstellungen für fast jeden Fall viel zu hoch eingestellt sind, was dazu führt, dass der Swap-Bereich viel zu aggressiv genutzt wird. Es scheint eine häufige Empfehlung zu sein, den Wert von 60 auf 10 zu senken. Sie können noch tiefer gehen, aber irgendwann werden Sie zu viel Festplatten-Cache ablegen, was beim Auslagern eine Menge zusätzlicher E / A verursacht.
jbo5112
@ jbo5112 Guter Punkt. Es ist immer ein Balanceakt zwischen den verschiedenen Subsystemen. Ich erinnere mich, dass ich früher Dinge wie Festplatten-Interleave und RAM-Aktualisierungsrate anpasste, um die maximale Leistung von 80286-Systemen mit Seagate ST225- und ST238-Laufwerken zu erzielen. Wir müssen immer von Fall zu Fall vorgehen, um maximale Leistung und Zuverlässigkeit zu erzielen. Glückwunsch übrigens! Das letzte Mal, als ich ein Jahrzehnt aus einer Fahrt herauspressen konnte, war es eine Micropolis mit insgesamt 600 MB.
Elder Geek
0

Die kurze Antwort:

Ja, Sie müssen immer tauschen, nur in dem unwahrscheinlichen Fall, dass sich eine Anwendung nicht um die Zuordnung des Arbeitsspeichers kümmert, sondern den virtuellen Arbeitsspeicher direkt zuordnet.

Stellen Sie Ihre Auslagerungsdatei auf:

  • RAM+round(sqrt(RAM)) Wenn Sie den Winterschlaf verwenden
  • round(sqrt(RAM)) wenn du nicht

Setzen Sie Ihre swappinessauf einem Desktop auf 10, aber nicht auf einem Server!

Die lange Antwort:

In der Vergangenheit:

Die Faustregel, die in den letzten 25 Jahren angewendet wurde, war ein Minimum von 1xRAM und ein Maximum von 2xRAM .

Dieses Minimum wurde in der Steinzeit zurückgesetzt, als ich noch ein Teenager war und Dinosaurier die Erde durchstreiften, und weil RAM einfach zu teuer war und man diesen Swap-Platz 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 austauschen zu müssen, 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 Sie keinen Swap-Speicher mehr hatten, war es an der Zeit, mehr RAM hinzuzufügen! (was heute noch gilt).

In der Gegenwart:

  1. Wenn Sie den Ruhezustand nicht verwenden und mehr als 1 GB Arbeitsspeicher zur Verfügung stehen, lautet die neue Faustregel, round(sqrt(RAM))wo RAMsich offensichtlich Ihre RAM-Größe in GB befindet.

  2. Wenn Sie den Ruhezustand verwenden, müssen Sie in der Lage sein, den gesamten Arbeitsspeicher + den bereits ausgelagerten Arbeitsspeicher auf die Festplatte zu übertragen. 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, Sie haben mit den anderen Methoden keinen ausreichenden Auslagerungsspeicher mehr .

All dies zusammen ergibt die folgende Tabelle: (Die letzten 3 Spalten geben den Swap Space 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

Das Obige ist nur eine Faustregel; Es ist nicht das Gesetz der Schwerkraft!
Sie können diese Regel (im Gegensatz zum Gravitationsgesetz) brechen, wenn Ihr spezieller Anwendungsfall anders ist!

Pro-Tipp: Weisen Sie SWAP immer am Anfang einer Festplatte zu, da sich die Köpfe auf der Innenseite der Festplatte weniger bewegen müssen.
Ja: Auf SSDs spielt es keine Rolle mehr, wo Sie den Swap-Bereich finden, da sie Quantentunneling anstelle von Moving Heads verwenden und moderne SSDs alle ihre Speicherzellen (auch den nicht zugewiesenen Speicherplatz) verwenden, um eine Verschlechterung der Quantenzahl zu verhindern.

So testen Sie, ob sich Ihre Swap-Nutzung von der "generischen" Regel unterscheidet:

Führen Sie einfach Folgendes aus:

for szFile in /proc/*/status ; do 
  awk '/VmSwap|Name/{printf $2 "\t" $3}END{ print "" }' $szFile 
done | sort --key 2 --numeric --reverse | more

Daraufhin erhalten Sie eine Liste aller laufenden Programme, die ausgelagert wurden (wobei das Programm den meisten Auslagerungsspeicherplatz oben verwendet).

Wenn Sie mehr als ein paar KB verwenden: Ändern Sie die Größe auf mehr als das Minimum, andernfalls stören Sie 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 schnell wie möglich reagiert und nur dann ausgetauscht wird, wenn dies wirklich erforderlich ist . Ubuntu wurde optimierte früh für die Server - Einsatz zu tauschen, aber 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:

sudo nano /etc/sysctl.conf

und füge hinzu:

# 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 am Ende der Datei ( Ctrl+ XY+ Enterin nano) und führen Sie Folgendes aus:

sysctl --system

Um den Parameter neu zu laden oder um der alten Zeit willen, nimm den Window $ -Ansatz und starte neu ... :-)

Fabby
quelle
-1

Kompromisslösung: Es kommt auf die Bedeutung von "sollte" an.

Haben Sie benötigen eine Swap - Partition in dem Sinne , dass etwas Schlimmes passieren wird , wenn Sie nicht eine unter den Betriebsbedingungen können als Sie beschreiben? Nein.

Es ist ratsam , eine Swap-Partition zu haben, für den Fall, dass Sie versehentlich eine Armee von Memory-Schweinen hervorbringen, damit Sie die Chance haben, sie zu töten, bevor der OOM-Killer einsetzt? Ja.

Wenn Ihr physischer Arbeitsspeicher die Datenspeicherauslastung aller Programme, die Sie zu jeder Zeit gleichzeitig ausführen, "erheblich" überschreitet, hat ein Swap keinen Leistungsvorteil. Wenn der Wert den Wert überschreitet, jedoch nicht "erheblich", kann das Betriebssystem einen Leistungsvorteil erzielen, wenn es in der Lage ist, selten verwendeten Speicher auszutauschen, um häufiger zugegriffene Dateidaten im Arbeitsspeicher zu behalten.

Zusammenfassend ist es toll, dass Sie 16 GB RAM haben. Aber wenn Sie auch eine 1-TB-Festplatte haben, können Sie nicht 16 GB für den Austausch reservieren? Es ist nur 1,5% der Festplatte.

Atsby
quelle