在问题服务器上运行「top」命令可以很明显看到「si」存在异样,大部分软中断都集中在 1 号CPU上,其它的CPU完全使不上劲儿:
shell> top
Cpu0: 11.3%us, 4.7%sy,...0.4%si, 0.8%st
Cpu7: 21.1%us, 5.8%sy, 0.0%ni, 71.4%id, ... 1.2%si, 0.4%st
查询一下软中断相关数据,发现主要集中在 NET_RX...好消息是Linux支持RPS,通俗点来说就是在软件层面模拟实现硬件的多队列网卡功能。...us, 5.1%sy, 0.0%ni, 77.5%id, ... 0.7%si, 0.7%st
疑问:理论上讲,我已经设置了RPS为ff,应该所有 8 个CPU一起分担软中断才对,可实际结果只有两个...最后,推荐看看香草总结的一些关于软中断方面的资料和工具,很全面。