13.2.5. 模拟线程的最佳位置
本节提供了将仿真程序线程放在以下网络中的描述:
- 实例的 DPDK 网络和 Open vSwitch 中的 netdev 数据路径
- 实例中 DPDK 网络,位于 Open vSwitch 中的系统数据路径和虚拟机监控程序上的内核空间网络
- 实例中内核和 Open vSwitch 中的内核网络
如果 DPDK 在实例内运行,则为完全在用户空间中进行数据包处理。不要将 PMD 调度到 vCPU0 上运行,因为这应该留给操作系统和中断处理。由于实例中的 PMD CPU 运行活跃循环并且需要 100% 的 CPU,所以不应被抢占。如果其中一个 vCPU 被抢占,则可能会发生数据包丢失。因此,模拟仿真程序需要进行配置,从而使它不会与处理编号为 1 及以上虚拟 CPU 的物理 CPU 重叠。
在实例中使用 DPDK 网络,仿真程序线程的最佳位置是处理 vCPU 0 的 pCPU,也可以是不处理任何虚拟 CPU 的专用物理 CPU。
如果虚拟机监控程序和 DPDK 在实例上使用 OVS-DPDK,请将仿真器线程放在 vCPU 0 上。