0

在一个涉及虚拟化和电源管理的研究项目中,我正在测试各种资源分配方案和自定义电源管理算法。我有兴趣隔离虚拟机以仅使用某个 CPU 内核。

我正在考虑使用 Windows 2008R2 和 Hyper-V,但 Hyper-V 不允许为虚拟机设置 CPU 亲和性,有什么办法可以确保运行 CPU 密集型任务的虚拟机只使用一个核心CPU(VM 配置为使用单个 CPU)并且其余内核可用于其他任务?

VMware ESX Server 是一个有趣的选择,因为它提供了我需要的设置(包括热内存添加),但它看起来像是一个封闭的系统。据我了解,ESX Server 的操作系统是否允许安装自定义应用程序,通过该应用程序来控制与物理服务器组件的电源管理相关的方面(例如执行 CPU 频率缩放)。它是否提供任何 API?我知道该产品已经具有电源管理功能,但我正在寻找实现自定义实现的方法。

除了这两个解决方案之外,您能否推荐其他提供诸如设置 CPU 亲和性、CPU 限制和预留、热内存添加以及允许在主机服务器上运行自定义应用程序(也提供 API 来编写此类应用程序)等功能的管理程序 - 也许是 Citrix XenSource、KVM(我不熟悉这些解决方案)?

4

2 回答 2

0

我不认为 VMware 会支持对服务器的修改,但是您可以在 ESX 服务器上获得命令行,因为基本上您是对的,它是下面的 linux(我相信 RedHat mod)。

Xen/KVM 是开源的,所以你可以破解。如果您有预算限制,可能会建议您走 KVM 路线,因为社区会支持您。在企业环境中,包含 Citrix 可能会带来麻烦。

于 2010-03-04T13:40:07.677 回答
0

有什么办法可以确保运行 CPU 密集型任务的虚拟机将只使用 CPU 的一个核心

Openstack(KVM 作为管理程序)提供了 CPU pinning 功能,您可以通过它将 vCPU 绑定到物理 CPU 内核。如果您需要有关该主题的更多信息,请告诉我。

这是一个解释该功能的链接。此链接还确认 Hyper-V 不支持 CPU 固定。

于 2017-11-09T05:34:16.833 回答