以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 读者文摘 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=10) ---- 【千万级并发实现的秘密】内核不是解决方案,而是问题所在!千万级并发实现的秘密:内核不是解决方案,而是问题所在! (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=10&id=32472) |
-- 作者:mysoap -- 发布时间:2013-5-18 11:19:53 -- 【千万级并发实现的秘密】内核不是解决方案,而是问题所在!千万级并发实现的秘密:内核不是解决方案,而是问题所在! 摘要:C10K问题让我们意识到:当并发连接达到10K时,选择不同的解决方案,笔记本性能可能会超过16核服务器。对于C10K问题,我们或绕过,或克服;然而随着并发逐渐增多,在这个后10K的时代里,你是否有想过如何去克服C10M。
既然我们已经解决了 C10K并发连接问题,应该如何提高水平支持千万级并发连接?你可能会说不可能。不,现在系统已经在用你可能不熟悉甚至激进的方式支持千万级别的并发连接。 这意味着:
最终就是要设计这样一个系统,该系统可以处理千万级别的并发连接,它在200个时钟周期内处理数据包,在14万个时钟周期内处理应用程序逻辑。由于一次主存储器访问就要花费300个时钟周期,所以这是最大限度的减少代码和缓存丢失的关键。 面向数据层的系统可以每秒处理1千万个数据包,面向控制层的系统,每秒只能处理1百万个数据包。 这似乎很极端,请记住一句老话:可扩展性是专业化的。为了做好一些事情,你不能把性能问题外包给操作系统来解决,你必须自己做。 十年前,工程师处理C10K可扩展性问题时,尽量避免服务器处理超过1万个的并发连接。通过改进操作系统内核以及用事件驱动服务器(如Nginx和Node)代替线程服务器(Apache),这个问题已经被解决。人们用十年的时间从Apache转移到可扩展服务器,在近几年,可扩展服务器的采用率增长得更快了。 Apache的问题
C10M问题——未来十年 不远的将来,服务器将要处理数百万的并发连接。IPv6协议下,每个服务器的潜在连接数都是数以百万级的,所以处理规模需要升级。
10M的并发连接挑战意味着什么:
|
-- 作者:mysoap -- 发布时间:2013-5-18 11:26:11 -- 我们所学的是Unix而不是网络编程
怎样编写规模较大的软件? 如何改变你的软件,使其规模化?许多只提升硬件性能去支撑项目扩展的经验都是错误的,我们需要知道性能的实际情况。 要达到到更高的水平,需要解决的问题如下:
实现数据包可扩展——编写自己的个性化驱动来绕过堆栈
多核的可扩展性 多核可扩展性不同于多线程可扩展性。我们都熟知这个理念:处理器的速度并没有变快,我们只是靠增加数量来达到目的。
|
-- 作者:mysoap -- 发布时间:2013-5-18 11:26:23 -- 内存的可扩展性
总结
控制层交给Linux,应用程序管理数据。应用程序与内核之间没有交互,没有线程调度,没有系统调用,没有中断,什么都没有。 原文连接:The Secret To 10 Million Concurrent Connections -The Kernel Is The Problem, Not The Solution |
-- 作者:wuhengsi -- 发布时间:2013-5-18 21:15:04 --
楼主经常洞察这方面的新闻,为我们增加了不少见闻. 顶顶。。。。回帖是美德 |