Распределение прерываний

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Многие сетевые карты имеют несколько очередей для входящих пакетов. Каждая очередь висит на ядре/списке ядер. На многих железках из коробки, несмотря на то, что в smp_affinity_list указан список 0-$cpucount все прерывания находятся на первом ядре процессора. Обойти это можно раскидав с помощью echo все прерывания на разные ядра.

Для систем с одним физическим процессором и сетевыми картами, использующими драйвера igb, ixgbe, vmxnet3 можно использовать утилиту netutils-linux.

Установка производится следующими командами:

yum install python-pip
pip install netutils-linux

Использование в контейнере reductor (для сетевого адаптера eth1):

chroot /app/reductor
rss-ladder eth1

Для многопроцессорных систем настройку лучше производить вручную.

По возможности используйте разные реальные ядра, допустим, дано:

  • 1 процессор с гипертредингом
  • 4 реальных ядра
  • 8 виртуальных ядер
  • 4 очереди сетевой карты, которые составляют 95% работы сервера

Раскинуть их на 0, 1, 2 и 3 ядра будет не так эффективно, как на 0, 2, 4 и 6.

Пример кода (не универсальный), который раскидывает 8 очередей на 8 ядер (довольно простой случай).
Строка "-TxRx" - по ней можно идентифицировать очереди сетевой карты принимающей зеркало трафика, может отличаться в зависимости от модели сетевой карты и драйвера, посмотреть как она выглядит можно в файле cat /proc/interrupts

Создаем сам файл-хук:

/app/reductor/cfg/userinfo/hooks/start.sh

В него добавляем следующее содержимое:

#!/bin/bash
#

client_post_start_hook(){
       rss-ladder eth1 0
       rss-ladder eth0 1
}
client_post_start_hook
#
При использовании многопроцессорных систем (с двумя более физическими процессорами) распределять прерывания лучше по нескольким процессорам для разных сетевых адаптеров, будь то адаптеры под зеркало или зеркало и внешний интерфейс.
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.