有台 aarch64 物理机( 2*32 核心),装的麒麟 V10 操作系统,最近从 top 观察发现软中断很高,对应的每个核心上跑的 ksoftirqd 进程消耗 CPU 时间也基本吻合,然后我考虑是不是可能硬中断负载也是不均匀的,后来查看 /proc/interrupts 文件和 /proc/irq/中断号 /smp_affinity ,发现网卡的收发队列只绑定在了某些核上,也分布和软中断高的核心吻合,后来了解到这个绑核应该是 irqbalance 做的。所以,请问这个猜测成立不?
1
sean10 Apr 26, 2023 via Android 印象里是成立的,可以设置绑定到其他核,但是其实迫于 numa 的关系,通过 lstopo 可以看核和网卡的链路亲和关系,绑其他核只会增加延时
|
2
zhoudaiyu OP PRO @sean10 比如网卡在 node0 上,node0 有 32 个核心,网卡也有 32 个队列,那直接改 smp_affinity1 个队列 1 个 node0 的核心就可以了吧?然后把 irqbalance 关掉
|
4
artnowben Apr 26, 2023
大概率是网卡中断绑得不好
做个实验 把 irqbalance 关了,把 smp_affinity 设置为多个核 |