您的位置:首页 > 理论基础 > 计算机网络

{linux程序}之网络程序的并发之路

2013-03-22 00:05 204 查看
今天在群里和一群友聊了下,他指点下我在linux系统网络编程中并发:

多线程与多线程的创建来解决并发,但是linux中的资源有限;

之后采用 select或epoll 来解决;

但是以上的这两个都是书上的基础东东,要新东西了!

kqueue

epoll

C10K C10K 的字面意思是10000并发请求,

C500K

http://blog.nosqlfan.com/html/2994.html

.......

http://www.chensj.cn/article/c500k/

还在谈 C10K 的问题?这个已经过时了,现在大家已经开始说 C500K

国外的 Urban
Airship 公司的工程师在其官方网志上发文章介绍他们在产品环境中做到 50 万并发客户端,Java + Pure NIO 的实现,最近又有文章介绍针对 Linux Kernel 调优的经验:Linux
Kernel Tuning for C500k 。并且指出了"单个 IP 最大并发数量上限为64K" 只是一个误解。

硬件环境?操作系统为 Ubuntu(Lucid),租用 Amazon 的 EC2 ,使用 EC2 Large instances,64 位操作系统,每个 7.5 GB 内存。

当然,Urban Airship 是做手机消息 Push 服务的(Android Push 架构),所以,如果你也要做到这样的并发,还要看你的应用场景是否合适。去年了解到曾在新浪、腾讯任职的杨建已经做到超过
20 万的HTTP 并发(现在可能已经突破这个限制了),非常的惊人。我非常想知道现在各个公司在这方面的实践数据。

另外参考:A
Million-user Comet Application with Mochiweb

更新:杨建同学发来消息,去年已经单击突破 46.5万 Connections, 两块网卡, 1.5G 输出。10万请求处理每秒,每个响应 2k 左右。据说当时遇到一个坎一直没能过 50 万,不过这个坎三个月前已经过了,现在过 60 应该没悬念,四核双 CPU 机器。据杨建说,"按现在
4 Core * 4CPU 的机器,我觉得可以冲刺 80~100万,前提需要4块网卡(千兆)"。可见,把事情做到极致是没有极限的。

本文转载自:http://www.dbanotes.net/arch/c10k_c500k.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: