Linux 和 KVM 上的 ZFS:主机的 NUMA 节点

Linux 和 KVM 上的 ZFS:主机的 NUMA 节点

我对在多插槽系统上在 Linux 上的 ZFS 下的 zvols 上使用 KVM 映像感兴趣。我想知道我应该如何固定 NUMA 节点,以便最大限度地发挥 ZFS ARC 缓存对系统上所有 KVM 映像的优势。显然,我应该将每个 VM 固定到一个插槽/节点,以便其所有内存都在一个控制器上。但我对如何设置主机以使 ARC 最大限度地惠及每个 VM 感到困惑。

似乎合乎逻辑的是,如果我将主机保留在一个 NUMA 节点上,则意味着另一个节点上的虚拟机访问 ARC 的速度会更慢。但是,如果主机分布在 NUMA 节点上,其性能将受到影响,这可能会损害客户机的性能。

从我读到的内容来看,我甚至不清楚主机是否可以绑定到特定节点,或者根据定义它是否使用所有节点。如果是这样,Linux ARC 上的 ZFS 对 NUMA 节点的了解程度如何?

答案1

手动将资源/进程固定到特定套接字只能在非常特殊的情况下进行。此外,ARC 本身是一种全局资源,具有(大多数)不可预测的访问模式/命中。

我强烈建议你不要进行这种微调,除非被证明是必要的以获得良好的性能。尝试使用默认设置运行 Linux 安装,完全不干扰 NUMA,并使用以下方法观察系统行为:numastat

如果需要进一步调整,请尝试通过以下方式使用自动优化numad。仅当这还不够时,才尝试使用numactl和/或 KVM 客户 C​​PU 固定。

相关内容