哪种虚拟化适合高 CPU 环境

哪种虚拟化适合高 CPU 环境

我为自定义 Java 应用程序构建了一个 freebsd 客户操作系统。没有 Gui,没有多余的东西,只有 SSH 和一个用于协调所有机器的 API。

此应用程序本质上是单线程的,仅受 CPU 速度的限制。对于 JAVA CPU 受限的应用程序,哪个虚拟化框架最好?

我们从 OpenVZ 开始,但我们发现一个严重的错误导致我们的应用程序出现内存泄漏,所以现在我们正在寻找下一步该使用什么。

答案1

据我所知,在 Linux 中没有一种快速简便的方法可以为虚拟机设置处理器亲和性,我曾使用过 VMWare 和 VirtualBox,但两者都应该可以正常工作。如果您真的热衷于速度,您可能希望完全使用 KVM,即使只是为了本机集成,而不是为 VMWare/VirtualBox 添加一些层。听起来您真的不需要太多的 gfx、声音等,所以这对您来说可能是最佳选择。


这个答案的下一部分有点离题,因为你要求完整的虚拟机解决方案,但我还是要发帖,因为这可能更适合你的情况。使用虚拟机听起来很麻烦,但你可以使用容器而是获得相同的好处(隔离)而没有缺点(VM 开销)。是的,随着时间的推移,您的环境将从一个处理器跳到另一个处理器,但是所有 VM 解决方案都会尝试开箱即用,因为它们与系统调度程序绑定,而调度程序是导致这种情况发生的原因。

答案2

为什么不修复内存泄漏而不是更换平台?

如果是单线程,除非主机过度使用,否则调度程序不会对整体产生很大影响。大多数平台上的性能应该非常相似。

答案3

对于 JAVA CPU 受限应用程序来说,哪个虚拟化框架最好?

它允许您持续地将物理 CPU 分配给虚拟机,从而将上下文交换保持在最低限度。

答案4

使用最新的 vmware 服务器,您可以将多个核心组合成一个虚拟 CPU,这样如果您有一个单线程应用程序,这可能会有所帮助:

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1010184

编辑:4.1 版本有这个。您可以尝试免费的 esxi 版本并在其上测试您的应用程序。

相关内容