每个数据包是否由不同的核心处理?还是单线程处理?
答案1
Iptables 实际上只是 Linux 防火墙(即 netfilter)的用户空间前端。Netfilter 实际上是内核中围绕数据包处理的钩子系统。每个数据包都由内核通过触发中断来处理。您的内核是否在多个 CPU 之间平衡中断取决于内核的年龄。请参阅 StackOverflow 上关于此主题的讨论。https://stackoverflow.com/questions/7467688/netfilter-hooks-on-multi-core-system
正如 Nils 提到的,这些中断不会按数据包进行平衡。它们将按 IRQ(每个接口)进行平衡,或者如果某个 CPU 太忙,则可能将其一起移至不同的 CPU。