dynamic增加/减lessCPU速度

我需要对我们正在使用的新的长轮询技术进行一些压力testing。 要知道这些function是什么,我想在VM上运行2个(或更多)的testing。

首先我要从1 GHz的CPU开始。 第二个testing是2 GHz。 当我们知道1 Ghz和2 Ghz的限制(并发客户数量)时,我们可以看到它在硬件上是如何扩展的(与CPU等线性)。

是否可以通过快速/简单的方式增加/减less虚拟机的CPU频率,而不需要改变硬件? 我认为这应该是可能的,因为许多VPS提供商允许他们的客户dynamic地扩展他们的VPS。

答案取决于您正在使用的虚拟化解决scheme。 典型的资源pipe理概念包括保留,限制和权重,其中限制可能是你正在寻找的。

  • ESXi / vSphere,Xen和OpenVZ / Virtuozzo支持虚拟CPU。
  • VMWare服务器/工作站/播放器和VirtualBox不
  • KVM只能控制“份额”或更改核心/ CPU的数量,这是没有用的
  • Hyper-V允许物理CPU资源的相对“百分比”限制,只要您的物理CPU数量和频率不会改变
  • QEmu作为一个模拟器而不是虚拟化解决scheme,它提供了速度限制,但是会为代码的二进制转换带来大量的开销,因此可能不会成为性能testing的一个select

在ESXi和Virtualbox中,您可以修改cpus的数量。 所以在某种程度上,你可以做到这一点,但它不是什么你想要的。 有一些像/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed你可以通过编辑这个文件来改变cpu频率的值,但是我认为它不再被支持(这不是我的Fedora 16的特性)

在fedora repo中,有一些类似cpufrequtils的东西,它包含几个可用于控制内核在支持CPU频率调整的硬件上提供的cpufreq接口的实用程序。 你可以试试。