##1. 软中断与硬中断的区别
软中断:如代码调用INT指令触发
硬中断:为响应中断,一般会有一个硬件中断控制器,当设备完成任务后出发中断到中断控制器,中断控制器通知CPU,一个中断产生后,CPU需要停下当前手里的事情来处理中断。
信号与中断的相似点:
(1)采用了相同的异步通信方式;
(2)当检测出有信号或中断请求时,都暂停正在执行的程序而转去执行相应的处理程序;
(3)都在处理完毕后返回到原来的断点;
(4)对信号或中断都可进行屏蔽。
信号与中断的区别:
(1)中断有优先级,而信号没有优先级,所有的信号都是平等的;
(2)信号处理程序是在 用户态 下运行的,而中断处理程序是在 核心态 下运行;
(3)中断响应是及时的,而信号响应通常都有较大的时间延迟。
##2. 网卡的中断亲和性设置
中断亲和性
a) 查看所需的网卡
ifconfig
b) 查看网卡所在的NUMA节点,可根据实际情况将网卡中断绑到NUMA所在节点的CPU核
cat /sys/class/net/XXX/device/numa_node
c) 关闭irqbalance服务
service irqbalance status
service irqbalance stop
d) 查询网卡对应的中断号
cat /proc/interrupts | grep enp125s0f0
第一列对应中断号
e) 查询当前网卡中断绑核情况。
cat /proc/irq/227/smp_affinity_list
f) 手动绑定网卡中断到指定的CPU。
例如,将网卡中断绑定到CPU4:
echo 4 > /proc/irq/227/smp_affinity_list
建议执行echo 2 > /proc/irq/xxx/smp_affinity_list将中断绑定到物理网卡所在的NUMA的CPU上,其中xxx为步骤2中查询到的中断号,这里中断绑定到CPU2
资料:
https://blog.csdn.net/whut_gyx/article/details/8488768
https://zhuanlan.zhihu.com/p/150692096
https://support.huaweicloud.com/tngg-kunpengcpfs/kunpengkvm_05_0001.html