免费注册 查看新帖 |

Chinaunix

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

[网络子系统] 很疑惑: 内核协议栈为何不采用多核无锁设计? [复制链接]

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-23 22:40 |只看该作者 |倒序浏览
本帖最后由 mordorwww 于 2013-02-23 22:41 编辑

处理大量报文的软件防火墙、DPI等设备,连接会话比较多
现在的系统基本都是    多核 + RPS hash分发  

在软中断接收队列采用了无锁的方式,每个CPU一个队列,像协议控制块、netfilter会话表这样的东西为何不也每个CPU一个hash链表?
这样可以不用spinlock锁,开发维护成本低,可靠性高,没有多CPU同步问题,性能也更高

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2013-02-24 10:13 |只看该作者
多核分发的位置很底层,不可能能看到太上层的信息。

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
3 [报告]
发表于 2013-02-25 09:24 |只看该作者
chishanmingshen 发表于 2013-02-24 10:13
多核分发的位置很底层,不可能能看到太上层的信息。


驱动程序在各CPU报文接收队列里已经做了分发,每CPU一个队列
走到协议栈里,数据结构又合并了。其实在协议栈里还是可以继续分开的

论坛徽章:
7
丑牛
日期:2013-10-18 14:43:21技术图书徽章
日期:2013-11-03 09:58:03辰龙
日期:2014-01-15 22:57:50午马
日期:2014-09-15 07:04:39丑牛
日期:2014-10-16 14:25:222015年亚洲杯之伊朗
日期:2015-03-16 10:24:352015亚冠之城南
日期:2015-05-31 09:52:32
4 [报告]
发表于 2013-02-25 10:11 |只看该作者
自少做到自己保护自己,底层锁不锁业务会影响很大么?有测试依据?

论坛徽章:
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
5 [报告]
发表于 2013-02-25 15:46 |只看该作者
回复 1# mordorwww
这个想法确实比较挑战目前的认识观念。
如果采用无锁设计的话,按原理说的话,无非就是空间换时间,但到底有多大的影响,可能需要好好评估一下。

   

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-13 06:20:00数据库技术版块每日发帖之星
日期:2016-06-15 06:20:00数据库技术版块每日发帖之星
日期:2016-06-16 06:20:00数据库技术版块每日发帖之星
日期:2016-06-18 06:20:00程序设计版块每日发帖之星
日期:2016-06-27 06:20:00程序设计版块每日发帖之星
日期:2016-07-09 06:20:00IT运维版块每日发帖之星
日期:2016-07-15 06:20:00IT运维版块每日发帖之星
日期:2016-07-27 06:20:00程序设计版块每日发帖之星
日期:2016-08-18 06:20:00
6 [报告]
发表于 2013-02-25 15:51 |只看该作者
本帖最后由 mordorwww 于 2013-02-25 16:06 编辑
瀚海书香 发表于 2013-02-25 15:46
回复 1# mordorwww
这个想法确实比较挑战目前的认识观念。
如果采用无锁设计的话,按原理说的话,无非就 ...


锁多了是不是还容易死锁死机之类的
至于空间,你说的是表占用内存吧

我们多核里的一些内核软中断代码,多核做负载均衡,多核使用共享的数据结构hash表和结点内存池,数据结构多了比较容易出问题

论坛徽章:
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
7 [报告]
发表于 2013-02-25 18:58 |只看该作者
回复 6# mordorwww
锁多了是不是还容易死锁死机之类的


这个的确是的。不过尽量保证锁的使用顺序的话,一般问题不大。

   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
8 [报告]
发表于 2013-02-25 19:01 |只看该作者
各个会话直接会有联系,不能仅仅根据简单的方法去分发!
回复 3# mordorwww


   

论坛徽章:
0
9 [报告]
发表于 2013-02-25 23:38 |只看该作者
你说的这些防火墙,应该都是小厂商做的吧。就是linux上改吧改吧,然后把几个开源的东西攒在一起,就做成一款产品。

真正的防火墙厂商,都是多核无锁设计,不然性能如何上来?!

论坛徽章:
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
10 [报告]
发表于 2013-02-26 08:30 |只看该作者
回复 9# GFree_Wind
真正的防火墙厂商,都是多核无锁设计,不然性能如何上来?!

这里有几个观点不同一样:
1. 高端防火墙有很多是linux+FPGA实现的(40G小包限速)
2. 多核应该是必须的,但不一定无锁。
3. 锁对性能的确有影响,但合理的规划锁的力度,应该问题不大。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP