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

Ale*_*lex 7 c sockets tcp linux-device-driver linux-kernel

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

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

  1. 处理硬件中断
  2. 进程校验和计算
  3. 进程复制内核空间 - >用户空间(其指针已发送到套接字)

这对性能非常重要,因为核之间的每次数据传输都非常昂贵.

小智 3

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