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