本文目录
- 1、查看CPU占用率
- 2、查看系统的中断处理在各个CPU核间的分布情况
- 3、查看用于处理网卡中断的CPU核
- 4、修改用于处理网卡中断的CPU核
在默认的情况下Linux默认一个网卡的中断操作都在一个CPU核里处理,在大数据量或者说是对网卡的收发包性能PPS进行测试时,对网卡进行IO操作就成了最消耗CPU的瓶颈。如果我们有多网卡同时收发包的话,我们可以通过人为修改网卡中断的处理用的CPU核,来达到更好的性能。
1、查看CPU占用率
如下图所示,我们可以看到si占用的9.6%的CPU都出现第2个CPU核,而其它CPU核并没有来帮助处理。
2、查看系统的中断处理在各个CPU核间的分布情况
如下图,我们可以看到编号为128的网卡设备enp2s0的大量的中断都由CPU1进行处理了
sudo cat /proc/interrupts
3、查看用于处理网卡中断的CPU核
cat /proc/irq/128/smp_affinity
我们会看到返回的结果是2,转换成2进制就是0x0010说明在第2个CPU既CPU1上(说明:这里用的是bit mask, 如果是0x0001表示第一个CPU, 0x0010表示第二个CPU, 0x0100表示第三个CPU, 0x1000表示第四个CPU )
4、修改用于处理网卡中断的CPU核
进入root模式后,使用如下命令将系统设置成用第4个CPU(8 = 0x1000)来处理网卡的中断
echo "8">/proc/irq/128/smp_affinity
再用以下命令,我们可以看到第2个CPU上的中断数量不再增加,而第4个CPU上的中断数量在不停的增加,说明网卡的中断已经转到第4个CPU处理了
sudo cat /proc/interrupts