I have a KVM Virtualization host with 8 cores and 32GB of RAM. The machine is used to host VMs used in evaluating software, configurations, etc. Typically there are 2-4 VMs running simultaneously. The host machine is running Ubuntu Server 12.04 LTS. It is a bare bones installation with only KVM installed. Typically guest VMs on this host are allocated 2 cores and 4GB of RAM. All guests are running Ubuntu 12.04 Server.
Recently, I began testing a piece of software (CrashPlan PROe Server) on a VM with 2 cores and 8GB of RAM allocated. CrashPlan PROe is a Java application. I imported a configuration from a production server to simulate our live environment.
Under a normal load I observed high CPU utilization using top (on the guest). I also observed on the host machine a single KVM process that was exhibiting a similar CPU load. On the KVM host there appears to be one KVM process per VM.
• Am I correct that there will be one host KVM process per KVM guest?
• When allocating CPU resources to a virtual machine - does the virtual machine directly address those cores? Or does the host simply present some virtual representation of said cores to the guest?
• In my particular case, how is a guest that is only allocated 2 Cores and 8GB of RAM on a machine with 8 cores and 32GB of RAM able to cause such high CPU utilization (in excess of 80% on the single KVM process) on the host?