在 1999 年,Dan Kegel 向网络服务器提出了一个骇人听闻的难题:html
是时候让网络服务器去同时应对 10000 个客户端了,你以为呢?毕竟网络已经变得很普及了。sql
这就是著名的 C10K 问题。 经过改善操做系统内核和从像 Apache 那样的线程服务器迁移到像 Nginx, Node 这样的事件驱动服务器,工程师们解决了这个 C10K 问题。编程
但如今咱们面临着一个更大的挑战,若是同时应对一千万个链接呢?要解决这个难题,须要些更变革的技术。segmentfault
在数据中心,服务器管理员们并不须要面对这样的挑战,但根据来自红帽(Red Hat)的 Dave Neary 在最近在 FLOSS Weekly 节目中所说,咱们已经跨过了单个系统管理员管理过万台服务器的壁垒。服务器
绝对不是。这样 200x-2000x 的增加是一个了不得的成就。Dave 回忆说,在九十年代,一个管理员只能管理四五台微软的服务器,一个 Linux 的系统管理员也只能管理 50 到 60 台的服务器。网络
如今,公司们已经开始用单个系统管理员管理超过 10,000 台的服务器了,这个巨大的改变深入影响了两样事情:1)IaaS,把数据中心改为弹性的可编程的资源,把操做从基础设施中分离;2)开发操做革命,它强调工具、文化、自动化、度量、资源共享和基础设施的编码;nosql
谁会知道?固然是谷歌公司了。
James Hamilon说,计算服务器的数量是困难的,微软说,他们有一百万台服务器,而后,谷歌的服务器预计会达到一千万台,因此咱们离单个系统管理员管理千万台服务器的日子还有些远;工具
可是,当这种状况发生时,下面所列就是这些系统的基础:
this
在高层面来讲,单个服务器同时应对千万个链接和单个系统管理员同时管理千万台机器是同样的:可扩展性就是一切。google
但在低层面,他们是彻底不同的。处理千万个链接是关于扁平化处理数据,减小层面,单独本身的事情;而管理千万台服务器是关于把智能灌输到更加智慧的层面;这就很像人类身体内部万亿个个体经过本身的小系统共同协做,而后被平衡化和去中心化的大脑所处理。
原文:We Finally Cracked The 10K Problem - This Time For Managing Servers With 2000x Servers Managed Per Sysadmin
翻译:SegmentFault