Как устроен механизм распределения сетевых прерываний между ядрами процессора (RSS, Receive Side Scaling) в Linux?

RSS распределяет входящие потоки по аппаратным RX-очередям сетевой карты с помощью хеша заголовков и таблицы перенаправления. IRQ affinity связывает обработку очередей с ядрами CPU.

Короткий ответ

Что ответить на собеседовании

RSS распределяет входящие потоки по аппаратным RX-очередям сетевой карты с помощью хеша заголовков и таблицы перенаправления. IRQ affinity связывает обработку очередей с ядрами CPU.

Подробный разбор

Ответ с пояснениями

RSS распределяет входящие потоки по аппаратным RX-очередям сетевой карты с помощью хеша заголовков и таблицы перенаправления. IRQ affinity связывает обработку очередей с ядрами CPU.

Обычно хеш учитывает IP-адреса и порты, поэтому пакеты одного потока попадают в одну очередь. Очереди используют отдельные прерывания; irqbalance может менять их привязку. Проверяют ethtool, /proc/interrupts, softirq-нагрузку и NUMA-локальность. RSS отличается от RPS: второй механизм программно распределяет дальнейшую обработку в сетевом стеке.

Источник: docs.kernel.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее