限制虚拟机中的CPU速度?


29

有人知道限制虚拟机中CPU速度的方法吗?还是什至有一个虚拟化软件可以让您做到这一点?

给定我具有的特定OS映像,我试图找到系统的最低要求。我看到了限制RAM和硬盘大小以及内核数的方法,但是我需要将CPU速度降低到800 MHz,才能真正模拟系统配置。另外,运行虚拟机的计算机是Windows 7计算机。

Answers:


21

我遇到了同样的问题,并在Windows 7(作为主机)和Ubuntu(作为来宾)上安装了Oracle VirtualBox。我使用了一台独立的笔记本电脑HP EliteBook 8540W,其Intl Core i7运行在1.87 GigHZ和8Gig RAM上。

假设您的安装工作正常,请在Guest计算机(例如,在本例中为Ubuntu)上,从主菜单中的“计算机”中选择“设置...”;选择“系统”,然后单击“处理器”选项卡。您可以通过将条上的指示器一直滑至1%来调整时钟速度(标为“执行上限”)。

我以为主机操作系统(在我的情况下为Windows 7)不消耗任何时钟周期(我通过检查“任务管理器”确认了这一点,并且发现在主机上即Windows 7上的CPU利用率为零)。因此,我假定100%的“执行上限”等于主机的上限(例如1.87 GigHZ)。我认为,通过在主机时钟速度和800 MHZ之间取一个百分比,就可以算出与800 MHZ相对应的百分比值。

我希望这有帮助。

祝你好运。


9

在VMWare ESX和ESXi上,您可以创建资源池并限制该池的CPU资源。这将允许您限制在该资源池中创建的任何系统的CPU速度。


我了解了资源池选项,并认为它适用于播放器。可悲的是,事实并非如此。而且ESX / ESxi并非免费...但是我可以尝试该试用版,如果它确实可行,请进一步研究。
RCC

6
ESXi是免费的。(还有其他几个字符...)
TarnayKálmán2011年

真?由于某种原因,我认为不是。但我站得住脚!非常感谢您指出这一点。
RCC


2

尽管我不是所有不同虚拟化技术的专家,但我认为您不太可能会找到这样的设置。但是,您会找到设置(至少在MS hyper-V中),这些设置使您可以将虚拟机限制为主机总数的百分比。因此,如果您有一个运行于2 GHz的8核主机,则可以尝试将客户端虚拟机限制为一个核,并且不超过该核的45%。

但是,如果您要测试定时循环或实际影响处理器速度的测试,那将是非常粗糙的并且不适合。


我看到了几个执行此操作的程序-即限制每个进程的CPU使用率-但仅看到Linux选项。当然,我没有对它们进行太多研究。如果我在对MaxMackie的回复中描述的解决方案不起作用,那么我将进一步研究这些选项。
RCC

是的,这可能会对时序循环产生真正的不良影响。这完全取决于它是否以全速运行,直到达到45%,然后停止运行;或者是否尝试实际以45%运行。
Zan Lynx

2

--cpuexecutioncap <1-100>:此设置控制虚拟CPU可以使用多少cpu时间。值50表示单个虚拟CPU最多可以使用单个主机CPU的50%。


1
更多信息将使这个答案可以接受。
Ramhound 2014年

1

我可以确认VirtualBox不支持此功能。但是,该文档似乎对VMware是否能够做到这一点持怀疑态度。

编辑:对于VMware:“播放器和服务器产品不可能做到这一点,但我相信它在ESXi(免费的“裸机管理程序”产品)和诸如VMWare Workstation之类的付费产品中都有。


我也可以确认-我在VirtualBox上进行了所有设置,然后发现了这一点。我目前正在使用VMware,并尝试修改config.ini文件以将host.cpukHz限制为800000。这似乎在欺骗虚拟机,使它认为CPU MHz为800。它,但这就是我希望的。想法?
RCC

从我所看到的那应该行得通。只需确保在同一配置文件中设置host.noTSC =“ TRUE”即可。这将调节CPU时钟以确保它不会变慢。另外,在客户机操作系统中,转到“选项”选项卡,并确保选择了虚拟机与主机操作系统之间的时间同步。
n0pe 2011年

是的,我也有host.noTSc =“ TRUE”。我无法找到在何处启用vmware player中的vm和主机之间的时间同步的方法……
RCC

我很确定您必须在来宾操作系统中运行
n0pe 2011年

1

您也许可以使用CPU固定来模拟这一点。然后创建固定到同一CPU的一些CPU绑定进程。估计的CPU速度为(实际CPU速度/进程数)。

一些资源限制软件将允许您限制资源百分比。这将使限制CPU速度变得更加容易。为此,您需要禁用对备用资源的访问。


0

在VirtualBOX上有一个滑块,您可以在其中配置来宾CPU可以使用的主机CPU的百分比。这样的百分比适用于每个核心。

在VirtualBOX上,无法模拟每个内核具有不同速度的多核,而所有内核只有一个滑块。

将滑块设置为50%将使来宾内核运行在主机内核的1/2(每个内核基础知识)上。

因此,如果主机上有deca核心(10个核心),而来宾上有3个核心(三个),并且您想要客户机在X MHz上运行而主机在Y MHz上运行,则只需忽略内核数即可计算百分比。

公式为:百分比= 100 * X / Y

希望这也可以帮助其他人将来到这里来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.