免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: wlmqgzm
打印 上一主题 下一主题

[C++] ASIO,无锁,高并发,高可靠, 统一,网络架构,抗DOS,低端4核心服务器CPU 每秒87万QPS ECHO [复制链接]

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
151 [报告]
发表于 2015-11-11 14:23 |只看该作者
本帖最后由 yulihua49 于 2015-11-11 14:24 编辑
cokeboL 发表于 2015-11-10 18:09
我之前写,刚开始为了省事用stl ,后面全干掉用纯c搞了

我也是。把一个项目的STL搞掉了,用纯C。原因是,那个玩意儿太慢,功能也不全。

论坛徽章:
36
子鼠
日期:2013-08-28 22:23:29黄金圣斗士
日期:2015-12-01 11:37:51程序设计版块每日发帖之星
日期:2015-12-14 06:20:00CU十四周年纪念徽章
日期:2015-12-22 16:50:40IT运维版块每日发帖之星
日期:2016-01-25 06:20:0015-16赛季CBA联赛之深圳
日期:2016-01-27 10:31:172016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之福建
日期:2016-04-07 11:25:2215-16赛季CBA联赛之青岛
日期:2016-04-29 18:02:5915-16赛季CBA联赛之北控
日期:2016-06-20 17:38:50技术图书徽章
日期:2016-07-19 13:54:03程序设计版块每日发帖之星
日期:2016-08-21 06:20:00
152 [报告]
发表于 2015-11-11 14:44 |只看该作者
回复 149# yulihua49


    恩恩,数据结构还是定制的好

论坛徽章:
9
程序设计版块每日发帖之星
日期:2015-10-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-01 06:20:00程序设计版块每日发帖之星
日期:2015-11-02 06:20:00每日论坛发贴之星
日期:2015-11-02 06:20:00程序设计版块每日发帖之星
日期:2015-11-03 06:20:00程序设计版块每日发帖之星
日期:2015-11-04 06:20:00程序设计版块每日发帖之星
日期:2015-11-06 06:20:00数据库技术版块每周发帖之星
日期:2015-12-02 15:02:47数据库技术版块每日发帖之星
日期:2015-12-08 06:20:00
153 [报告]
发表于 2015-11-12 08:39 |只看该作者
本帖最后由 wlmqgzm 于 2015-11-12 08:52 编辑
yulihua49 发表于 2015-11-11 14:21
无锁是否是忙等?那么忙等的响应时间是多少呢?或者,你不用忙等,用什么技术等待资源呢?


底层是ASIO, socket线程主要任务:读/写/accept/connect 的调度是异步事件响应,  thread_pool用多个thread驱动IO_SERVICE+BOOST:ASIO::IO_SERVICE::WORK,  
高层代码是无锁的, 高层代码无锁之后,性能比较高,  底层是ASIO, 有锁, 但是很多时候也是尽量用lock-free技术代替, 所以,性能也不错,
所谓的忙等是不存在的, ASIO的IO_SERVICE在任务队列为空时, 会出让CPU控制权, (这块没有仔细看源代码, 应该是状态锁)
管理线程的调度是异步定时器事件响应.
主线程的调度是sleep 1秒, 然后检查是否需要退出, 循环检查.      退出则析构全部class.

双11抢货去了, 最近一周比较懈怠, 整天忙各类杂事,  

论坛徽章:
15
射手座
日期:2014-11-29 19:22:4915-16赛季CBA联赛之青岛
日期:2017-11-17 13:20:09黑曼巴
日期:2017-07-13 19:13:4715-16赛季CBA联赛之四川
日期:2017-02-07 21:08:572015年亚冠纪念徽章
日期:2015-11-06 12:31:58每日论坛发贴之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-08-04 06:20:00程序设计版块每日发帖之星
日期:2015-07-12 22:20:002015亚冠之浦和红钻
日期:2015-07-08 10:10:132015亚冠之大阪钢巴
日期:2015-06-29 11:21:122015亚冠之广州恒大
日期:2015-05-22 21:55:412015年亚洲杯之伊朗
日期:2015-04-10 16:28:25
154 [报告]
发表于 2015-11-12 19:05 |只看该作者
wlmqgzm 发表于 2015-11-12 08:39
底层是ASIO, socket线程主要任务:读/写/accept/connect 的调度是异步事件响应,  thread_pool用多个thre ...

嗯。底层是select或epoll,这个过程应该是blocked。还可以用条件锁。

论坛徽章:
26
处女座
日期:2016-04-18 14:00:4515-16赛季CBA联赛之深圳
日期:2020-06-02 10:10:5015-16赛季CBA联赛之广夏
日期:2019-07-23 16:59:452016科比退役纪念章
日期:2019-06-26 16:59:1315-16赛季CBA联赛之天津
日期:2019-05-28 14:25:1915-16赛季CBA联赛之青岛
日期:2019-05-16 10:14:082016科比退役纪念章
日期:2019-01-11 14:44:062016科比退役纪念章
日期:2018-07-18 16:17:4015-16赛季CBA联赛之上海
日期:2017-08-22 18:18:5515-16赛季CBA联赛之江苏
日期:2017-08-04 17:00:4715-16赛季CBA联赛之佛山
日期:2017-02-20 18:21:1315-16赛季CBA联赛之天津
日期:2016-12-12 10:44:23
155 [报告]
发表于 2015-11-18 17:08 |只看该作者
大神 你用C++ BOOST 实现这些 难道就不怕BOOST库里面有地雷吗? 另外我觉得就效率而言 还是自己用C实现一套比较好吧

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
156 [报告]
发表于 2015-11-18 19:56 |只看该作者
回复 153# wlmqgzm
这么高调不怕被有关部门请喝茶吗

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
157 [报告]
发表于 2015-11-18 19:57 |只看该作者
回复 153# wlmqgzm
这么高调不怕被有关部门请喝茶吗

论坛徽章:
9
程序设计版块每日发帖之星
日期:2015-10-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-01 06:20:00程序设计版块每日发帖之星
日期:2015-11-02 06:20:00每日论坛发贴之星
日期:2015-11-02 06:20:00程序设计版块每日发帖之星
日期:2015-11-03 06:20:00程序设计版块每日发帖之星
日期:2015-11-04 06:20:00程序设计版块每日发帖之星
日期:2015-11-06 06:20:00数据库技术版块每周发帖之星
日期:2015-12-02 15:02:47数据库技术版块每日发帖之星
日期:2015-12-08 06:20:00
158 [报告]
发表于 2015-11-19 09:57 |只看该作者
回复 154# evaspring

到目前为止, 只使用了Boost最成熟的库, 都是5年以上时间的库, 并且使用了最新版本
Boost库再烂, 也比大多数公司的库要稳定成熟, ,
使用Boost库以后, 开发的效率高, 另外,到目前为止, 从来没有发现Boost库有重大缺陷, 或者有导致程序错误的问题, 发现的缺陷都是在非规范编程的情况下, 才会出现的问题.(换句话说, 就是菜鸟才会遇到这些缺陷).   
我觉得Boost做得非常好, 非常稳定可靠效率高, 牛人的代码就是不一样, 比公司的库还要好,  


   

论坛徽章:
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
159 [报告]
发表于 2016-09-30 15:05 |只看该作者
Hia,顶。这个东西热门又热闹。

论坛徽章:
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
160 [报告]
发表于 2016-09-30 15:09 |只看该作者
wlmqgzm 发表于 2015-10-15 00:04
独立做了一个基于BOOST ASIO的代码中完全无锁(mutex或者atomic等类似的东西) 的高并发高可靠网络服务器架构 ...

适应数百CPU的超级服务器?


这个还要看memory带宽了
要不就NUMA, NUMA要消息通信,要同步,开销又来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP