Почему некоторые мультиочереди (qdisc mq) имеют n tx/1 rx, а другие имеют 1 tx/n rx?

Вы также можете указать текущий каталог, используя $(pwd), например:

grep -r --exclude-dir='.*' string "$(pwd)"
0
18.08.2019, 08:26
1 ответ

Не знаю, смогу ли я решительно ответить на ваш вопрос. Для этого предполагалось, что я знаю проектные решения инженеров по оборудованию и разработчиков драйверов сетевых карт. Вы правильно отметили различия в количестве очередей, используемых в многоканальной очереди -, однако они применяются иначе, чем вы описали.

Выходные данные из tcпоказывают только очереди Tx. mq— это логический qdisc, который позволяет связывать другие дисциплины очереди под ним. Я не знаю, что mqформирует сам по себе. В случае вашего беспроводного сетевого адаптера mqустанавливается на корневом уровне с 4 очередями передачи с использованиемpfifo_fast:по умолчанию в Linux.

Вы заметите, что вывод сервера ProLiant сильно отличается.

$ sudo tc qdisc show dev eno3
qdisc mq 0: root 
qdisc pfifo_fast 0: parent :1 bands 3 priomap  1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1

$ sudo ll /sys/class/net/eno3/queues/
total 0
41241 0 drwxr-xr-x 2 root root 0 août  12 23:17 rx-0/
41244 0 drwxr-xr-x 2 root root 0 août  12 23:17 rx-1/
41247 0 drwxr-xr-x 2 root root 0 août  12 23:17 rx-2/
41250 0 drwxr-xr-x 2 root root 0 août  12 23:17 rx-3/
41256 0 drwxr-xr-x 3 root root 0 août  12 23:17 tx-0/

Здесь показано использование mqна корневом уровне, но фактически это одна очередь. Это связано с тем, что существует только один экземпляр pfifo_fast, связанный с одной очередью Tx, показанной в выводе sysfs.

Почему? Что касается сервера, то в этом есть смысл. В зависимости от того, какие услуги предоставляются, может быть получено гораздо больше данных, чем отправлено. Что касается WiFi... я действительно не знаю. Можно было бы ожидать, что ноутбук будет получать больше, чем отправляет.

В любом случае, если вы используете оборудование, поддерживающее несколько очередей (, которым вы являетесь ), вы можете настроить количество очередей, используемых драйвером сетевой карты, с помощью команды ethtool. Прочтите страницу руководства для ethtool для лучшего понимания.

0
28.01.2020, 03:21

Теги

Похожие вопросы