Seite 1 von 1

Linux VMs CPU Problem

Verfasst: 24.03.2010, 12:04
von Nepokat
Hallo liebe VMware Forum Community.
Ich habe folgendes Problem:
Auf einem ESXi Host 4.0.0, 208167 liegen 10 Linux VMs (Webserver) mit verschiedenen Linux Distributionen.
Die CPU Auslastung vom ESXi Host lag nie über 20% und das hat mich dann irgendwann stutzig gemacht da ein paar Seiten hin und wieder über 10 Sekunden brauch um geladen zu werden.
Habe auf einer Linux Ubuntu v.8.04 VM Super PI installiert und im HTop (das Linux Taskmanager Pendant) eine Auslastung der CPU (alle 4 Kerne) von 100% erreicht (Aber nur in der VM)
Die VM war fast nicht mehr zu bedienen, seltsam war aber, dass der Host noch immer nicht über 20% CPU Last angezeigt hatte (300 Mhz Spitze).
Habe alle Ressourcen Einstellung mehrfach kontrolliert und keine Beschränkung gefunden, die VM müsste Normalerweise sich sämtliche CPU Ressourcen schnappen und auch die anderen VM lahm legen was aber nicht der Fall ist.
Das 0815 Workaround habe ich schon gemacht (neusten VMWare Tools, die CPU wurde in der VM richtig erkannt, verschieden Linux Distributionen getestet, HT ist aktiviert)

Sicher habe ich einen blöden Fehler gemacht und vielleicht kann mal einer über die Daten rüber schauen und mit einen Tip zum beheben des Fehlers geben:

Bild

Vielen Dank für jede Hilfe an dieser Stelle schon einmal!

Code: Alles auswählen

.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "7"
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 = "***.404111.nvram"
deploymentPlatform = "windows"
virtualHW.productCompatibility = "hosted"
unity.customColor = "|23C0C0C0"
tools.upgrade.policy = "useGlobal"
powerType.powerOff = "default"
powerType.powerOn = "default"
powerType.suspend = "default"
powerType.reset = "default"

displayName = "***.404111"
extendedConfigFile = "***.404111.vmxf"
floppy0.present = "TRUE"

scsi0.present = "TRUE"
scsi0.sharedBus = "none"
scsi0.virtualDev = "lsisas1068"
memsize = "1024"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "/vmfs/volumes/4b9a223d-c930cb82-0c69-e41f132e8b12/HDD/***-404111-Ubuntu/***-404111-Ubuntu.vmdk"
scsi0:0.deviceType = "scsi-hardDisk"
ide1:0.present = "TRUE"
ide1:0.clientDevice = "TRUE"
ide1:0.deviceType = "cdrom-raw"
ide1:0.startConnected = "FALSE"
floppy0.startConnected = "FALSE"
floppy0.clientDevice = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.networkName = "WAN ********"
ethernet0.addressType = "generated"
chipset.onlineStandby = "FALSE"
guestOSAltName = "Ubuntu Linux (64-Bit)"
guestOS = "ubuntu-64"
uuid.location = "56 4d 9a 4e 8b 6a 99 be-3e 49 1d 7a 54 dc 3b e7"
uuid.bios = "56 4d 9a 4e 8b 6a 99 be-3e 49 1d 7a 54 dc 3b e7"
bios.forceSetupOnce = "FALSE"
vc.uuid = "52 78 ea dd da 51 fc 7e-70 85 40 6b e4 93 9d b4"
snapshot.action = "keep"
sched.cpu.min = "0"
sched.cpu.units = "mhz"
sched.cpu.shares = "normal"
sched.mem.minsize = "0"
sched.mem.shares = "normal"

ethernet0.generatedAddress = "00:0c:29:dc:3b:e7"
tools.syncTime = "FALSE"
cleanShutdown = "FALSE"
replay.supported = "FALSE"
sched.swap.derivedName = "/vmfs/volumes/4b9a223d-c930cb82-0c69-e41f132e8b12/***.404111/***.404111-8fd531cd.vswp"
scsi0:0.redo = ""
vmotion.checkpointFBSize = "4194304"
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "160"
ethernet0.pciSlotNumber = "32"
vmci0.pciSlotNumber = "33"
scsi0.sasWWID = "50 05 05 6e 8b 6a 99 b0"
ethernet0.generatedAddressOffset = "0"
vmci0.id = "1423719399"
hostCPUID.0 = "0000000b756e65476c65746e49656e69"
hostCPUID.1 = "000106a500100800009ce3bdbfebfbff"
hostCPUID.80000001 = "00000000000000000000000128100800"
guestCPUID.0 = "0000000b756e65476c65746e49656e69"
guestCPUID.1 = "000106a500010800809822010febfbff"
guestCPUID.80000001 = "00000000000000000000000128100800"
userCPUID.0 = "0000000b756e65476c65746e49656e69"
userCPUID.1 = "000106a500100800009822010febfbff"
userCPUID.80000001 = "00000000000000000000000128100800"
evcCompatibilityMode = "FALSE"
ide1:0.fileName = "/usr/lib/vmware/isoimages/linux.iso"

floppy0.fileName = "/dev/fd0"

numvcpus = "4"

Verfasst: 24.03.2010, 12:25
von Martin
Hyperthreading ist nicht für alle Einsatzfälle effektiv. Versuche mal die VMs nur mit 2 oder 3 vCPUs zu konfigurieren. (Daumenregel: max. vCPU pro VM = pCPU Cores - 1)

Verfasst: 24.03.2010, 12:40
von Nepokat
Hy Martin!
Vorschlag wurde soeben Getestet:
Die VM war mit einer vCPU bei max. 300Mhz mit vier bei 800-1000 MHz, schon ein kleiner Teilerfolg den ich mir aber logisch noch nicht richtig erklären kann.
Kann auch leider nicht mehr als 4 vCPU´s vergeben, dann bekommen ich ein Lizenz Fehlermeldung.

Verfasst: 24.03.2010, 12:45
von Dayworker
Ist doch eigentlich logisch. Wenn du einer VM 4v.CPUs gibst, erhält die VM nur immer dann auch Rechenzeit, wenn auf dem Host auch 4 Kerne frei sind und dieser Status ist bei einer VM mit nur 1 v.CPU wesentlich häufiger der Fall.

Verfasst: 24.03.2010, 12:59
von Nepokat
Hey Dayworker.
Also wie sollte ich denn dann im Idealfall die vCPUs auf die 10 VMs verteilen?
Angezeigt werden mir ja 8 Logische Prozessoren, jedoch kann ich nur 4 vCPUs per VM vergeben.
Jede VM = 4 vCPU ?

Verfasst: 24.03.2010, 13:17
von e-e-e
Du "nagelst" doch nicht einen vCPU fest auf einen physischen Kern, sondern der ESXi vergibt die Rechenzeit dynamisch. Gib' jeder VM nur 1 vCPU und das Management erledigt der ESXi.

Verfasst: 24.03.2010, 13:32
von Tschoergez
pass auch auf, das im Gast der richtige Kernel verwendet wird (also single-prozessor-kernel bei 1 vCPU, multiprozessor-kernel bei >1vCPUs)...

http://vmware-forum.de/viewtopic.php?p=88963
http://www.vmware.com/files/pdf/perf-vs ... eduler.pdf


viele grüße,
jörg

Verfasst: 24.03.2010, 22:59
von pertzschc
Dayworker hat geschrieben:Ist doch eigentlich logisch. Wenn du einer VM 4v.CPUs gibst, erhält die VM nur immer dann auch Rechenzeit, wenn auf dem Host auch 4 Kerne frei sind...

Warum ist das logisch? Kannst Du vielleicht noch ein wenig den Hintergrund erklären?

Ich hätte erwartet, wenn ich einer VM 4vCPU zu weise, dann soll das ESX Management 4-fache Power der VM bereitstellen, als einer VM mit 1vCPU. Das wäre mich logisch und nicht, dass ESX die 4vCPU nur bedient wenn 4 Kerne frei sind.

Danke+Gruß,
Christoph

Verfasst: 25.03.2010, 08:17
von Tschoergez