{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
多线程与多线程的创建来解决并发,但是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
相关文章推荐
- Linux下设计并发网络程序
- 【Linux】管道模拟,线程并发拷贝程序
- Linux网络编程服务器模型选择之IO复用循环并发服务器
- window QT 环境下编写网络程序(二)---简易的UDP收发程序移植到Linux环境
- Linux 网络编程——并发服务器的三种实现模型
- linux网络编程:并发服务器的模型
- 简单的Linux客户-服务器网络程序
- 我的LINUX学习之路之十二之批量网络安装不同版本Linux之基础篇
- Linux Linux程序练习十(网络编程大文件发送)
- Linux下C语言多线程,网络通信简单聊天程序
- linux网络编程之socket(十二):select函数的并发限制和 poll 函数应用举例
- Linux 树莓派上简单的网络编程程序实现
- Linux下生产者消费者问题详细分析(操作系统期中考试论文---并发程序的同步和互斥)
- linux网络编程多进程并发服务器
- Linux下两种TCP网络服务器实现方式:循环服务&并发服务
- Linux网络编程之socket:使用fork并发处理多个client的请求和对等通信P2P
- linux下网络传输测速程序
- linux网络编程之socket(二):C/S程序的一般流程和基本socket函数
- Linux网络编程之UDP Socket程序示例
- linux网络编程之socket(九):使用select函数改进客户端/服务器端程序