每个数据包是否由不同的核心处理?还是单线程进程?
2
我不知道为什么Chopper3关闭了这个问题。但是要回答这个问题:Iptables实际上只是Linux防火墙(netfilter)的用户空间前端。Netfilter实际上是内核中围绕数据包处理的挂钩系统。内核通过触发中断处理每个数据包。您的内核是否平衡多个CPU之间的中断取决于它的年龄。有关此信息,请参见StackOverflow上的该线程。stackoverflow.com/questions/7467688/...
—
JakePaulus
+1,因为我认为这是一个真正的问题。
—
2011年
@JakePaulus这种IRQ平衡永远不会为一个中断分配多个内核。因此,永远不会在单个线路上为每个数据包交换核心吗?
—
尼尔斯
从CPU内存缓存的角度来看,为单个连接切换内核没有多大意义-如果这些内核不共享同一缓存,则可能甚至减慢速度。但是你为什么要问这个问题?
—
尼尔斯
@Nils接口产生的中断可以重定向到另一个不那么忙的CPU。同样,多个接口可能会将其中断发送到不同的CPU,以分散负载。我认为您对来自单个接口的流量不能在每个数据包的基础上在各个CPU之间进行平衡是正确的。
—
JakePaulus 2011年