Оптимизация настроек сетевых интерфейсов для компонента Sensor
Следуйте инструкции, если в процессе работы приложения наблюдаются потери сетевых пакетов или проблемы с производительностью при обработке сетевого трафика.
Чтобы уменьшить потери сетевых пакетов и неполного извлечения файлов из трафика:
- Укажите максимальное количество RSS-очередей:
- Если скорость передачи данных в вашей сети составляет менее 1 Гбит/с, установите значение 1.
- Если скорость передачи данных в вашей сети составляет более 1 Гбит/с, установите значение 16.
Если ваша сетевой интерфейс не позволяет установить значение 16 для параметра максимальное количество RSS-очередей, установите максимально возможное значение параметра.
- Настройте симметричное RSS-хеширование для сетевого интерфейса. Подробнее о настройке RSS-хеширования см. в документации производителя сетевой карты.
- Создайте файл interrupts.sh cо следующим содержимым.
- Выполните команду:
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
Сетевые интерфейсы будут настроены.
После перезагрузки приложения вам необходимо заново настроить сетевые интерфейсы следуя инструкции.