关于linux系统上软中断只用到一个cpu的问题[zt]-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 2018154
  • 博文数量: 220
  • 博客积分: 8531
  • 博客等级: 中将
  • 技术积分: 4976
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-18 13:33
文章分类

全部博文(220)

文章存档

2017年(1)

2015年(1)

2014年(5)

2013年(6)

2012年(6)

2011年(30)

2010年(37)

2009年(53)

2008年(41)

2007年(40)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2011-01-27 10:08:36

有些网卡的中断没有用到多个cpu,只用到一个cpu,导致那个cpu的软中断是100%,系统缓慢。

[root@web ~]# cat /proc/interrupts
cpu0       cpu1      
0:  939474003          0    io-apic-edge  timer
1:          7          2    io-apic-edge  i8042
6:          2          3    io-apic-edge  floppy
7:          0          0    io-apic-edge  parport0
8:          1          0    io-apic-edge  rtc
9:          0          0   io-apic-level  acpi
12:          0        116    io-apic-edge  i8042
15:   47539568      94428    io-apic-edge  ide1
51:    4557238      12181   io-apic-level  ioc0
59:          0          0   io-apic-level  vmci
75:  101314205          0         pci-msi  eth0
nmi:          0          0
loc:  998113903  999592029
err:          0
mis:          0


可以看到eth0只用到了cpu0,加外top中的si,和下面命令也可以查看cpu中断的使用情况。

mpstat -p all 1


解决这个问题,有两个办法:

1) 用irqbalance服务

irqbalance针对多核以及超线程采用共享缓存的系统只处理一次设备中断均衡,也即以静态方式分配各设备中断对应的cpu。在双核及单核系统中启动irqbalance,并不会影响系统资源,因为irqbalance在做完中断均衡相关判断、处理后即退出。

asianux上自带了irqbanlance,安装上就行了。

chkconfig --level 345 irqbalance on
service irqbalance start


当然这个办法不是最好的办法。irqbalance仅是一个通用方案,而不是最佳方案。

2) 修改内核参数/proc/irq/$num/smp_affinity

[root@archimedes /proc]# cat /proc/irq/75/smp_affinity
00000001


表示eth0只用到了第一个cpu,可以修改这个参数,使它使用多个cpu。

参数:

binary       hex
cpu 0    0001         1
cpu 1    0010         2
cpu 2    0100         4
cpu 3    1000         8


参数是一个10进制的值,cpu n == 2 的 n 次方。

如果用cpu0和cpu2:

binary       hex
cpu 0    0001         1
cpu 2    0100         4
-----------------------
both     0101         5


全用:

binary       hex
cpu 0    0001         1
cpu 1    0010         2
cpu 2    0100         4
cpu 3    1000         8
-----------------------
both     1111         f


修改:

echo f > /proc/irq/75/smp_affinity


需要注意的是:

有些网卡在pci-msi模式下修改这个参数不起作用,需要在内核启动时加上pci=nomsi参数。网上看主要是broadcom的网卡有这个问题。

转自:http://hi.baidu.com/farmerluo/blog/item/0a070a7bf7ba5bf90bd18736.html
阅读(2629) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图