免费注册 查看新帖 |

Chinaunix

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

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-17 11:03 |只看该作者 |倒序浏览

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


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


项目背景:
流媒体交换服务器, 单台服务器配置4个1Gbps 网口.
要求客户连接超过1024, (单客户约512kbps),  网络满负载运行, 实时性好.

参考产品:
华为与3COM合作的 杭洲H3C公司的 MS8000媒体交换服务器, 最高并发量只达到1024路.  使用双核CPU,4个 1Gbps网口.
MS8000媒体交换服务器

H3C还开发了面向电信高端的 媒体交换机.  基本框架应该是嵌入式, 在协议栈中实现流媒体交换. 在网络性能上应该是马马虎虎.
H3C UMS9005 通用媒体交换机

网络并发能力理论上应该达到物理极限.
所以发此贴, 还望国内的网络高手不吝赐教!    H3C MS8000的网络性能也不见得就最优化.


重要资料:

[1]、 Dan Kegel - "The C10K problem"
        http://www.kegel.com/c10k.html
        主题:   Web servers 同时处理10000个客户端的技术问题,包括不同OS.

[2]、 Improving (network) I/O performance ...
http://www.xmailserver.org/linux-patches/nio-improve.html

        epoll模型原理及性能测量结论.

[3]、 Drepper's New Network Interface (proposal for Linux 2.6+)
At OLS 2006, Ulrich Drepper proposed a new high-speed asynchronous networking API. See:
his paper, "The Need for Asynchronous, Zero-Copy Network I/O"
his slides :http://people.redhat.com/drepper/newni-slides.pdf
LWN article from July 22 : http://lwn.net/Articles/192410/


[4]、Benchmarking BSD and Linux
http://bulk.fefe.de/scalability/

在BSD 和Linux系统下,一系列网络性能的测量对比。


注释:

AIO:  Asynchronous I/O;

以上的资料只到2006年底, 没找到最新的.

epoll 只是事件通知模型.  没有异步IO. 使用epoll 仍然需要用户处理缓存.
Linux 下目前的AIO实现不支持socket, 可以支持文件AIO.


关于windows IOCP:   对用户来讲是异步模型. 但是, 其实现并不是真正的异步.
真正的AIO是由kernel完成, 不需要线程切换, 应当能实现Zero-Copy.


以下是在跟贴中提供的资料,整理一下方便使用:


[1]、High-Performance Server Architecture
http://pl.atyp.us/content/tech/servers.html



[2]、 高性能网络编程,第 1 部分: 最大程度地利用您的网络资源
http://www.ibm.com/developerwork ... perform1/index.html

高性能网络编程,第 2 部分: 加快客户机和服务器的处理速度
http://www.ibm.com/developerwork ... perform2/index.html

[ 本帖最后由 fm971 于 2008-7-21 09:15 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-17 11:06 |只看该作者
热烈欢迎参加讨论, 或提供一些最新的资料.

论坛徽章:
0
3 [报告]
发表于 2008-07-17 11:09 |只看该作者
我觉得性能的提升应该是多方面的。下面有一个资料:
http://www.ibm.com/developerwork ... perform2/index.html

论坛徽章:
0
4 [报告]
发表于 2008-07-17 11:12 |只看该作者
原帖由 scutan 于 2008-7-17 11:09 发表
我觉得性能的提升应该是多方面的。下面有一个资料:
http://www.ibm.com/developerwork ... perform2/index.html


谢谢。
是有很多方而, 比如自己的缓存问题,mbuf /sk_buff。
但核心的还是通信模型的问题。如果是真正的异步模型就最理想。

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

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

项目背景:
流媒体交换服务器, 单台服务器配置4个1Gbps 网口.
要求客户连接超过1024, 网络满负载运行, 实时性好.

本贴目的:
讨论Lin ...


没看到你是要异步通信的。

[ 本帖最后由 scutan 于 2008-7-17 11:15 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-07-17 11:20 |只看该作者
原帖由 scutan 于 2008-7-17 11:12 发表


没看到.........


thanks a lot!  
有关缓存效率的一样有用. 收集一下也是给别人参考嘛!

huggahalli05.pdf (123.93 KB, 下载次数: 772)

论坛徽章:
0
7 [报告]
发表于 2008-07-17 11:24 |只看该作者
这么看来 linux 2.6 的 epoll 效率很稳定嘛

论坛徽章:
0
8 [报告]
发表于 2008-07-17 11:24 |只看该作者

论坛徽章:
0
9 [报告]
发表于 2008-07-17 11:27 |只看该作者
原帖由 yunhappy 于 2008-7-17 11:24 发表
这么看来 linux 2.6 的 epoll 效率很稳定嘛


是.
linux 2.6 几乎在所有网络操作的时候,效率都是 O(1), 不会因数客户数量上升而降低效率。

论坛徽章:
0
10 [报告]
发表于 2008-07-17 11:38 |只看该作者
原帖由 yunhappy 于 2008-7-17 11:24 发表
这么看来 linux 2.6 的 epoll 效率很稳定嘛


深有感受,要是能支持普通文件就更好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP