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

02 апреля 2024

ID 266301

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

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

  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

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

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

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!