优化 Sensor 组件的网络接口设置
如果应用程序在处理网络流量时遇到网络数据包丢失或性能问题,请按照这些说明进行操作。
要减少网络数据包丢失和从流量中提取文件不完整的情况,请执行以下操作:
- 指定 RSS 队列的最大数量:
- 如果网络上的数据传输速率小于 1 Gbps,请将数字设置为 1。
- 如果网络上的数据传输速率大于 1 Gbps,请将数字设置为 16。
如果您的网络接口不允许将 RSS 队列的最大数量设置为 16,请将其设置为受支持的最大数量。
- 为网络接口配置对称 RSS 哈希。有关配置 RSS 哈希的详细信息,请参阅网络适配器的供应商文档。
- 创建包含以下内容的 interrupts.sh 文件。
- 运行以下命令:
sudo bash interrupts.sh <dev> <min_cpu> <max_cpu> <step>
,其中<dev>
是您想要在内核之间分配中断的网络接口。<min_cpu>
是网络适配器中断分配范围内的第一个内核。<max_cpu>
是网络适配器中断分配范围内的最后一个内核。<step>
是选择下一个分配给中断的内核的增量。示例:
sudo bash interrupts.sh ens192 2 11 1
- 如果您使用 NVIDIA Mellanox 网络适配器 (mlx4),请通过运行以下命令配置 RSS 队列数和 RSS 哈希:
ethtool -L $dev rx 16
ethtool -X $dev equal 16
ethtool -X $dev hfunc xor
- 如果您使用的是 Intel 网络适配器 (i40e),请配置 RSS 队列数和 RSS 哈希:
rmmod i40e && modprobe i40e
ifconfig $dev down
ethtool -L $dev combined 16
ethtool -K $dev rxhash on
ethtool -K $dev ntuple on
ifconfig $dev up
ethtool -X $dev hkey 6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:
5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A:6D:5A equal 16
ethtool -A $dev rx off
ethtool -C $dev adaptive-rx off adaptive-tx off rx-usecs 125
ethtool -G $dev rx 1024
ethtool -N $dev rx-flow-hash tcp4 sdfn
ethtool -N $dev rx-flow-hash tcp6 sdfn
ethtool -N $dev rx-flow-hash udp4 sdfn
ethtool -N $dev rx-flow-hash udp6 sdfn
网络接口已配置。
重新启动应用程序后,您必须按照说明重新配置网络接口。