performance tuning, problem with paravirtualized clock

Nikola Ciprich
2008-04-06T19:56:39Z

Hi,
I spent some time trying to tune performance of KVM guest using kernel
compilation as a kind of benchmark (I'm using virtual machines for
compiling a lot, so it's good benchmark for me in general)

Host machine: 2x quad core XEON E5420 @ 2.50GHz, 4GB RAM, 2.6.24 + kvm-64
guest configuration: all 8 cores available, 2GB RAM, 2.6.24 or latest GIT
+ kvm-64

some results:
- compilation in KVM guest is roughly 2x slower than on bare metal.
- trying various block device backends (ide, scsi, virtio_blk) didn't
really matter much for my case
- enabling CONFIG_KVM_GUEST under latest GIT with kvm-64 patch applied
decreased compile time by about 10%, which is nice!
- enabling CONFIG_KVM_CLOCK made guest unstable, often unable to finish
booting at all, disabling acpi made it a bit better, but still quite
unstable (cpu0 lock-ups, etc)

Is there currently anything more I could do to improve performance? I'm
wandering what is slowing compilation, if I compare some CPU intensive
application (ie bzip2), it seems to run in nearly native speed, but kernel
compilation is much slower even if run from ramdisk, maybe it could be
improved further by tunning scheduler etc?

anyways keep up the good work!
cheers!
nik