如何将网卡中断绑定到特定cpu?

本文介绍了网卡中断绑定到特定CPU的原因和方法,以提高CPU利用率和中断处理效率。在多核CPU环境下,通过绑定中断可以均衡负载。在CentOS 6.5系统中,可以查看中断号并利用/proc/irq/中断号/smp_affinity文件来手动绑定中断到指定CPU,避免irqbalance服务自动覆盖设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在CPU单核的时代,网卡收发包处理都会有一个CPU负责,但随着多核CPU的出现,

还按照以前网卡中断有一个cpu处理的话,明显浪费CPU资源,基于此出现了网卡中断绑定

特定CPU的技术,目的当然是为了提高CPU利用率,将网卡中断均衡的分配到各个CPU.

     首先,简单说一下中断,什么是中断呢?就是各个硬件设备(网卡,键盘鼠标,磁盘等等)

与CPU的通信方式,告诉CPU,我这儿有任务要处理,CPU中断手头的工作,先去响应硬件;

老实说,中断处理系统是种比较有效率的做法,linux就是采用的这种方法。

       中断比起轮询来说好很多,举个例子,比如一个人处理手机短信,轮询就是每5分钟去

检查一下手机,看看有没有短信;中断就是手机收到短信时,震动或响铃,提醒你处理短信,

是不是中断更搞笑啊。

      接着来说中断,为了区分不同的硬件,每个硬件有个唯一的中断号,在linux下可以查看文件

      cat /proc/interrupts 

      

  第1列就是中断号,比如网卡eth0对应的中断号为139,中断号数字越小,说明优先级越高;

  第2,3列表示在各个CPU产生的中断次数,eth0的中断总共1480个,都是CPU0处理的;

  第4列表示中断控制器类型;

  第5列表示设备名称


二、 问题来了,如何将网卡中断绑定到特定CPU呢?

         【centos6.5 内核版本2.6.32-431.el6.x86_64,cpu4核】

         首先查看一下,网卡对应的中断号cat /proc/interrupts | grep eth

       

      中断号18绑定的cpu记录在文件/proc/irq/18/smp_affinity

      

注意:smp_affinity和smp_affinity_list这两文件作用是一样的;

           list是10进制,更直观,如截图eth1绑到CPU0和CPU2,

           smp_affinity是十六进制形式,5换算成二进制0101,也表示绑定CPU0和CPU2;

          二者是关联的,修改一个,另一个也会跟着变化;

      

注:irqbalance服务作用是自动绑定CPU与中断,如果不停止,手动绑定会被覆盖。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值