我计划构建一个由(可能)KVM 监督的多操作系统工作站,我将在其上执行各种任务。其中一些任务比其他任务更适合多线程,所以我想尽可能地最大化时钟速度。为此,我正在考虑双插槽设置的优缺点,以便在相同数量的内核下获得更高的时钟速度。但是,据我了解,双插槽构建的实用性受到 CPU 之间缓慢通信的限制。所以我的想法是,如果我智能地分配资源,双插槽可能会很好,但如果不是,那可能是一场灾难。
所以这里有一些我想了解的事情:
如果主机操作系统专门使用一个套接字,而主动使用的客户机专门使用另一个套接字,那么这两个套接字需要多少通信?
虚拟机管理程序从访问更多内核中受益多少?
在 CPU 插槽与 CPU 内核之间分配资源方面,KVM(或其他管理程序)有多聪明?是否有一些事情我应该手动设置,而其他一些事情我应该由管理程序决定?
一个重要的考虑因素是,在任何给定时间,只有一个或最多两个 VM 需要大量资源,其他两个或三个在任何时候都应该很轻。
在 RHEL 7 的文档中,您可以使用将 VCPU 绑定到对应的物理 CPU,
numatune
然后使用和将客户固定到某个 NUMA 节点。在使用.lscpu
virsh cpupin
lstopo
numatune