KVM虚拟化主机与客户资源利用率之间的关系

我有一个KVM虚拟化主机8核心和32GB的RAM。 该机器用于托pipe用于评估软件,configuration等的虚拟机。通常同时运行2-4个虚拟机。 主机运行Ubuntu Server 12.04 LTS。 这是只安装了KVM的裸机安装。 通常,该主机上的访客虚拟机分配有2个内核和4GB的RAM。 所有客人都在运行Ubuntu 12.04服务器。

最近,我开始在一个虚拟机上testing一个软件(CrashPlan PROe服务器),分配了2个内核和8GB内存。 CrashPlan PROe是一个Java应用程序。 我从生产服务器导入configuration以模拟我们的实时环境。

在正常的负载下,我使用top(在guest虚拟机上)观察到高CPU利用率。 我还在主机上观察到一个显示类似CPU负载的KVM进程。 在KVM主机上,每台虚拟机似乎只有一个KVM进程。

•我确定每个KVM guest虚拟机都有一个主机KVM进程吗?

•将CPU资源分配给虚拟机时,虚拟机是否直接访问这些内核? 还是主机只是向客人展示一些虚拟的核心代表?

•在我的情况下,如何在8核和32GB内存的机器上只分配2个内核和8GB内存的guest虚拟机能够导致如此高的CPU利用率(在单个KVM进程中超过80%)主人?

KVM启动并为您分配给guest虚拟机的每个虚拟CPU运行一个进程。 双核VM意味着两个主机端线程。

来宾计划一个vcpu,命令被传递给主机,并在相应的线程中执行。

Java通常被认为是资源匮乏的。 80%不错,因为这只是一个主机核心。 即两个完全预定的主机内核将显示200%