优化 Sensor 组件的网络接口设置

如果应用程序在处理网络流量时遇到网络数据包丢失或性能问题,请按照这些说明进行操作。

要减少网络数据包丢失和从流量中提取文件不完整的情况,请执行以下操作:

  1. 指定 RSS 队列的最大数量:
    • 如果网络上的数据传输速率小于 1 Gbps,请将数字设置为 1。
    • 如果网络上的数据传输速率大于 1 Gbps,请将数字设置为 16。

    如果您的网络接口不允许将 RSS 队列的最大数量设置为 16,请将其设置为受支持的最大数量。

  2. 为网络接口配置对称 RSS 哈希。有关配置 RSS 哈希的详细信息,请参阅网络适配器的供应商文档。
  3. 创建包含以下内容的 interrupts.sh 文件。
  4. 运行以下命令:

    sudo bash interrupts.sh <dev> <min_cpu> <max_cpu> <step>,其中

    • <dev>是您想要在内核之间分配中断的网络接口。
    • <min_cpu>是网络适配器中断分配范围内的第一个内核。
    • <max_cpu>是网络适配器中断分配范围内的最后一个内核。
    • <step>是选择下一个分配给中断的内核的增量。

      示例:

      sudo bash interrupts.sh ens192 2 11 1

  5. 如果您使用 NVIDIA Mellanox 网络适配器 (mlx4),请通过运行以下命令配置 RSS 队列数和 RSS 哈希:

    ethtool -L $dev rx 16

    ethtool -X $dev equal 16

    ethtool -X $dev hfunc xor

  6. 如果您使用的是 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

网络接口已配置。

重新启动应用程序后,您必须按照说明重新配置网络接口。

页面顶部