免费注册 查看新帖 |

Chinaunix

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

[算法] 超高性能网络编程, Asynchronous network I/O [复制链接]

论坛徽章:
0
101 [报告]
发表于 2008-09-13 12:04 |只看该作者
原帖由 fm971 于 2008-7-17 11:03 发表

为什么是超高性能?
因为常见资料太过普通, 没有讨论到核心问题.


本贴目的:
讨论Linux下的高性能网络编程.
热烈欢迎参加讨论, 或提供关键的技术参考资料. 最新的资料确实不好找.


项目背景:
流媒 ...



我谨慎怀疑这个AIO的效率问题, 估计只是用了一个独立线程循环发送罢了...

论坛徽章:
0
102 [报告]
发表于 2008-10-05 21:21 |只看该作者
mark

论坛徽章:
0
103 [报告]
发表于 2008-10-06 11:08 |只看该作者
原帖由 fm971 于 2008-7-21 11:07 发表



你说的没错. 硬件版是有很多优势.  但是要用NP/ASIC架构我不知道要多少成本!

他们的8Gbps也只是理论值.  如果用PC架构的高端服务器, IO能力还是不同的.


真正的服务器和PC架构的还是不同,性能要好多

论坛徽章:
0
104 [报告]
发表于 2009-11-12 13:36 |只看该作者
几点意见:
1>网卡的IO如何提高,我们epoll下使用多块网卡的情况下(也是做媒体转发),测试网络的利用不成线形增长,没有完全解决,感觉应该内核方面了解多的人可能有新的方法
2>实时性问题,视频超过500ms的情况下,已经意义不大了,如何有更小的时延,和http请求要求的时延要求不一样,使用udp的话丢包的多少也会影响服务质量

多大的并发量觉得讨论的意义不大,我觉得应该是这样的定义:
1>同时在线多少,比如:tcp的话就是连接数
2>一个用户发出请求到接受的容忍程度,比如:300ms
3>1秒钟能处理多少在2>条件下的在线用户的请求

大多数说的在线数都比较笼统,首先定义了你的服务质量和统计模型才能讨论,如果你定义的服务质量没有一个人能接受,那么你得出的数字没有什么意义。

实时性方面,linux还传统的vxworks还是有差距的,不过现在正在改变。

另外稳定性和可扩展性也是一个指标,不能单纯从程序角度来考虑,可能应用的复杂度不一样,一人考虑扩展性多,一人考虑的少,性能上肯定有差距。

[ 本帖最后由 everlasting_188 于 2009-11-12 13:38 编辑 ]

论坛徽章:
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
105 [报告]
发表于 2015-08-01 20:36 |只看该作者
本帖最后由 yulihua49 于 2015-08-01 20:40 编辑
yunhappy 发表于 2008-07-17 17:09
很是想知道 怎么控制epoll的超时.           

有连接进来后, 这个 连接什么也不干, 怎么控制这个连接的超 ...

到现在为止,epoll无法控制个别连接的超时。
我们为每一个连接建立context。用另外的线程监控这些context的超时。发现有超时的,就将其从epoll里删除,并以超时状态调用其中的callback。

context里有fd,timeout,timestamp,callback等等。

论坛徽章:
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
106 [报告]
发表于 2015-08-01 20:44 |只看该作者
wwwsq 发表于 2008-09-11 17:55
千兆网。

100w乘以15字节=15M字节。

TCP包头就有40字节,还有ip包头,还有链路协议包头等等,加起来至少75字节。

论坛徽章:
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
107 [报告]
发表于 2015-08-01 20:47 |只看该作者
回复 87# wwwsq
应该说单个epoll队列的极限是每秒15W请求。假定业务处理时间是0。


   

论坛徽章:
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
108 [报告]
发表于 2015-08-01 20:50 |只看该作者
Kendiv 发表于 2008-07-20 16:01
实际的说,基于Generic OS(Linux/*nix/Windows)的Network I/O都存在理论速度上限的瓶颈,因为OS自身的开销 ..实际的说,基于Generic OS(Linux/*nix/Windows)的Network I/O都存在理论速度上限的瓶颈,因为OS自身的开销(任务切换,虚拟内存转换等),总线的时延,较低的总线带宽等等都会大幅降低I/O性能,而这是软件本身无法解决的硬伤。.

现在的主要限制还是网速,软件完全能够喂饱1G网。

论坛徽章:
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
109 [报告]
发表于 2015-08-01 20:52 |只看该作者
本帖最后由 yulihua49 于 2015-08-03 19:55 编辑
blueboy83 发表于 2008-07-18 15:12
linux最新的内核有实现真正的AIO吗?

有了。libaio.a,配合eventfd+epoll。
http://blog.chinaunix.net/uid-16979052-id-3840266.html

论坛徽章:
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
110 [报告]
发表于 2015-10-27 12:53 |只看该作者
顶起来,  参考参考,

我的代码, 正在制作高性能网络库

无锁(mutex)高并发,高可靠网络架构, 抗DOS, 自修复协议栈, 奔腾双核CPU 32万 echo [复制链接]

http://bbs.chinaunix.net/forum.p ... ;page=7#pid24465782
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP