我正在分析一个问题,即虚拟机内受 CPU 限制的工作负载的性能通常(并非总是)低于我们基于底层硬件的预期。
我们在 Windows Server 2012 R2 上使用 Hyper-V。该服务器具有双 Intel Xeon E5-2643 v2 @ 3.50 GHz。
以下是一些似乎相关的数字:
在只有几个核心的台式机上,一旦开始受 CPU 限制的活动,核心速度就会立即提高。
然而,在我们的 Hyper-V 主机上,只有当整个系统负载似乎很高几秒钟时,核心速度才会上升。现在,例如,如果您有一个虚拟机,在总共 24 个物理 CPU 中有 4 个虚拟 CPU(打开超线程),并且此虚拟机需要 CPU 功率,并且虚拟机内的任务管理器显示接近 100% 的 CPU 使用率,大部分时间是时钟物理CPU的速度不会上升,性能很差。
显然,这是不需要的行为。想想一个数据库服务器需要 3 倍的时间来回答查询,因为服务器没有“足够”的负载来提高 CPU 频率。那没有任何意义。
我发现了一篇博客文章,描述了2011 年VMWare 和 Cisco …