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

irqbalance на linux и сброшенные пакеты

Я исследую отброшенные пакеты на двухъядерном четырехъядерном XEON-устройстве под управлением Linux. Я вижу только одну вещь: в системе работает irqbalance. У меня есть пара вопросов. Чтение документов Вот Я думаю, что понимаю, как это должно работать, но одна вещь, которая кажется сбивающей с толку, - это эта строчка: «Текущая программа irqbalance для Linux разработана уже несколько лет назад и в блаженном неведении об идеях Quad (или даже Dual) ядра или даже энергопотребление. Программа концептуально ближе к наивной балансировке, чем к умной балансировке прерываний ". Похоже, это указывает на то, что есть старая и новая версия irqbalance. Так ли это? Как узнать, что работает на машине.

Кроме того, если моя цель - оптимизировать обработку пакетов во время пакетов, нужно ли мне запускать irqbalance или нужно вручную привязать сетевую карту к набору процессоров?

Одно из решений этой проблемы - использовать комбинацию отключения irqbalance, изоляции процессора и закрепления прерываний сетевого адаптера на изолированном процессоре.

  • Отключите irqbalance. Это приведет к тому, что все прерывания будут на CPU0.
  • Изолируйте ЦП 1-3 с помощью параметра загрузки ядра "isolcpus = 1-3"
  • Вручную закрепите прерывания для сетевой карты на одном из изолированных процессоров (echo 'cpumask'. / Proc / irq // smp_affinity).

Это позволит сетевой карте выполнять свои IRQ на ЦП, который не беспокоится о случайных потоках ядра и IRQ от других аппаратных устройств.

Вот хорошее объяснение того, как привязать IRQ к конкретному процессору.

https://cs.uwaterloo.ca/~brecht/servers/apic/SMP-affinity.txt

Под «текущим» понимается то, что было общим, когда эта страница была написана лет пять назад или около того. Каждый современный дистрибутив Linux, который вы, вероятно, будете использовать, имеет современный интеллектуальный irqbalance. Вы пытаетесь решить очень серьезную проблему, очень вряд ли существует.