Оптимизация настроек сетевых интерфейсов для компонента Sensor
Следуйте инструкции, если в процессе работы приложения наблюдаются потери сетевых пакетов или проблемы с производительностью при обработке сетевого трафика.
Чтобы уменьшить потери сетевых пакетов и неполного извлечения файлов из трафика:
- Укажите максимальное количество RSS-очередей:
- Если скорость передачи данных в вашей сети составляет менее 1 Гбит/с, установите значение 1.
- Если скорость передачи данных в вашей сети составляет более 1 Гбит/с, установите значение 16.
Если ваш сетевой интерфейс не позволяет установить значение 16 для параметра максимальное количество RSS-очередей, установите максимально возможное значение параметра.
- Настройте симметричное 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 16ethtool -X $dev equal 16ethtool -X $dev hfunc xor - Если вы используете сетевые карты семейства Intel (i40e), настройте количество RSS-очередей и RSS-хеширование, выполнив команды:
rmmod i40e && modprobe i40eifconfig $dev downethtool -L $dev combined 16ethtool -K $dev rxhash onethtool -K $dev ntuple onifconfig $dev upethtool -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 16ethtool -A $dev rx offethtool -C $dev adaptive-rx off adaptive-tx off rx-usecs 125ethtool -G $dev rx 1024ethtool -N $dev rx-flow-hash tcp4 sdfnethtool -N $dev rx-flow-hash tcp6 sdfnethtool -N $dev rx-flow-hash udp4 sdfnethtool -N $dev rx-flow-hash udp6 sdfn
Сетевые интерфейсы будут настроены.
После перезагрузки приложения вам необходимо заново настроить сетевые интерфейсы следуя инструкции.