Transmit Packet Steering (XPS)
Определение
Transmit Packet Steering (XPS) — механизм Linux для выбора аппаратной очереди передачи на многоочередной сетевой карте. Выбор можно связать с CPU или с очередью приёма.
Также ищут: XPS · Transmit Packet Steering · распределение передачи по очередям
Зачем это знать
На передаче важно не только количество TX-очередей, но и то, какие CPU или очереди приёма с ними связаны. XPS позволяет задать эту карту и уменьшить лишнее совместное использование одной очереди.
Карта понятия
Что подтверждено
XPS выбирает аппаратную очередь передачи для пакета на многоочередном сетевом устройстве; выбор может опираться на соответствие CPU очередям или очередей приёма очередям передачи.
Граница применимости: Linux networking scaling documentation; конкретное число очередей зависит от устройства и драйвера.
Для каждой очереди передачи Linux предоставляет xps_cpus для карты CPU → TX-очередь и xps_rxqs для карты RX-очередь → TX-очередь.
Граница применимости: Linux с CONFIG_XPS и поддерживаемым драйвером; файлы находятся в /sys/class/net/ИМЯ/queues/tx-N/.
Выбранная для потока очередь передачи сохраняется в структуре сокета и используется для следующих пакетов; смена очереди разрешается только когда транспортный слой сообщает, что это не создаст пакеты вне порядка.
Граница применимости: Linux XPS; документация описывает флаг ooo_okay в структуре пакета и приводит TCP как пример.
Если у сетевого устройства только одна очередь передачи, настройка XPS не влияет на выбор очереди, потому что выбирать не из чего.
Граница применимости: Раздел Suggested Configuration документа Linux; речь именно об устройстве с одной TX-очередью.
Если настроенная карта RX-очередей не подходит для конкретного пакета, Linux выбирает очередь передачи по карте CPU XPS.
Граница применимости: Linux XPS; поведение описано для выбора очереди по двум поддерживаемым картам.
Что проверить
- Проверьте число аппаратных очередей передачи у интерфейса.
- Для каждой TX-очереди прочитайте xps_cpus и, если используется связь с приёмом, xps_rxqs.
- Если TX-очередь одна, не ожидайте эффекта от XPS.
- После изменения карты сравните производительность, задержку и загрузку CPU; сама настройка не доказывает ускорение.
Первоисточники
- Scaling in the Linux Networking Stack
RSS, RPS, RFS и XPS; для этой партии использованы разделы RSS/RPS и замечание об irqbalance.
Связанные понятия
Курсы по теме
Следующий шаг
Сформулируйте задачу и уточните требования к своей системе.
Подготовить подбор с ДелектусомОткроется черновик вопроса. Отправьте его, когда будете готовы.