我正在使用在具有 48 个 CPU 和 250GB RAM 的主机上运行的 VirtualBox 5.1,我正在导入的虚拟机(来宾)最初具有 2 个 CPU 和 4GB 的 RAM。
在这台机器内部,我正在使用 Java 运行一个进程,该进程启动动态数量的线程来执行某些任务。
我使用以下配置运行它:
我的笔记本电脑的整个过程(2 个 CPU/4GB RAM)~ 11 秒
服务器中的虚拟机中的相同程序(15 个 CPU 和 32GB 的 RAM)~ 45 秒
服务器中的虚拟机中的相同程序(20 个 CPU 和 32GB 的 RAM)~ 100+ 秒
服务器中的虚拟机中的相同程序(10 个 CPU 和 32GB 的 RAM)~ 5+ 秒
首先,我认为我从 Java 管理线程的方式存在问题,但经过多次测试,我发现虚拟机拥有的 CPU 数量与其性能之间存在关系,最大值为 10,之后机器的整体性能变慢(CPU饥饿?)
虚拟机运行 Oracle Enterprise Linux 6.7,主机运行 Oracle Enterprise Linux 6.9
我在虚拟机文档中找不到关于 CPU 数量的任何硬性限制。
是否需要设置一个设置来启用/利用 VirtualBox 实例中的 10 多个 CPU?