Seite 1 von 1

Unglaublicher Speicherverbrauch und Platten I/O

Verfasst: 30.12.2012, 17:29
von leo80
Hallo zusammen,

Ich habe einen Server mit Debian 6 Kerel 2.6.32-5
Intel® Core™ i7-2600 Quad-Core
16 GB DDR3 RAM
2 x 3 TB SATA 6 Gb/s HDD in Software-Raid 1

Dieser ist ein Webserver, DNS und Backup MX.

Ich habe mit VMWare Server 2.0.2 einen Windows Server 2008 R2 und Exchange Server 2007 am laufen.

Code: Alles auswählen

.vmx

#!/usr/bin/vmware
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "7"
floppy0.present = "FALSE"
mks.enable3d = "TRUE"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
nvram = "serv2.???.de.nvram"
virtualHW.productCompatibility = "hosted"
ft.secondary0.enabled = "TRUE"
tools.upgrade.policy = "useGlobal"
powerType.powerOff = "soft"
powerType.powerOn = "hard"
powerType.suspend = "hard"
powerType.reset = "soft"

displayName = "serv2.???.de"
extendedConfigFile = "serv2.???.de.vmxf"

numvcpus = "2"
memsize = "4096"
ide0:0.present = "TRUE"
ide0:0.fileName = "serv2.riebe-gmbh.de.vmdk"
ide0:0.writeThrough = "TRUE"
ide0:0.mode = "independent-persistent"
ide1:0.present = "FALSE"
ide1:0.fileName = "/var/lib/vmware/vm/7601.17514.101119-1850_x64fre_server_eval_de-de-GRMSXEVAL_DE_DVD.iso"
ide1:0.deviceType = "cdrom-image"
ide1:0.allowGuestConnectionControl = "FALSE"
ethernet0.present = "TRUE"
ethernet0.allowGuestConnectionControl = "FALSE"
ethernet0.virtualDev = "e1000"
ethernet0.features = "1"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.networkName = "Bridged"
ethernet0.addressType = "generated"
guestOS = "longhorn-64"
uuid.location = "56 4d 6a ed 52 2c 6d 69-de 33 80 3e b6 1a 65 87"
uuid.bios = "56 4d 6a ed 52 2c 6d 69-de 33 80 3e b6 1a 65 87"
vc.uuid = "52 a5 d2 17 14 77 1f 85-e8 18 a8 af ec ea 7a 9e"

ide1:0.startConnected = "TRUE"
ethernet0.generatedAddress = "00:0c:29:1a:65:87"
tools.syncTime = "TRUE"
ide0:0.redo = ""
vmotion.checkpointFBSize = "16777216"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
ethernet0.pciSlotNumber = "32"
vmci0.pciSlotNumber = "33"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "-1239784057"


Ich habe die Auslagerung des RAM, Snapschots und caching der Platte in der VM deaktiviert.

Ich habe 2 Problemme:

1. Der RAM Verbrauch steigt, sodass anur noch 200 freier Speicher zur Verfügung stehen.

Ich gehe zu einer RAM Disk mit 8 GB und gebe folgendes ein:

Code: Alles auswählen

swapoff -a
cat /dev/zero > zero.txt
rm zero.txt
swapon -a


nach 3 vier Stunden gehst alles wieder von forne los.

Wenn nur 200 MB zur Verfügung stehen reagiert der Server bedeutend langsammer VM und Apache auf dem Hostsystem.

2. Nachts zwischen 0 und 4 Uhr steigt für ca. 10 Minuten die Platten I/O und der Load Average auf 8 - 12, der Server ist dann nicht erreichbar.

Ich hoffe, dass ich dass Problemm gut schildern könnte.

Felipe

Verfasst: 30.12.2012, 18:03
von bla!zilla
Wo steigt der RAM Verbrauch? Im Gast oder im Host?

Ich habe die Auslagerung des RAM, Snapschots und caching der Platte in der VM deaktiviert.


Warum? Was für Prozesse ziehen im Host-System RAM?

Verfasst: 30.12.2012, 18:09
von leo80
Ohne den Start des VMWare Server ist der Ram verbrauch deutlich unter 2GB.
Wenn nun 1 GB durch den VMWare Server und 4GB für dir VM dazu kommen sollten 9 GB am Host free bleiben.

Aber der VMWare Server zieht den ganzen RAM.

Dadurch wird die VM und die anderen Prozesse langsam.
Bind Nameserver 20 Zonen
Apache MPM worker 5 Kindprozesse
8 PHP Prozesse
Mysql 5.5

Felipe

Verfasst: 30.12.2012, 18:27
von leo80
Könnte es sein, das der Speicher durch das Kernel für den Platten-Cache belegt wird?
free zeigt:

Code: Alles auswählen

             total       used       free     shared    buffers     cached
Mem:      16383044   10243800    6139244          0      29692    9143200
-/+ buffers/cache:    1070908   15312136
Swap:      8388592          0    8388592


Die Frage ist warum der Webserver und VM so langsam werden
/proc/sys/vm/swappiness = 20

Und warum die hohe I/O Nachts

Felipe

Verfasst: 30.12.2012, 18:36
von bla!zilla
Klar, der Kernel ist darauf aus Speicher zu allokieren. RAM ist nicht dazu da um frei gehalten zu werden. Also wird RAM, der nicht durch aktive Speicherseiten von Prozessen belegt ist für Buffer und als Cache benutzt. Sieht man auch an deiner Ausgabe sehr schön.

Die swapiness ist hier kaum von Bedeutung, da das System viel RAM als Cache verwendet und dieser freigegeben wird, sobald ein Prozess speicher haben möchte.

Das mit der IO Last kann ich dir nicht sagen, aber ein Load von 8 bis 12 ist für ein Quad Core System mit HT okay. Grob sagt man, dass der Load nicht die Anzahl der Kerne übersteigen sollte. Was läuft auf dem System Nachts?

Verfasst: 30.12.2012, 18:44
von leo80
OKAY

also wenn alles normal ist bewegt sich die load so zwischen 0.00 und 0.03
geht auch mal hoch auf 0.50 0.60
über 1.20 wenn ich mich per RDC Verbinde.

Nachts passiert nichts mehr als am Tag.

Mach der VMWare Server irgendwas mit der Virtuallen HD.

oder vielleicht der Exchange was mit der DB.

Felipe

Verfasst: 30.12.2012, 19:23
von leo80
Ich glaube Ich habe es.

Exchange speichert ja alles in der Datenbank nicht wie ein IMAP Server jede Email in eine eigene Datei. Änderungen werden erst vom RAM vorgehalten und dann in Protokolldateien geschrieben. Ein weiterer Prozess sorgt dann dafür das die Änderungen in den Protokolldateien in die Datenbank geschrieben werden was wiederrum in einer Protokolldatei geschrieben wird. Nachts wird dann da aufgeräumt was Datenbankonlinedefragmentierung genannt wird und ein hohe I/O last mitsichzieht.

Beim Neustarten des Windowsservers steigt die Load am Hostsystem auch. Das bedeutet also, das Verhalten des Servers ist normal

Ist doch ein vielversprechender Ansatzpunkt?

Felipe

Verfasst: 30.12.2012, 20:28
von bla!zilla
Die Onlinedefragmentierung der Exchange-Datenbank läuft von wann bis wann? Steht im Eventlog. Aber IO intensiv ist die nicht. Die Protokolldateien von Exchange arbeiten wie bei einer normalen Datenbank. Sie werden erst bei einer Vollsicherung des Exchange gelöscht, sofern du nicht die Umlaufprotokollierung aktiviert hast.

Verfasst: 30.12.2012, 20:43
von leo80
täglich von 0 bis 4 Uhr.
habe es jetzt mal auf Sonntag 0 bis 6 Uhr verschoben.

Felipe

Verfasst: 30.12.2012, 21:13
von bla!zilla
Das heißt aber nur, dass sie nun im Zeitraum 0 bis 6 Uhr ausgeführt wird. Das reduziert nicht die IO Last. Aber noch mal: Die Onlinedefragmentierung sorgt nicht für die IO Last.

Verfasst: 30.12.2012, 21:17
von Dayworker
Die stetig ansteigende Hostauslastung von RAM und CPU trotz im Leerlauf befindlicher Gäste vom VMserver2 unter Linux ist ein langjähriges Ärgernis gewesen und erhielt bis zur EoL-Verkündung beider VMserver auch keine Lösung.
Einer VM unter beiden VMserver-Versionen mehr als 1536MB vRAM zu vergeben, macht ebenfalls nur wenig Sinn oder wird nur erträglich, wenn der Host über eine schnelle Plattenanbindung verfügt und somit scheidet ein Raid1 mit HDDs aus. Ob eine HDD nun mit SATA2- oder SATA3-Anschluß daherkommt, spielt performancetechnisch nur bei kleinen Dateien eine Rolle. Diese könnten dann zumindest theoretisch aus dem Plattencache geliefert werden...

Es freut mich aber ungemein zu hören, daß der VMserver2 zumindest auch mit Sandy Bridge CPUs klarzukommen scheint. Vieviele CPU-Kerne der VMserver2 nachher für auszuführende Gäste ausnutzen kann, steht natürlich auf einem anderen Blatt.

Verfasst: 30.12.2012, 21:19
von e-e-e
Hallo,

ich betreibe schon seit über 10 Jahren VMs auf Linux Hosts. Ein Problem, das sich aber gut eindämmen lässt, ist die Tatsache, dass der Host IMMER swappt, auch bei swappiness=0, weil der Kernel immer die Hoheit über die Resourcen behält. Hier im Forum gibt es einen Sticky Post in dem auch alle meine Einstellungen für diese Fälle durchgekaut werden. Seit einigen Jahren betreibe ich nun die VMs hauptsächlich auf der VMware Workstation 7.1.15 und nicht mehr auf dem VMware Server und das Ganze läuft mit den o.g. Einstellungen ganz ordentlich über Wochen und Monate durch.

Verfasst: 06.01.2013, 21:56
von leo80
Hallo Leute,

Danke für euere Hilfe.
Ich habe zunächst einen Samba auf das Hostsystem kompiliert und mit Windows Server Backup ein Backup auf dem Hostsystem cifs Freigabe mit Samba zu machen.

Da durch sind auch die ganzen Logdateien aus der Exchangedatenbank verschwunden.

Da habe auch noch mit dem RAM der VM herrumgespielt.

6GB hat jetzt die VM und láuft viel flüsiger als zuvor.

Der hohe Wert bei load average konnte ich bis jetzt auch nicht beobachten.

Der Apache auf dem Hostsystem läuft gerigfügig langsammer als ohne VM aber noch schneller wie bei manchen Webhoster.

Ich glaube ich kann zufrieden sein.

Schöne Grüsse
Felipe