免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4821 | 回复: 9
打印 上一主题 下一主题

[中断] 如何降低softirq [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-10 16:04 |只看该作者 |倒序浏览
5可用积分
Mem: 22656K used, 38648K free, 0K shrd, 0K buff, 11664K cached
CPU:   0% usr  26% sys   0% nice   9% idle   0% io   0% irq  63% softirq
Load average: 5.11 2.11 0.78
  PID  PPID USER     STAT   VSZ %MEM %CPU COMMAND
1795     5 admin    RW<      0   0%  79% [kl2tpd/0]


top信息如上所示,大家有没有办法让它的使用率将下来?c代码如何实现?

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
2 [报告]
发表于 2012-05-11 11:28 |只看该作者
回复 1# txgc_wm
你是认为整个系统负载太高,让整个系统负荷降下来?还是只是希望把软中断的任务分配给进程?

论坛徽章:
10
戌狗
日期:2013-10-17 09:43:0215-16赛季CBA联赛之广东
日期:2018-02-05 11:22:1215-16赛季CBA联赛之八一
日期:2016-07-04 12:26:1815-16赛季CBA联赛之青岛
日期:2016-06-08 11:15:4115-16赛季CBA联赛之辽宁
日期:2016-04-05 10:10:1415-16赛季CBA联赛之辽宁
日期:2016-03-11 11:11:48酉鸡
日期:2014-12-18 14:35:48狮子座
日期:2014-02-20 10:14:07寅虎
日期:2013-12-02 13:48:2915-16赛季CBA联赛之广夏
日期:2018-03-21 08:51:10
3 [报告]
发表于 2012-05-11 12:09 |只看该作者
回复 3# 瀚海书香

网络负载很重,这还不算高的,打througput更高。
   

论坛徽章:
0
4 [报告]
发表于 2012-05-12 00:19 |只看该作者
是正常,但cpu伤不起,内核线程占据了大量的cpu,导致了应用层线程‘饥渴’  回复 3# 瀚海书香


   

论坛徽章:
0
5 [报告]
发表于 2012-05-12 00:23 |只看该作者
希望尽快能够处理完软中断,我使用的是2.6.11内核版本,里面的opl2tp内核驱动触发了很多的软中断,在网上查了那个版本的就有这个问题。     回复 2# linuxfellow


   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
6 [报告]
发表于 2012-05-12 08:47 |只看该作者
回复 6# txgc_wm
希望尽快能够处理完软中断,我使用的是2.6.11内核版本,里面的opl2tp内核驱动触发了很多的软中断,在网上查了那个版本的就有这个问题。  

如果是这样的,那可以找个最新的版本,对比一下代码,修改一下代码,重新编译应该就可以了。
当然了,如果更换内核的代价比较低的话,直接更换成没有bug的内核也可以。

   

论坛徽章:
0
7 [报告]
发表于 2012-05-12 11:13 |只看该作者
回复 7# 瀚海书香
更换内核的代价,相当高!  
只能想想看有没有其它办法了。

   

论坛徽章:
1
拜羊年徽章
日期:2015-03-03 16:15:43
8 [报告]
发表于 2012-05-12 12:07 |只看该作者
回复 8# txgc_wm
看看有没有提高性能/解决问题的补丁?

   

论坛徽章:
0
9 [报告]
发表于 2012-05-13 08:58 |只看该作者
use the idea of interrupt collapsing. In swirq context, just return if work tiems to process is less than a threshold, or say every 1 out of 100 soft irqs. It will increase some response time, but should be fine in some cases. swirq will be run quite frequently anyway, every return from hw irq handler, every system call, etc.

also consider to use workqueue or tasklet for softirq handling:
1) tasklet of same type will only be run at one CPU, so that can help to reduce usage of CPU, but again response time can hurt a bit;
2) workqueue can block, it's a thread context not interrupt context, so it will still endup using normal sys CPU time compared to softirq CPU, and it can sleep when nothing to do. I don't expect much reponse time increase in this approach, just a bot for context switch inside kernel, only when time share expired or there is nothing to do more.

论坛徽章:
0
10 [报告]
发表于 2012-05-14 14:21 |只看该作者
或许,可以在网卡设置上下点功夫?比如你的网络环境里面数据包的特征,然后你的网卡对于coalesce, protocol offload选项的支持情况,具体操作参见ethtool的使用说明,说不定有点用。遇到过类似的问题,软中断的cpu占用率能下来一些,但是有限。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP