tonabnehmer
Goto Top

Arbeitsspeicher Monitoring virtueller Maschinen

Hallo,

ich beschäftige mich derzeit mit dem Monitoring von Arbeitsspeicher virtueller Maschinen in einer VMware vSphere Umgebung und stelle fest, dass das gar nicht so einfach ist, wie gedacht. Ziel soll sein, under- und overallocated Maschinen zu identifizieren.

Beispiel Linux Webserver, einer VM mit 2 GB RAM: VMware gibt 2.116 MB "Belegter Hostarbeitsspeicher" und 143 MB "Arbeitsspeicher für aktiven Gast" an. Linux zeigt mir per 'free -m':

total used free shared buffers cached
Mem: 2009 1949 59 0 226 1093
-/+ buffers/cache: 629 1379
Swap: 1027 3 1024

Wenn ich jetzt z. B. mit PRTG per SSH Sensor den freien RAM direkt in der Gast VM abfrage, bekomme ich 59 MB zurück und einen Schreck face-wink Der PRTG Sensor scheint buffers und cache zu ignorieren. Hier ist fraglich, ob der Sensor geeignet ist. Bliebe noch die Abfrage auf dem VMware Host. PRTG kann auch ein vCenter Server oder ESX(i) Hosts abfragen und liefert mir "Speicherverbrauch" 2.047 MB und "Aktiver Speicher" 143 MB zurück, also wie in der VMware Konsole auch angezeigt wird.

Tja, nun stelle ich mir und hier die Frage, wie ich denn nun den sinnvoll den Arbeitsspeicher überwachen kann.

Vielen Dank und Grüße,
tonabnehmer

Content-ID: 173561

Url: https://administrator.de/contentid/173561

Ausgedruckt am: 22.11.2024 um 00:11 Uhr

Der-Phil
Der-Phil 23.09.2011 um 09:03:26 Uhr
Goto Top
Hallo,

den freien Arbeitsspeicher kannst Du mit SNMP überwachen.
Hier sind die entsprechenden OIDs:

Memory Statistics

Total Swap Size: .1.3.6.1.4.1.2021.4.3.0
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0
Total RAM used: .1.3.6.1.4.1.2021.4.6.0
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0

Quelle: http://www.debianadmin.com/linux-snmp-oids-for-cpumemory-and-disk-stati ...

Diese kann PRTG auch auslesen:
http://www.paessler.com/support/kb/questions/111

Falls Du dann noch etwas "verrechnen" willst, geht das mit einem Formelsensor.


Mit den overallocated/underallocated Maschinen kann ich Dir leider nicht helfen, da ich VMWare nicht einsetze.


Phil
tonabnehmer
tonabnehmer 23.09.2011 um 10:05:39 Uhr
Goto Top
Hallo Phil,

SNMP habe ich gestern in einer Linux VM mal aktiviert und dann mit PRTG abgefragt. Da sehe ich dann auch Cache und Buffer Werte. Ich hatte dann auch überlegt, ob man nicht 'free' + 'cached' = 'real free' berechnen kann. Da kommt Dein Tipp mit dem Formelsensor natürlich gut. Den kannte ich noch nicht, da ich PRTG erst seit einigen Tagen evaluiere.

Ich überlege grad, ob man nicht die Swap usage zur Beurteilung heranziehen könnte nach dem Motto: viel Swap usage = VM benötigt mehr RAM. Ich mache dazu vielleicht mal Threads im Windows und Linux Bereich auf.

Viele Grüße,
tonabnehmer
Yali0n
Yali0n 23.09.2011 um 10:53:37 Uhr
Goto Top
Hi!

Schau dir mal den check_esx3 von op5 an!

Damit kannst du die Auslastungen auf VM-Basis abfragen.
Entweder den ESX-Host oder das VCenter.
Gibt auch eine schöne doku und du müsstest hierfür nichts auf den gästen installieren ...


Gruß
Yali0n
tonabnehmer
tonabnehmer 23.09.2011 um 12:27:33 Uhr
Goto Top
Hi Yali0n,

ich habe das Nagios Plugin check_esx3 installiert und die VM Webserver abgefragt. Hier das Ergebnis:

CHECK_ESX3.PL OK - "Webserver" mem usage=2047.42 MB(5.99%), overhead=69.80 MB, active=122.88 MB, swapped=0.00 MB, swapin=0.00 MB, swapout=0.00 MB | mem_usagemb=2047.42MB;; mem_usage=5.99%;; mem_overhead=69.80MB;; mem_active=122.88MB;; mem_swap=0.00MB;;

Leider ist das genauso wenig aussagekräftig wie die Abfrage mit PRTG. Man sieht lediglich den belegten Hostarbeitsspeicher und den aktiven Arbeitsspeicher. Beide haben mit der Verbrauch im Gast wenig zu tun und schon gar nicht werden Buffer und Cache berücksichtigt.

Trotzdem Danke für den Hinweis zu check_esx3. Vielleicht entscheiden wir uns ja für Nagios statt PRTG.

Viele Grüße,
tonabnehmer
AxelHahn
AxelHahn 25.09.2011 um 18:55:03 Uhr
Goto Top
Hallo tonabnehmer.

Ich kenne PRTG nicht so im Detail.

Als Ergänzung:
Ein weiteres Tool, was reine rrd-Grafiken von Servern erstellt, ist Munin.
Eine Munin-Server Instanz erzeugt/ aktualisiert eine Webseite mit den Graphen zu Kenndaten aller definierten Clients.
Auf jedem der Servern ist der Munin Client eingerichtet. Auf jedem Client befinden sich Plugins der Systemchecks. Eigene Überwachungsgraphen lassen sich relativ einfach schreiben, da die Ausgabe der Clients rein textbasiert ist. Man kann also die Programmiersprache seiner Wahl nehmen (Shell, Perl, whatever).

Wenn SNMP nicht weiterhilft: Lokal am jeweiligen (virtuellen) Server sollte man durch Lesen der Infos im virtuellen /proc die richtigen Kenndaten finden.


Viele Grüsse
Axel
tonabnehmer
tonabnehmer 26.09.2011 um 10:13:42 Uhr
Goto Top
Hallo Axel,

auch Dir vielen Dank für den Tipp mit Munin. Mein Problem ist aber aktuell nicht die technische Umsetzung mit einer Überwachungssoftware, sondern erstmal welche Parameter signalisieren mir a) eine zu niedrige RAM Auslastung (=mehr RAM als benötigt) und b) zu viel RAM Verbrauch. Für a) würde ich vermutlich einfach den freien RAM überwachen. Bei b) wird es schwieriger wegen der o. g. Buffer/Cache Problematik. Man müsste entweder realen freien RAM berechnen (real free = free + buffer + cache) oder vielleicht Auslagerungsdatei/Swap Aktivität überwachen. Da bin ich derzeit noch nicht sicher, welches der beste Weg ist. Welche Überwachungssoftware das am besten kann, gucke ich dann später.

Vielen Dank und Grüße,
tonabnehmer