Серверные сети

Receive Packet Steering (RPS)

Определение

Receive Packet Steering (RPS) — механизм Linux, который после аппаратного приёма направляет дальнейшую обработку пакета на выбранный CPU. Это программное дополнение к RSS.

Также ищут: Linux RPS · Receive Packet Steering · программное распределение обработки пакетов

Зачем это знать

RPS может распределить сетевую обработку по большему числу CPU, даже если аппаратных очередей мало. Но он добавляет межпроцессорные прерывания, поэтому включать его без проверки текущей схемы RSS не стоит.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. RPS работает программно и выбирает CPU для обработки сетевого протокола после нижней части обработчика приёма; RSS выбирает аппаратную очередь и CPU, обслуживающий её прерывание, раньше в тракте.

    Граница применимости: Linux networking stack; сравнение относится к описанным механизмам RSS/RPS, а не ко всем способам steering.

  2. Документация Linux отмечает, что RPS можно использовать с любой сетевой картой, потому что решение о CPU принимается программно.

    Граница применимости: Linux с CONFIG_RPS; доступность конкретных настроек зависит от ядра и драйвера.

  3. Для каждой аппаратной очереди приёма Linux предоставляет список CPU RPS через /sys/class/net/ИМЯ/queues/rx-N/rps_cpus.

    Граница применимости: Linux с CONFIG_RPS; файл содержит bitmap CPU для конкретной очереди.

  4. Если rps_cpus для очереди равен нулю, RPS отключён; это значение по умолчанию, и пакет продолжает обрабатываться на CPU, обслужившем прерывание.

    Граница применимости: Linux networking scaling documentation; речь о RPS для конкретной очереди приёма.

  5. Если RSS уже сопоставляет отдельную аппаратную очередь каждому CPU, документация Linux называет RPS вероятно избыточным; при меньшем числе аппаратных очередей RPS может быть полезен.

    Граница применимости: Раздел Suggested Configuration; это рекомендация, а не гарантия производительности для любой нагрузки.

Перед спецификацией

Что проверить

  1. Сначала проверьте аппаратные очереди и распределение RSS.
  2. Для каждой очереди прочитайте rps_cpus и зафиксируйте разрешённые CPU.
  3. Не включайте RPS только ради большего числа CPU: сравните задержку, загрузку CPU и сетевую производительность до и после.
  4. На NUMA-системе учитывайте, где обслуживается IRQ и где работает приложение.
Открытые основания

Первоисточники

  • Документация1
  • Официальная документация
    Scaling in the Linux Networking Stack Linux Kernel · Linux kernel documentation; страница проверена 19 сентября 2026 года · проверено

    RSS, RPS, RFS и XPS; для этой партии использованы разделы RSS/RPS и замечание об irqbalance.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Следующий шаг

Сформулируйте задачу и уточните требования к своей системе.

Подготовить подбор с Делектусом

Откроется черновик вопроса. Отправьте его, когда будете готовы.

Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие