2.3. 确认用于实例配置的 OVS
为确保 vhostuser DMA 正常工作,请将具有 OVS-DPDK 端口的实例配置为使用类别启用专用 CPU 和巨页。有关更多信息,请参阅: 为 OVS-DPDK 创建类别和部署实例。
要确认实例配置,请完成以下步骤:
确认实例已固定 CPU。可以使用 virsh 识别专用 CPU:
sudo virsh vcpupin 2
$ sudo virsh vcpupin 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认用于实例的仿真程序线程没有在分配给该实例的同一 vCPU 上运行:
sudo virsh emulatorpin 2
$ sudo virsh emulatorpin 2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意从 Red Hat OpenStack Platform 12 开始,您可以按照类别设置模拟器。请参阅使用 Red Hat OpenStack Platform 12 配置仿真程序线程策略。
对于较旧版本,必须在实例开机时手动完成仿真程序线程固定。请参阅关于在带有 NFV 的虚拟环境中使用 virsh 模拟器固定的影响(以及没有 isolcpus)以及优化仿真程序线程固定。
确认实例正在使用巨页,这是最佳性能所必需的。
sudo virsh numatune 1
$ sudo virsh numatune 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认实例的接收队列是否由轮询模式驱动程序(PMD)提供服务。
端口和队列应该在 PMD 之间平等平衡。最佳情况下,端口将由与网络适配器相同的 NUMA 节点中的 CPU 服务。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示 PMD 的统计信息。这有助于确定在 PMD 之间如何平衡队列。如需更多信息,请参阅 Open vSwitch 文档中的 PMD Threads。
注意pmd-rxq-rebalance选项在 OVS 2.9.0 中添加。此命令执行新的 PMD 队列分配,以便根据最新的 rxq 处理周期信息在 PMD 之间平等平衡。pmd-stats-show命令显示自 PMDs 运行或上次清除统计以来的完整历史记录。如果没有清除它,在设置端口前,它将融入到统计中,数据会被流处理。如果用于查看数据路径上的负载(通常是这样),那么将无用。最好将系统置于稳定状态,清除 stats,等待几秒钟,然后显示统计信息。这可让您准确显示 datapath。
使用以下命令来显示 PMD 的统计信息:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重置 PMD 统计信息。
pmd-stats-show命令显示自上次pmd-stats-clear命令以来的 PMD 统计信息。如果没有以前的pmd-stats-clear,它会包含自 PMD 开始运行时的数据。如果您在负载下检查系统,清除 PMD 统计信息会很有用,然后显示它们。否则,当系统未加载(流量流)前,统计可能还包括来自先前时间的数据。
使用以下命令重置 PMD 统计信息:
sudo ovs-appctl dpif-netdev/pmd-stats-clear
$ sudo ovs-appctl dpif-netdev/pmd-stats-clearCopy to Clipboard Copied! Toggle word wrap Toggle overflow