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

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

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

просмотр истории страницы
В Carbon Reductor 8 данная утилита используется автоматически для сетевых карт с одной очередью.

h4. Комбинирование RSS и RPS

{note}
Перед настройками зафиксируйте средний рост потерь с помощью команды network-top ( chroot /app/reductor/ network-top ).

После замеров сравните, как этот показатель изменился.

Оптимизация без замеров может ухудшить ситуацию\!
{note}

В случае если:

# Используется одна сетевая карта
# Сетевая карта не привязана к конкретной NUMA-ноде (команда cat /sys/class/net/eth0/device/numa_node выводит "-1")
# Система имеет 2\+ физических процессора
# Один процессор не справляется с нагрузкой
# При использовании распределения реальных прерываний по ядрам обоих процессоров потерь становится ещё больше


Можно попробовать комбинировать RSS и RPS.

Для RPS нужно явно указать маску перечисляющую все доступные процессоры.

* Для 4 ядер - f
* Для 8 ядер - ff
* Для 12 ядер - fff
* Маску можно посмотреть в файле /sys/class/net/eth0/device/local_cpus

{info}
Все примеры ниже - для 2х 6-ядерных процессоров
{info}
\\

{code}
chroot /app/reductor
rss-ladder eth0
autorps eth0 -m fff -f
{code}

Чтобы эффект сохранялся после перезагрузки нужно в хуке /app/reductor/cfg/userinfo/hooks/start.sh добавить следующее:


{code}
#!/bin/bash

client_post_start_hook() {
ethtool -L eth0 combined 6 || true
rss-ladder eth0 || true
autorps eth0 -m fff -f || true
return 0
}
{code}

Если ситуация стала хуже, RPS можно отключить, указав маску = 0:

{code}
autorps eth0 -f -m 0
{code}

h3. Различные значения rx-usecs