可以使用多少个不同的最大CPU内核来处理一个IP数据包?

时间:2016-01-11 21:28:25

标签: c sockets tcp linux-kernel linux-device-driver

例如,我们有1个CPU,8个核心。 当它超过Eth0-> TCP / IP->应用程序(不包括应用程序中的处理)时,可以使用多少个不同的最大CPU内核来处理一个IP数据包?

例如,它可能是3个CPU核心:

  1. 处理硬件中断
  2. 进程校验和计算
  3. 处理副本内核空间 - >用户空间(其指针已发送到套接字)
  4. 这对性能非常重要,因为核心之间的每次数据传输都非常昂贵。

1 个答案:

答案 0 :(得分:3)

一般来说,你将在一个内核上处理中断,有可能在处理它时涉及的实际内核工作将在不同的内核上发生,最后将其交给运行在第三个内核上的应用程序。在某些操作系统上,您可以设置进程关联以及中断处理程序关联,以避免反弹数据。