linux下软中断[si]负载均衡

最近在生产环境的服务器上发现如下问题:

linux下软中断[si]负载均衡_第1张图片

多进程服务的用户负载[us]可以均匀分配在各个CPU上运行,但软中断负载[si]只集中在CPU0上,导致CPU0的[si]段的负载达到70%,而其他几个核的si段负载为0%,为何会出现此现象呢?


首先,我们查看一下,是哪一个软中断占用的比较高(watch -d -n 1 'cat /proc/softirqs'):

linux下软中断[si]负载均衡_第2张图片

从图中可以看出:NET_RX占用的中断比较高。

经查询:NET_RX是网卡操作相关的中断;

疑问:网卡读写为什么会集中绑定在一个CPU上呢?

解释:在没有irqbalance服务的情况下,网卡操作默认绑定在了CPU0上,导致所有的软中断都在CPU0上运行。

解决办法:安装irqbalance服务并启用,问题解决


你可能感兴趣的:(linux下软中断[si]负载均衡)