|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (20)
просмотр истории страницыМногие сетевые карты имеют несколько очередей для входящих пакетов. Каждая очередь висит на ядре/списке ядер. На многих железках из коробки, несмотря на то, что в smp_affinity_list указан список 0-$cpucount все прерывания находятся на первом ядре процессора. Обойти это можно раскидав с помощью echo все прерывания на разные ядра. |
Для систем с одним физическим процессором и сетевыми картами, использующими драйвера igb, ixgbe, vmxnet3 можно использовать утилиту: |
В Carbon Reductor DPI X распределение прерываний осуществляется встроенными средствами. |
|
h4. Включение из консоли: h5. Шаг 1. Выбрать пункт "Включить RSS для сетевых карт" |
{code} |
chroot /app/reductor /usr/local/Reductor/bin/tune_interrupts.sh 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} |
# Скрипт_распределения интерфейс номер физического процессора (0, 1, 2) |
|
client_post_start_hook(){ /usr/local/Reductor/bin/tune_interrupts eth1 0 /usr/local/Reductor/bin/tune_interrupts eth0 1 } |
{code} {info} |
При использовании многопроцессорных систем (с двумя и более физическими процессорами) распределять прерывания лучше по нескольким процессорам для разных сетевых адаптеров, будь то адаптеры под зеркало или зеркало и внешний интерфейс. |
{info} |