2.3. 确认用于实例配置的 OVS
为确保 vhostuser DMA 正常工作,请将具有 OVS-DPDK 端口的实例配置为使用类别启用专用 CPU 和巨页。有关更多信息,请参阅: 为 OVS-DPDK 创建类别和部署实例。
要确认实例配置,请完成以下步骤:
- 确认实例已固定 CPU。可以使用 - virsh识别专用 CPU:- sudo virsh vcpupin 2 - $ sudo virsh vcpupin 2- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 确认用于实例的仿真程序线程没有在分配给该实例的同一 vCPU 上运行: - sudo virsh emulatorpin 2 - $ sudo virsh emulatorpin 2- Copy 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 1- Copy 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-clear- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow