10K 问题的解决:一个系统管理员如何管理 2000x 台服务器
2017-10-20 15:44
1426 查看
什么是 10K 问题?
在 1999 年,Dan Kegel 向网络服务器提出了一个骇人听闻的难题:是时候让网络服务器去同时应对 10000 个客户端了,你觉得呢?毕竟网络已经变得很普及了。
这就是著名的 C10K 问题。 通过改善操作系统内核和从像 Apache 那样的线程服务器迁移到像 Nginx, Node
这样的事件驱动服务器,工程师们解决了这个 C10K 问题。
但现在我们面临着一个更大的挑战,如果同时应对一千万个连接呢?要解决这个难题,需要些更变革的技术。
在数据中心,服务器管理员们并不需要面对这样的挑战,但根据来自红帽(Red Hat)的 Dave Neary 在最近在 FLOSS
Weekly 节目中所说,我们已经跨过了单个系统管理员管理过万台服务器的壁垒。
我们应该忽略这个里程碑事件吗?
绝对不是。这样 200x-2000x 的增长是一个了不起的成就。Dave 回忆说,在九十年代,一个管理员只能管理四五台微软的服务器,一个 Linux 的系统管理员也只能管理 50 到 60 台的服务器。现在,公司们已经开始用单个系统管理员管理超过 10,000 台的服务器了,这个巨大的改变深刻影响了两样事情:1)IaaS,把数据中心改成弹性的可编程的资源,把操作从基础设施中分离;2)开发操作革命,它强调工具、文化、自动化、度量、资源共享和基础设施的编码;
那么需要怎样才可以令一个系统管理员就可以管理一千万台服务器呢?
谁会知道?当然是谷歌公司了。James Hamilon说,计算服务器的数量是困难的,微软说,他们有一百万台服务器,然后,谷歌的服务器预计会达到一千万台,所以我们离单个系统管理员管理千万台服务器的日子还有些远;
但是,当这种情况发生时,下面所列就是这些系统的基础:
把数据中心当成单独一台计算机那样对待
然后,在数据中心内部,在计算机群上部署可复用的多维度多重作业,以便提高机器利用率和节约金钱
但这仅仅是一个数据中心,这并不是把你从 十 带到 百万 台服务器。对于千万台的服务器,你必须利用好这些数据中心,所以,你要建一个 Spanner 那样的可以管理百万台机器、几百个数据中心和数万亿个数据项的系统;
当然,你还需要建造一个巨型网络系统,把这些数据中心连接在一起;
最后,当你真的面临一个系统管理员管理千万台的服务器,你很可能需要付出巨大的精力去做深入的挖掘,使得之前的工作变得有意义。
在高层面来说,单个服务器同时应对千万个连接和单个系统管理员同时管理千万台机器是一样的:可扩展性就是一切。
但在低层面,他们是完全不一样的。处理千万个连接是关于扁平化处理数据,减少层面,单独自己的事情;而管理千万台服务器是关于把智能灌输到更加智慧的层面;这就很像人类身体内部万亿个个体通过自己的小系统共同协作,然后被平衡化和去中心化的大脑所处理。
相关文章推荐
- 如何解决win7系统访问虚拟机LINUX系统的smb服务器问题
- 一个NFS缓存管理包的bug导致文件系统满的问题和解决方法
- 如何快速解决IT系统中的疑难故障问题
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 解决一个系统启动过慢问题(软件服务启动错误影响)
- QQ群管理员无法进行成员管理问题的解决 推荐
- 解决访问优盘(MP3)出现 "本次操作由于受计算机的限制而被取消,请与你的系统管理员联系" 的问题
- 如何快速解决IT系统中的疑难故障问题
- 一个如何终止系统进程的问题
- IBM AIX V5.3 系统管理(Test 222)认证指南系列,第 5 部分:问题的确定和解决(上)
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 瞎折腾引出的一个windows系统管理问题
- 如何解决ASP.NET程序安装到繁体系统上的乱码问题
- 如何解决weblogic时间与系统时间相差8个小时的问题!
- 如何解决 vxWorks 系统中存放映像的空不够用的问题
- 设计一个图书借阅管理系统需要如何分析
- 教学管理系统-待解决的问题
- 开发一套系统的目的不是要来『让程式设计师写程式』,开发一套系统的目的是要来『解决一个问题』(转)
- 如何解决ADO.NET访问Access数据库出现"操作必须使用一个可更新的查询"的问题
- 完成了一个问题的解决 AJAX加入到分子项目的系统中