Потери на сетевых картах, задержки в обработке и как с ними бороться

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (13)

просмотр истории страницы
h1. Как увидеть информацию о потерях

Для начала убедимся в существовании проблемы. Для этого будем использовать набор утилит netutils-linux и стандартные инструменты iproute, в Carbon Reductor 8 они поставляются внутри контейнера `/app/reductor`, в других случаях установка происходит следующим образом:
Для начала убедимся в существовании проблемы. Для этого будем использовать набор утилит в Carbon Reductor и стандартные инструменты iproute.

Все команды надо запускать перейдя в контейнер Carbon Reductor:

{code}
yum -y install python-pip
pip install netutils-linux
chroot /app/reductor
{code}

h2. Информация о сетевом стеке

Просмотр подробной информации о текущем состоянии сетевого стека.:

{code}
chroot /app/reductor network-top
network-top
{code}

h3. /proc/interrupts

Отображает то, как очереди сетевой карты распределены между ядрами. Рекомендуем распределять 1 очередь на 1 ядро, можно "лесенкой". Если в одну очередь приходит больше пакетов, чем в остальные - возможно трафик инкапсулирован (QinQ, PPP).

Если в одну очередь приходит больше пакетов, чем в остальные - возможно трафик инкапсулирован (QinQ, PPP).

h3. Load per CPU

Статья для лучшего понимания, правда больше под маршрутизаторы : [http://habrahabr.ru/post/108240/]

В кратце - можно за счёт повышения нагрузки на процессор слегка снять нагрузку с сетёвки уменьшая rx-usecs. На большинстве машин использумых в нашем случае оптимальным оказалось значение 1.
В кратце - можно за счёт повышения нагрузки на процессор слегка снять нагрузку с сетевой карты, уменьшая rx-usecs.

На большинстве машин использумых в нашем случае оптимальным оказалось значение 1.

{code}
ethtool -C eth1 rx-usecs 1