Sollten Linux-VMs in VMware / ESX eine Swap-Partition haben?


18

Was ist der Unterschied zwischen diesen Optionen bei einem VMware ESX-Setup ?:

  • Eine Linux-VM mit 1 GB RAM und 1 GB Swap-Partition. Die VM verwendet 1,5 GB RAM
  • Eine Linux-VM mit 1 GB RAM und keiner Swap-Partition. Die VM verwendet 1,5 GB RAM

Ich meine, in beiden Fällen wird Swap verwendet.

  • Beim ersten Swap wird auf die Linux-Swap-Partition gewechselt
  • Im zweiten Fall tauscht VMware 512 MB in den VMware-Speicherpool aus.

Gibt es also irgendeinen Grund, Linux-VMs eine Swap-Partition zu geben?


Sie fragen, ob der ESX-Host einen Swap benötigt oder nicht oder wie er mit der VM umgeht? Möglicherweise möchten Sie die Frage näher erläutern, um anzugeben, was Sie meinen.
Bart Silverstrim

Hoffentlich jetzt erledigt.
Sandra

Antworten:


15

Ich habe zwei Gründe, warum es eine schlechte Idee ist, nicht mit einer Swap-Partition / -Datei zu arbeiten.

  1. Wenn einer VM ohne Speicherplatzdatei / -partition 1,5 GB RAM zugewiesen sind und 1,5 GB + 1 MB verwendet werden sollen, wird ein Speicherfehler gemeldet. Mit dem Auslagerungsspeicher können Daten aus dem aktiven Speicher auf die Festplatte ausgelagert werden.
  2. Das Gastbetriebssystem erledigt die Speicherverwaltung wesentlich besser als der Host. Aus diesem Grund gibt es Technologien wie Memory Ballooning, da der Host fundierte Vermutungen darüber anstellen kann, welcher Speicher derzeit nicht benötigt wird, der Gast dies jedoch auf einer viel intelligenteren Ebene weiß (dies verhindert, dass der Arbeitsspeicher des Betriebssystems ausgetauscht wird, was Ihre Leistung beeinträchtigen könnte).

10

Ja. Es ist der Unix-Weg.

Unix (sogar Linux) erwartet , dass es in der Lage ist, zu tauschen.
Schlechte Dinge passieren, wenn das System nicht ausgetauscht werden kann (entweder weil es ohne eine Swap-Partition falsch konfiguriert wurde oder weil der Swap-Bereich voll ist). Unter Linux ist eines dieser schlechten Dinge der Out-of-Memory-Killer, der ein Messer in den Hintergrund des Programms stößt, von dem es annimmt, dass es den meisten Arbeitsspeicher verwendet (Datenbankserver sind ein bevorzugtes Ziel).


4

Was hast du /proc/sys/vm/overcommit_memoryeingestellt? Aus der Kerneldokumentation:

0       -       Heuristic overcommit handling. Obvious overcommits of
                address space are refused. Used for a typical system. It
                ensures a seriously wild allocation fails while allowing
                overcommit to reduce swap usage.  root is allowed to
                allocate slightly more memory in this mode. This is the
                default.

1       -       Always overcommit. Appropriate for some scientific
                applications.

2       -       Don't overcommit. The total address space commit
                for the system is not permitted to exceed swap + a
                configurable percentage (default is 50) of physical RAM.
                Depending on the percentage you use, in most situations
                this means a process will not be killed while accessing
                pages but will receive errors on memory allocation as
                appropriate.

Wenn Sie also 1 verwenden, gibt es keinen Unterschied. Wenn Sie 2 und keine Linux-Auslagerungsdatei verwenden, kann kein Prozess 512 MB (virtuellen) Speicher zuweisen. Das Ergebnis ist für 0 nicht klar.

Bearbeiten: Unter http://utcc.utoronto.ca/~cks/space/blog/linux/LinuxVMOvercommit funktioniert 0 wie folgt:

Heuristische Überlastungsversuche, um herauszufinden, wie viel Speicher das System Ihnen zur Verfügung stellen könnte, wenn es den gesamten verfügbaren Speicher beansprucht und kein anderer Prozess mehr RAM verwendet als derzeit. Wenn Sie mehr verlangen, wird Ihre Zuweisung abgelehnt. Insbesondere wird die theoretische Anzahl des 'freien Speichers' berechnet, indem der freie Auslagerungsspeicher, der freie Arbeitsspeicher (weniger als 1/32, wenn Sie kein Root-Benutzer sind) und der gesamte vom einheitlichen Puffercache und den Kerneldaten belegte Speicherplatz addiert werden (weniger einige reservierte Seiten).

Daher wird auch Swap in der Berechnung verwendet. Im Allgemeinen würde ich der RHEL-Empfehlung folgen:

M = Amount of RAM in GB, and S = Amount of swap in GB, then
If M < 2
    S = M *2
Else
    S = M + 2

1
cat /proc/sys/vm/overcommit_memorykehrt zurück 0. Was empfehlen Sie in Bezug auf overcommit_memoryWert und Swap / No Swap?
Sandra

3

Swap-Partitionen können möglicherweise schneller sein, insbesondere in Situationen, in denen die Root-Festplatte fast voll ist und Sie keine Auslagerungsdatei in einem Stück ohne Fragmentierung erstellen können, geschweige denn den Overhead, der durch das Dateisystem und gegebenenfalls durch Dinge wie erstellt werden kann LVM.

Die Leistung beider Computer ist jedoch ohnehin schlecht, wenn Sie 33% Ihres Speicherbedarfs auf der Festplatte belassen.


Wenn Sie "root disk" sagen. Meinen Sie auf dem ESX-Host, auf dem ESX seine Auslagerungsdateien erstellt?
Sandra

Nein, ich meine die Systemfestplatte der VM, die das Root-Dateisystem enthält. Schließlich findet hier das Auslagern statt, wenn keine dedizierte Auslagerungspartition vorhanden ist.
Sven

Diese Antwort diskutiert zwischen Swap-Partition und Swap-Datei. Ich dachte, die Frage wäre, ob du überhaupt einen Tausch brauchst.
user606723

@ user606723: Wenn Sie Swap überhaupt nicht verwenden, kommt es zu einem Speichermangel, wenn Sie versuchen, mehr Speicher als die VM zuzuweisen, und die Verwendung von 1,5 GB bei einer physischen Situation von 1 GB ohnehin nicht möglich ist.
Sven

@SvenW, ja, aber es ist nicht selbstverständlich, dass so etwas wahrscheinlich ist. Das muss der Administrator entscheiden.
user606723

0

Weitere Informationen finden Sie unter folgendem Link: https://help.ubuntu.com/community/SwapFaq

Grundsätzlich hat eine Swap-Partition keinen wesentlichen Vorteil, es sei denn, Sie benötigen einen Ruhezustand oder verwenden mehr Speicher, als Sie der VM zuweisen.

Ich habe auf keinem meiner Linux-Rechner seit Jahren eine Swap-Partition / -Datei verwendet.


1
Die Frage ist nicht über Swap / No Swap. Es geht darum, wie VMware mit Swap umgeht.
Sandra

0

Der offensichtliche Vorteil von Swap besteht darin, dass Sie bei einem Absturz Ihres Computers immer noch einen Absturzspeicherauszug erstellen können. Korrigieren Sie mich, wenn ich falsch liege, aber leider geht das nicht ohne Tausch. Dies ist natürlich nicht VMWare-spezifisch, sondern gilt überall. Ich hatte das Gefühl, dass es wichtig sein könnte, darauf hinzuweisen.

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.