Оптимизация настроек сетевых интерфейсов для компонента Sensor

Следуйте инструкции, если в процессе работы приложения наблюдаются потери сетевых пакетов или проблемы с производительностью при обработке сетевого трафика.

Чтобы уменьшить потери сетевых пакетов и неполного извлечения файлов из трафика:

  1. Укажите максимальное количество RSS-очередей:
    • Если скорость передачи данных в вашей сети составляет менее 1 Гбит/с, установите значение 1.
    • Если скорость передачи данных в вашей сети составляет более 1 Гбит/с, установите значение 16.

    Если ваша сетевой интерфейс не позволяет установить значение 16 для параметра максимальное количество RSS-очередей, установите максимально возможное значение параметра.

  2. Настройте симметричное RSS-хеширование для сетевого интерфейса. Подробнее о настройке RSS-хеширования см. в документации производителя сетевой карты.
  3. Создайте файл interrupts.sh cо следующим содержимым.
  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

Сетевые интерфейсы будут настроены.

После перезагрузки приложения вам необходимо заново настроить сетевые интерфейсы следуя инструкции.

В начало