Назад | Перейти на главную страницу

Управление трафиком Linux: qdisc mq

В моей системе Linux я вижу это:

# ip link list
....
2: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000
....

Что qdisc mq? В http://lartc.org/lartc.html Нахожу информацию только по IMQ.

В примерах из инструкции также есть qdisc noop и qdisc noqueue, но подробностей о них нет.

Поиск в Google легко дал бы эта статья из списка рассылки ядра vger:

Эти исправления содержат фиктивный планировщик с множеством очередей («mq»), который исправляет несколько проблем с текущей интеграцией с несколькими очередями TC API. Журналы изменений патчей 05 и 07 содержат более подробную информацию.

Планировщик mq выполняет две функции:

  • представлять очереди передачи устройств как классы, позволяя присоединять к ним различные qdiscs, которые привиты к очередям передачи

  • представляет накопленную статистику всех корневых qdiscs очереди устройств

Он используется по умолчанию для устройств с несколькими очередями вместо обычного qdisc pfifo_fast, но также может быть присоединен вручную для восстановления поведения нескольких очередей после присоединения qdisc без нескольких очередей (общего доступа).

Multiqueue - это функция, иначе называемая RSS (масштабирование на стороне приема), которая в основном распределяет нагрузку обработки пакетов между несколькими ядрами. Дальнейшее чтение: http://lxr.free-electrons.com/source/Documentation/networking/scaling.txt