我正在尝试将 VirtualBox 固定到具有如下任务集的几个核心:
/usr/bin/taskset -c 1-3 VirtualBox &; disown
但是taskset没有效果,我已经验证taskset可以和进程一起工作其他比 VirtualBox 要好(所以我知道我已正确设置 isolcpus)。我认为 VirtualBox 只是前端,当我选择我真正想要的 VM 时,它会以某种方式启动它,这样核心固定就不会被继承。
我怎样才能让实际的虚拟机实例遵守固定规定?
答案1
您说得对,VirtualBox 不是唯一需要包含的进程,但它不仅仅是一个前端。
简短回答:尝试绑定 VBoxSVC。
长答案:
您可能应该在计算机中使用 top(或更好的 htop)来查找在您的情况下正在工作的组件,Virtualbox 跨越至少两个后台进程 VBoxSVC,至少在我的计算机上看起来像主 CPU 用户和 VBoxXPCOMIPCD,看起来像某种通信服务器。
请注意,即使同一用户启动了多个虚拟机,每个用户也只会生成一个进程。我不知道仅绑定它们是否能满足您的需求。
如需更多信息,请访问文章拥有大量关于 VirtualBox 如何运作的信息。