[prev in list] [next in list] [prev in thread] [next in thread] 

List:       qemu-discuss
Subject:    [Qemu-discuss] Disparity between host and guest CPU utilization during disk IO benchmark
From:       "Nagarajan, Padhu (HPE Storage)" <padhu () hpe ! com>
Date:       2017-06-30 13:31:33
Message-ID: AT5PR84MB01640954F4EEC3927318DFD9A0D30 () AT5PR84MB0164 ! NAMPRD84 ! PROD ! OUTLOOK ! COM
[Download RAW message or body]


I was running an 8K random-read fio benchmark inside the guest with iodepth=32. The \
device used inside the guest for the test was a virtio-blk device with iothread \
enabled, mapped on to a raw block device on the host. While this workload was \
running, I took a snapshot of the CPU utilization reported by the host and the guest. \
The guest had 4 cores. top inside guest shows 3 idle cores and one core being 74% \
utilized by fio (active on core 3). The host had 12 cores and three cores were \
completely consumed by three qemu threads. top inside host shows three qemu threads, \
each utilizing the CPU core to a near 100%. These threads are "CPU 1/KVM", "CPU \
3/KVM" and "IO iothread1". The CPU utilization story on the host side is the same, \
even if I run a light fio workload inside the guest (for ex. iodepth=1). 

Why do I see two "CPU/KVM" threads occupying 100% CPU, even though only one core \
inside the guest is being utilized ? Note that I had 'accel=kvm' turned on for the \
guest.

Why does the CPU/KVM thread on the host use 100% CPU, even though the corresponding \
guest core utilization is far less ?

The host operating environment was Debian 8 and the guest was CentOS 7.3. I was \
running qemu-2.8.1 on the host. The guest VM had 'accel=kvm' turned on. I've attached \
an image showing the snapshot from 'top' on host (left) and guest (right) at the same \
point in time.

~Padhu.


["host_guest_cpu_util.jpg" (image/jpeg)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic