top VS vzfree - Wem glauben?

nh2

New Member
Hallo,

ich kriege gerade wieder ein paar "Cannot allocate memory"-Meldungen. Weil ich im Moment was ausprobiere ist es nicht weiter schlimm, nur ist mir bei der Suche des Schuldigen folgendes aufgefallen:

Code:
# vzfree
VPS Speichernutzung:
Momentan genutzt:       374.473 MB
Maximal genutzt:        374.52 MB
Zugesichert:            36028797018963968 MB
Maximal nutzbar:        791.281 MB

Code:
# top
top - 18:15:30 up 22:40,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  60 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.1%sy,  0.0%ni, 99.5%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5123896k total,   119020k used,  5004876k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

Nach top sind gerade einmal 120 MB belegt, nach vzfree über 370. Was stimmt denn nun? Und was hat es mit tops VIRT-Spalte auf sich? Zähle ich da die Werte zusammen, bekomme ich noch einmal wesentlich mehr als 370.

Danke
nh2
 
Mittlerweile ist es noch extremer:
Top zeigt mir 80 MB verbrauchten Speicher an, vzfree ist bei fast 300. Keiner eine Idee, was da nicht stimmt?
 
also würde ich eher vzfree glauben, was sich die Werte ja aus /proc/user_beancounters holt.
Diese Zeile
Zugesichert: 36028797018963968 MB
begegnet mir häufiger. Bisher konnte ich dafür keine sinnvolle Erklärung finden, warum in physpages, vmguarpages und oomguarpages im Limit oft solche Phantasiewerte stehen :rolleyes:
 
also würde ich eher vzfree glauben, was sich die Werte ja aus /proc/user_beancounters holt.
Diese Zeile
Zugesichert: 36028797018963968 MB
begegnet mir häufiger. Bisher konnte ich dafür keine sinnvolle Erklärung finden, warum in physpages, vmguarpages und oomguarpages im Limit oft solche Phantasiewerte stehen :rolleyes:

Hallo Fritz,

Der Wert 36028797018963968 kommt wie folgt zu Stande:
Virtuozzo und OpenVZ empfehlen für manche werte den sogenannten MAX_ULONG Wert zu verwenden.

MAX_ULONG
auf 64bit = 9223372036854775807 (264-1).
Nun werden die *pages in 4KB Werten angegeben.

Man rechne nun also:

9223372036854775807 * 4KB / 1024KB = 36028797018963967,99609375 MB.

Weshlab das ganze immer öftes auftaucht ist das bei Virtuozzo 4.0 SLM ein neuer Memory Allocation Parameter per default aktiviert ist. Unter SLM werden die Werte unter /proc/user_beancounters ganz anders dargestellt.

Ich hoffe etwas Licht ins dunkel gebracht zu haben :)
 
Last edited by a moderator:
Bei allen Virtuozzo/OpenVZ VServern wird der virtuelle Speicher begrenzt, d.h. man kann in etwa den VIRT Wert aus "top" verwenden, um den "Speicherverbrauch" zu ermitteln (abzüglich gemeinsam benutzter libs). Vorsicht aber beim Apache und anderen Progs, die Child-Prozesse forken, hier darf man nicht von jedem Child-Prozess den Wert nehmen, sondern nur einmal, da ja alle Apache-Prozesse auf die gleichen Daten zugreifen und diese nur einmal in den Speicher geladen werden.

Bei Xen-VServern sowie bei normalen Rootservern kann man sich hingegen auf den Gesamtwert aus dem top-Header verlassen.

Meiner Meinung nach sind die Virtuozzo/OpenVZ Server reinste Verarsche, da man hier nicht realen Speicher garantiert bekommt, sondern nur virtuellen Speicher, was unter Umständen erhebliche Unterschiede mit sich bringt. Man schaue sich nur mal einen MySQL-Prozess an.
 
Meiner Meinung nach sind die Virtuozzo/OpenVZ Server reinste Verarsche, da man hier nicht realen Speicher garantiert bekommt,....
Hi XioniX, ich möchte es etwas freundlicher formulieren, da ich jeder Virtualisierungsart etwas abgewinnen kann. Es gibt kein absolut für jeden Bedarf optimales Verfahren. Ich habe sogar inzwischen erfahren, dass bestimmte virtuelle Server sogar gegenüber dedizierten Servern Vorteile haben können. Darum muss ein Admin schon genau analysieren, welche Serverart und welche Virtualisierungsart für seine speziellen Bedürfnisse optimal sind. Wer etwas Universelles braucht, was für alle Zwecke immer genügt, muss eben etwas mehr Geld ausgeben - dann gibt es immer eine Lösung.

Gruß Fritz
 
Hallo Fritz,

natürlich hat jede Virtualisierungsart seine Vorteile, jedoch sehe ich das Speicherverhalten von Virtuozzo/OpenVZ also sehr starken Nachteil und frage mich, warum darauf nicht hingewiesen wird.
Bevor ich mir meinen ersten VServer geholt habe, habe ich zunächst mal versucht den Server und die Programme, die ich wollte, lokal mit VMWare aufzusetzten um rauszufinden, wie viel Speicher ich denn bräuchte. Leider hat dies dann bei weitem nicht gereicht, weil ich einen Virtuozzo Vserver hatte und von dessen Nachteilen nichts wusste und auch so nichts im Internet zu finden ist. Das hat mich dann schon sehr gewurmt ;) Benötigt hätte ich nur 200MB Ram, aber sogar die dynamisch verfügbaren 512MB des Servers haben nicht ausgereicht.

Gruß XioniX
 
.. jedoch sehe ich das Speicherverhalten von Virtuozzo/OpenVZ also sehr starken Nachteil und frage mich, warum darauf nicht hingewiesen wird.
Hi XioniX, es wird 'umgekehrt' darauf hingewiesen, dass beispielsweise XEN besser planbare, feste Ressourcen hat, dafür aber nicht so preiswert realisiert werden kann. Die Diskussion fällt mir nicht leicht, weil mir noch zu viele Faktoren fehlen. Ich könnte ja pauschal irgendwo hinschreiben, dass ein XEN VServer mit 256 MB festem RAM und 512MB swap 'besser' ist als ein OpenVZ mit 764 MB dynamischem und 256 MB zugesichertem RAM. ABER ich habe die Erfahrung gemacht, dass es vor allem bei Virtuozzo und OpenVZ auf die Belegung des Hosts ankommt, und was die 'Nachbarn' so treiben.
Ich erlebe in diesem Zusammenhang dramatische Unterschiede und es ist nicht leicht, konstante Vergleichswerte gegenüber zu stellen.

Sehr viele Anbieter reagieren aber sehr positiv und flexibel, wenn man als Mieter eines VServers mit den durchschnittlich zur Verfügung stehenden Ressourcen nicht auskommt. Teste z.B. mal 3 Tage kostenlos simply root
Da habe ich einen guten Eindruck, was die Performance angeht (trotz Virtuozzo ;) Aber ich bin mit meinen 'Virtualisierungs-Weisheiten' noch lange nicht am Ende und finde die Sache ausgesprochen spannend.

Gruß Fritz
 
Back
Top