Чи користуються IPTables переваги багатоядерних процесорів?


10

Чи обробляється кожен пакет іншим ядром? Або це однопоточний процес?


2
Я не впевнений, чому Chopper3 закрив це питання. Щоб відповісти на це, хоча: Iptables - це справді просто передній інтерфейс для брандмауера Linux, який є netfilter. Netfilter - це справді система гаків у ядрі навколо обробки пакетів. Кожен пакет обробляється ядром шляхом ініціювання переривання. Від того, чи переважає баланс вашого ядра в декількох процесорах, залежить від того, скільки йому років. Дивіться цю тему в StackOverflow про неї. stackoverflow.com/questions/7467688 / ...
JakePaulus

+1, тому що я думаю, що це справжнє питання.
Сачин Дівекар

@JakePaulus Цей IRQ-балансування ніколи не призначить більше одного ядра одному перериванню. Тож перемикання ядер для кожного пакету в одній лінії ніколи не відбудеться?
Нілс

З точки зору кешування пам'яті процесора перемикання ядер для одного з'єднання не має особливого сенсу - це, можливо, навіть сповільнить речі, якщо ці ядра не мають спільного кешу. Але чому ви задаєте це питання?
Нілс

@Nils Перерви, створені інтерфейсом, можуть бути перенаправлені на інший, менш зайнятий процесор. Крім того, кілька інтерфейсів можуть переривати їх в різні процесори для розповсюдження навантаження. Я думаю, ви маєте рацію щодо трафіку з одного інтерфейсу, який не збалансований між процесорами на основі пакетів.
JakePaulus

Відповіді:


6

Iptables - це справді просто передній інтерфейс для брандмауера Linux, який є netfilter. Netfilter - це справді система гаків у ядрі навколо обробки пакетів. Кожен пакет обробляється ядром шляхом ініціювання переривання. Від того, чи переважає баланс вашого ядра в декількох процесорах, залежить від того, скільки йому років. Дивіться цю тему в StackOverflow про неї. /programming/7467688/netfilter-hooks-on-multi-core-system

Як згадував Нілс, ці переривання не врівноважуватимуться на основі пакетів. Вони будуть збалансовані за IRQ (за інтерфейс) або, можливо, взагалі переміщені до іншого процесора, якщо один стане занадто зайнятим.


Ви також можете придушити переривання або приєднати їх до різних ядер. Я бачив у деяких випадках, вони встановлюють, що всі переривання мережі до кількох ядер, щоб забезпечити найменше переупорядкування пакетів та міграцію процесів через ядра.
chandank
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.