Overhead QEMU-KVM

s24!

Registered User
Guten Abend,

auf einem frisch eingerichteten KVM-Host habe ich ein gerade eine VM mit zwei Kernen via "openssl speed" auf Volldampf gesetzt und zwei Sachen festgestellt:

1) Der Host schafft die Berechnungen fast doppelt so schnell.
2) Laut htop verbringt der Host annähernd 50% seiner CPU-Zeit im Kernelspace.

Punkt 2 (Screenshot siehe Anhang) erklärt natürlich auch Punkt 1; der Host verbrät offenbar den halben Kern einer vCPU für sich selbst. Die spannenden Fragen sind jetzt: Ist das normal so? Kann man optimieren? Die CPU - AMD Opteron 6274 - wird bereits mit host-passthrough durchgereicht.

Bislang war ich davon ausgegangen, dass KVM sehr wenig Overhead hätte. ;)


Viele Grüße
Tim
 

Attachments

  • kvm-overhead.png
    kvm-overhead.png
    16 KB · Views: 219
Was für eine CPU stellst du denn den Gästen zur Verfügung? Sobald hier eine Emulation stattfindet, gibt es einen Overhead, abhängig von den physikalischen CPUs und den emulierten CPUs.

Persönlich halte ich Opterons für KVM für weniger geeignet im Vergleich zu aktuellen XEON-CPUs. Es hat seine Gründe warum AMD immer mehr bei den Großen Serverherstellern raus fliegt.
 
Hi,

danke für die Antwort. Wie oben beschrieben wird die CPU "original" durchgereicht. Oder was meintest du?

Grüße
Tim
 
Es wäre hilfreich zu wissen was der Host genau im Kernel macht. Mit "perf top" oder "perf record" sollten sich dazu einige Informationen einholen lassen.
 
Habe den Prozess der (unter Last stehenden) VM mal mit perf top beobachtet, siehe Anhang. Eine konkrete Ursache springt mit dabei jedoch nicht ins Auge. :/
 

Attachments

  • kvm-overhead-perf.png
    kvm-overhead-perf.png
    104 KB · Views: 232
Zeig doch mal bitte die Settings, mit denen du die KVM-Qemu-VM startest (also die volle Befehlszeile).
 
Sorry, dass ich momentan eher sporadisch antworten kann - viel zu tun. Hier der komplette Befehl:

Code:
/usr/libexec/qemu-kvm -name kvm231 -S -M rhel6.5.0 -cpu host -enable-kvm -m 512 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid 91449846-b699-4ec0-890e-8864965b2940 -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/kvm231.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/dev/vserver-lvm/kvm231_img,if=none,id=drive-virtio-disk0,format=raw,cache=writethrough -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=2 -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:16:3c:95:b4:63,bus=pci.0,addr=0x3 -device usb-tablet,id=input0 -vnc 0.0.0.0:5,password -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

Zumindest mir fällt dabei nichts ins Auge. :confused:
 
Ok, wollte nur wissen, wie du die VM startest (VirtIO, -cpu host etc.).
Sagt "virsh schedinfo <VM-Name>" irgendetwas?
 
Back
Top