我有一个有两个线程的应用程序,thread1 将从网卡 eth1 接收多播包,假设我使用 sched_setaffinity 将 thread1 的 cpu 亲和性设置为 cpu core 1,然后我让 thread2 使用这些包(从 thread1 接收,位于heap area global vars) 做一些操作,我将thread2的cpu亲和力设置为core 7,假设core 1和core 7在同一个core中具有超线程,我认为性能会很好,因为core 1和core 7可以使用 L1 缓存。
我看过/proc/interrupt,我看到eth1在几个cpu核心中有中断,所以在我的例子中,我将thread1的cpu亲和力设置为核心1,但是
在很多核心中都发生了中断,会影响性能吗?无论哪个内核有中断,从 eth1 收到的那些包都会直接进入主内存吗?
我对linux内核中的网络不太了解,任何建议书籍或网站的人都可以帮助我解决这个问题吗?谢谢大家的意见~~
编辑:根据“每个程序员应该了解的内存”6.3.5“直接缓存访问”,我认为“DCA”是我想知道的......