В некоторых случаях сетевая карта может неравномерно распределить поступающие пакеты по очередям (посмотреть балансировку пакетов, например, на интерфейсе eth1, можно при помощи команды ethtool -S eth1 | grep "tx_queue_0_p\|tx_queue_1_p\|rx_queue_0_p\|rx_queue_1_p"). Для равномерного распределения пакетов по очередям можно применить ручную балансировку трафика.
Для балансировки поступающего трафика необходимо воспользоваться командой ethtool.
В файл /etc/rc.local.inc (с его содержимым можно ознакомиться в главе «Конфигурирование количества очередей на сетевой карте»), помимо выставления двух очередей на интерфейсах, необходимо добавить строки с командами ethtool --config-ntuple <...>. Так, например, если LAN-интерфейс – это eth13 и поступающие на него пакеты имеют destination-адрес 10.1.1.1 и 10.2.2.1, а WAN-интерфейс – это eth1 и поступающие на него пакеты имеют destination-адрес 192.168.2.127 и 192.168.2.128, то файл /etc/rc.local.inc должен иметь вид:
wan_if=eth1
lan_if=eth13
QNUM=2
ethtool -L $wan_if combined $QNUM
ethtool -L $lan_if combined $QNUM
ethtool -K $wan_if ntuple on
ethtool -K $lan_if ntuple on
ethtool --config-ntuple $wan_if flow-type ip4 dst-ip 192.168.2.127 action 0 loc 100
ethtool --config-ntuple $wan_if flow-type ip4 dst-ip 192.168.2.128 action 1 loc 101
ethtool --config-ntuple $lan_if flow-type ip4 dst-ip 10.1.1.1 action 0 loc 100
ethtool --config-ntuple $lan_if flow-type ip4 dst-ip 10.2.2.1 action 1 loc 101
· “action 0” – очередь под номером 0;
· “ip4” – название протокола;
· “loc 100” – номер правила на интерфейсе.
Пакеты, поступающие на интерфейс eth13 (LAN-интерфейс) и имеющие destination-адрес 10.1.1.1, будут отправлены в нулевую очередь, а пакеты, имеющие destination-адрес 10.2.2.1, будут отправлены в первую очередь. Аналогичная настройка происходит на интерфейсе eth13. Пакеты также можно балансировать при помощи source адресов (src-ip).
Подробнее ознакомиться с правилами распределения пакетов при помощи команды ethtool можно, используя мануал: man ethtool
После балансировки трафика, необходимо отследить загруженность ядер, распределение пакетов по очередям и ядрам. Загрузка должна быть равномерной.