请选择 进入手机版 | 继续访问电脑版

默认
打赏 发表评论 5
高性能网络编程经典:《The C10K problem(英文)》[附件下载]

1、前言


对于高性能即时通讯(或者说互联网编程)比较关注的开发者,应该对C10K问题(即单机1万个并发连接问题)都有所了解。“C10K”概念最早由Dan Kegel发布于个人站点,即出自其经典的《The C10K problem》一文。

截止2016年,高性能网络编程技术领域里经过众多开发者的努力,已很好地解决C10K问题,大家已经开始关注并着手解决下一个十年要面对的C10M问题(即单机1千万个并发连接问题)。

即便如此,对于即时通讯(或者说网络编程)开发者而言,研究C10K问题仍然价值巨大,因为技术的发展都是有规律和线索可循的,了解C10K问题及其解决思路,通过举一反三,或许可以为你以后面对类似问题提供更多可借鉴的思想和解决问题的实践思路。

2、相关文章


高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少
高性能网络编程(二):上一个10年,著名的C10K并发连接问题
高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了
高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索
高性能网络编程(五):一文读懂高性能网络编程中的I/O模型
高性能网络编程(六):一文读懂高性能网络编程中的线程模型

3、关于作者


111.jpg
Dan Kegel:软件工程师

目前工作在美国的洛杉矶,当前受雇于Google公司。从1978年起开始接触计算机编程,是Winetricks的作者、也是Wine 1.0的管理员,同时也是Crosstool( 一个让 gcc/glibc 编译器更易用的工具套件)的作者。发表了著名的《The C10K problem》技术文章,是Java JSR-51规范的提交者并参与编写了Java平台的NIO和文件锁,同时参与了RFC 5128标准中有关NAT 穿越(P2P打洞)技术的描述和定义。

4、C10K问题的本质


C10K问题本质上是操作系统的问题。对于Web1.0/2.0时代的操作系统而言, 传统的同步阻塞I/O模型都是一样的,处理的方式都是requests per second,并发10K和100的区别关键在于CPU。

创建的进程线程多了,数据拷贝频繁(缓存I/O、内核将数据拷贝到用户进程空间、阻塞), 进程/线程上下文切换消耗大, 导致操作系统崩溃,这就是C10K问题的本质!

可见,解决C10K问题的关键就是尽可能减少这些CPU资源消耗。

5、相关资源


《The C10K problem》英文原版地址:http://www.kegel.com/c10k.html
《The C10K problem》中文译文地址:地址1地址2

6、PDF截图


屏幕快照-2016-10-17-16.41.png

7、PDF版下载


The_C10K_problem[英文原文PDF版](52im.net).pdf (520.73 KB , 下载次数: 33 , 售价: 2 金币)

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

上一篇:钉钉——基于IM技术的新一代企业OA平台的技术挑战(视频+PPT) [附件下载]下一篇:最新收集NAT穿越(p2p打洞)免费STUN服务器列表 [附件下载]

本帖已收录至以下技术专辑

推荐方案
评论 5
不错
谢谢楼主
签名: 奋斗啊
签名: 昨晚睡太晚了,头疼,怎么救
好资料都是英文的,太苦逼了。。。。学好英文才是王道啊。
引用:wdtsz 发表于 2019-09-17 09:42
好资料都是英文的,太苦逼了。。。。学好英文才是王道啊。

搞计算机,必须英文好一点
签名: 昨晚睡太晚了,头疼,怎么救
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部