|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (21)
просмотр истории страницыМногие сетевые карты имеют несколько очередей для входящих пакетов. Каждая очередь висит на ядре/списке ядер. На многих железках из коробки, несмотря на то, что в smp_affinity_list указан список 0-$cpucount все прерывания находятся на первом ядре процессора. Обойти это можно раскидав с помощью echo все прерывания на разные ядра. |
Для систем с одним физическим процессором и сетевыми картами, использующими драйвера igb, ixgbe, vmxnet3 можно использовать утилиту netutils-linux. |
В Carbon Reductor DPI X распределение прерываний осуществляется встроенными средствами. |
|
Установка производится следующими командами: {code} yum install python-pip pip install netutils-linux {code} |
h4. Включение из консоли: |
|
Использование в контейнере reductor (для сетевого адаптера eth1): |
h5. Шаг 1. Выбрать пункт "Включить RSS для сетевых карт" |
{code} |
chroot /app/reductor rss-ladder eth1 |
menu->Reductor DPI X->Прочие настройки->Включить RSS для сетевых карт |
{code} |
Для многопроцессорных систем настройку лучше производить вручную. |
Далее выйти с сохранением настроек. |
|
По возможности используйте разные реальные ядра, допустим, дано: |
h5. Шаг 2. Проверить запись в mirror_info.conf |
|
- 1 процессор с гипертредингом - 4 реальных ядра - 8 виртуальных ядер - 4 очереди сетевой карты, которые составляют 95% работы сервера |
Открыть любым удобным для вас редактором ( например vim ) файл mirror_info.conf |
|
Раскинуть их на 0, 1, 2 и 3 ядра будет не так эффективно, как на 0, 2, 4 и 6. |
{code} vim /app/reductor/cfg/userinfo/mirror_info.conf {code} |
|
Пример кода (не универсальный), который раскидывает 8 очередей на 8 ядер (довольно простой случай). Строка "-TxRx" - по ней можно идентифицировать очереди сетевой карты принимающей зеркало трафика, может отличаться в зависимости от модели сетевой карты и драйвера, посмотреть как она выглядит можно в файле cat /proc/interrupts Создаем сам файл-хук: {panel} /app/reductor/cfg/userinfo/hooks/start.sh {panel} В него добавляем следующее содержимое: |
Убедиться в наличие соответствующей записи "mirror rss" напротив каждого указанного интерфейса. |
{code} |
eth1 - - mirror rss |
#!/bin/bash {code} |
|
client_post_start_hook(){ rss-ladder eth1 0 rss-ladder eth0 1 } client_post_start_hook |
{code} {info} |
... |