虚拟机中的 CPU 使用率

虚拟机中的 CPU 使用率

我有一台主机,其中有 1 个逻辑处理器,运行速度为 2.0GHz,上面有 2 个虚拟机在运行。每个虚拟机的利用率都为 100%(根据虚拟机内的任务管理器)。我意识到这个“100%”并不准确,因为实际上每个虚拟机都使用了主机可用 CPU 资源的大约 50%。只有当我停止其中一个虚拟机时,正在运行的虚拟机才会真正使用 100% 的物理 CPU。

这个过程是如何工作的?如果物理处理器以 2.0GHz 的速度运行,我们实际上是在创建两个以 1.0GHz 速度运行的虚拟处理器吗?那么,当我们看到两个虚拟机上的利用率均为 100% 时,我们指的是每个虚拟机上的利用率为 1.0GHz 的 100%?首先,这个利用率百分比是如何得出的?

谢谢你!

答案1

您在虚拟机中看到的使用率是虚拟机需要 CPU 的时间百分比,无论是否获得 CPU。本质上,100% 表示该虚拟机可用的 CPU 为 100%。

如果物理处理器以 2.0GHz 运行,那么虚拟处理器也是如此。但是,由于只有一个实际核心,因此一次只能运行一个虚拟处理器。当您看到两个虚拟机上的利用率均为 100% 时,您指的是每个虚拟机总是希望获得尽可能多的 CPU。通常,它们每个都会获得接近 50% 的可用 CPU。

不要这样说:“所以当我们看到两个虚拟机的利用率都达到 100% 时,我们说的是每个虚拟机都达到了 1.0GHz 的 100%?”这基本上是胡说八道。如果你每隔一天使用一辆时速 50 英里的汽车,我们不会将其描述为 25 英里每小时的 100%。速率不是那样的。CPU 有一定的容量来工作,虚拟机共享这些容量。如果每个虚拟机都想获得所有可用的资源,那么每个虚拟机都会获得大约 50% 的 CPU 容量来工作。2.0GHz 是核心时钟速度,而不是做功的能力。所以划分它是没有意义的。

答案2

在一个物理 CPU 核心上一次只能运行一个虚拟机。vmkernel 在虚拟机之间快速切换 CPU 核心。对您来说,它们似乎同时在同一个 CPU 上运行。

相关内容