PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnissfrage: Speicherverwaltung unter ESX



Wene
26.02.09, 22:15
Hallo

Unter Linux ist es ja im Gegensatz zu Windows 2003 / XP üblich, möglichst den ganzen verfügbaren RAM Speicher auszunutzen. Auf Physikalischen Maschinen hat dies durchaus einige Vorteile.

Nun betreibe ich auch einige Linux Server als ESX Gastsysteme. Hier stellt sich mir die Frage wie die Speicherverwaltung nun abläuft. Durch die Gasterweiterungen "weiss" der Linux Gast ja von der Virtualisierung. Wird dadurch auf eine andere Speicherverwaltungsstrategie umgestellt? Oder soll der verfügbare Speicher für ESX Gastsysteme besser knapp berechnet werden? Und soll man auf der virtuellen Festplatte eine Swap Partition anlegen oder übernimmt das Swappen sowieso der ESX Host?

Fragen über Fragen... :D

Wer kann hier ein wenig Licht ins Dunkle bringen?
Vielen Dank schon mal für die Hilfe!

marcdevil
27.02.09, 14:02
Cache wird nicht vom VMWare Server als Applikationsspeicher gehalten, wo der aber nun genau liegt weiss ich auch nicht so genau.

Wene
27.02.09, 19:44
Hab ich das jetzt richtig verstanden? Der ESX Server erkennt den Teil welchen der Gast als Cache verwendet und schreibt diesen woanders hin als den Teil das als Hauptspeicher verwendet wird?

Bleibt die Frage der Strategie bei der Speicherzuteilung:

A) Dem Gast viel Speicher zuteilen und darauf vertrauen dass dieser bei Nichtgebrauch anderen VMs zur Verfügung steht.

B) Dem Gast nur soviel Speicher wie unbedingt nötig zuweisen dass möglichst viel Ressourcen auf dem Host frei bleiben.

Wie macht ihr das?

L00NIX
28.02.09, 07:33
Zuerst mal: VMware Server != ESX Server


Immer den Gästen soviel Speicher geben, wie sie brauchen.

Die Speicherverwaltungstechniken der VMware Tools (Ballooning) ist teurer als das Gast-OS unabhängige Memory Sharing auf der ESX-Seite, also durch den Host.

Wenn keine VMware Tools drauf sind, bzw. der vmmemctl-Treiber nicht aktiv ist wird es sogar so sein, dass der Anwendungs-Cache des Linux-Gastes im Fall der Fälle auf der Platte landet, also im Swapfile der VM.

Gruß
L00NIX

Wene
03.03.09, 21:47
Zuerst mal: VMware Server != ESX Server
Das war mir klar. Daher hab ich auch immer von ESX gesprochen.



Immer den Gästen soviel Speicher geben, wie sie brauchen.

Die Speicherverwaltungstechniken der VMware Tools (Ballooning) ist teurer als das Gast-OS unabhängige Memory Sharing auf der ESX-Seite, also durch den Host.

Nun ja, in meinem Fall ist das mit dem Speicherbedarf nicht so klar definiert.
Der betroffene Server läuft normalerweise als Wiki-Server im Intranet. Das heisst maximal 10 bis 20 Aufrufe pro Stunde. Das steckt der mit 512 MB RAM locker weg.
Nun gibt es aber Tage an denen der Server spezielle Aufgaben erfüllen soll. Dazu gehören auch aufwändige Komprimierungen per 7-Zip. Dafür braucht er dann bis zu 2 GB RAM.

Nun stellt sich die Frage ob ich für diese Spezialaufgaben besser einen separaten Server einrichte den ich nur bei Bedarf einschalte, oder ob ich mich darauf verlassen kann dass der übrige Speicher bei Nichtgebrauch an die Allgemeinheit zurück geht.

L00NIX
04.03.09, 18:39
Bist du sicher, dass es sich bei den 2GB Speicherbedarf nicht um Festplattencache handelt?

Wene
05.03.09, 17:04
Bist du sicher, dass es sich bei den 2GB Speicherbedarf nicht um Festplattencache handelt?

Vermutlich versteh ich jetzt deine Frage nicht richtig...

Normalerweise braucht der Server zum Arbeiten (Apache, PHP etc.) fast nichts. 512 MB reichen da völlig aus.

Es gibt aber Situationen wo der mehr braucht weil ich den mit wahnsinnigen Aufträgen füttere. Ein Beispiel davon war die Komprimierung grosser Datenmengen mit 7-Zip. 7-Zip braucht hald viel RAM weil bei grossen Datenmengen (ca. 100 GB !) viel Speicher für das Wörterbuch benötigt wird. Dies war nur ein Beispiel, es gibt weitere. Darum soll es nicht gehen, es gibt einfach Situationen wo der Speicherbedarf 2 GB beträgt.

Daher die Frage ob ich die "Wahnsinnsjobs" einem anderen, dafür eingerichteten Server geben soll oder ob dieser automatisch den Speicher bei Nichtgebrauch freiräumt.

L00NIX
05.03.09, 19:00
Zugegeben, ich kann das nicht mit Sicherheit sagen.

Nicht benutzte Speicherseiten könnten in der Swapdatei landen, sobald der ESX Speichermangel hat.

Normalerweise "klaut" sich der memctl-Treiber aber den Arbeitsspeicher, um das Gastbetriebssystem zum Swappen zu bringen. Das ist insofern clever, als das der ESX ja nicht weiß, welchen Teil vom Speicher er am besten auf die Platte bringt. Das kann also auch noch was bringen, sofern dieser Treiber installiert ist.

Wenn genug Speicher im ESX steckt, ist das alles sowieso egal. Sobald Resourcen (CPU, Speicher, Disk) knapp wird, ziehen ja noch die Resourcen (Pool, VM). Wenn du also nicht willst, dass diese VM auf der Platte landet, stelle entsprechende Reservierungen oder proportionale Resourcenzuteilung ein.

Grundsätzlich würde ich sagen: So viel Speicher wie nötig, so wenig wie möglich.

Gruß
L00NIX