RSS распределяет потоки по RX-очередям; привязка IRQ определяет ядра обработки. Концентрация на CPU0 может вызвать насыщение softirq, drops и рост задержек при свободных остальных ядрах.
Как устроен механизм распределения входящих сетевых прерываний между ядрами процессора (RSS, Receive Side Scaling) в Linux? Что произойдёт, если все сетевые пакеты от Nginx начнут обрабатываться только одним ядром CPU — ядром №0, — и как это исправить?
RSS распределяет потоки по RX-очередям; привязка IRQ определяет ядра обработки. Концентрация на CPU0 может вызвать насыщение softirq, drops и рост задержек при свободных остальных ядрах.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
RSS распределяет потоки по RX-очередям; привязка IRQ определяет ядра обработки. Концентрация на CPU0 может вызвать насыщение softirq, drops и рост задержек при свободных остальных ядрах.
Проверьте /proc/interrupts, очереди NIC, irqbalance, affinity и NUMA. Настройте распределение очередей и IRQ по подходящим ядрам; при необходимости рассмотрите RPS/RFS. Если речь о loopback-трафике от Nginx, аппаратный RSS не является универсальным решением. Изменения проверяйте нагрузкой, не выбирая маску CPU вслепую.
Источник: docs.kernel.org.