iNoRax.de

Google 使用的技术


Google软件工程
的关键是PageRank技术和其他应用程序。其本质是进行代码编辑和思考如何最有效地利用系统资源,提高工作效率
Google的硬件工程包括:优化服务器构架,电缆的布置,冷却装置和数据中心的布局设计。其核心目标是更低的运行成本,以及能够应对日益增长的计算资源需求的能力。

Google的PageRank技术
即对全世界的网页进行一个系统的排名。注意,Rank对象是网页,不是网站。

Google数据中心
Google在全球有很多数据中心。数据中心通常装载有10000台或更多的Google自己按需要配置的计算机组成(计算机工作组);这些数量庞大的计算机之间进行自动配置,很少需要人为的干预。
每个Google数据中心计算机的硬件都是市场上常见的计算机硬件,每一个Google服务器都是一个标准的pizza box,唯一的区别是那些插头和端口都在盒子的前端。
Google服务器组是对Google 服务器进行有序地配置,通常情况下,一个标准的服务器组可以包括40至80台pizza box服务器。
一个Google数据中心的堆栈可以在72小时之内实现其上网运行的功能,而其他一般的数据中心常常需要一周甚至一个月的时间才能获得额外的在线资源。
每一个服务器数据中心的运行方式类似于“plug and play”。当更多资源接入时,Google的网络数据中心都将会知道。多数情况下,这些资源都无需人工干预,直接进入运行。
在Google,软件和硬件的交叠得到了很好的共生和发展。Google在概念上和更接近于IBM(既是一个软件公司又是硬件公司)
在Google,软件和硬件工程不可以简单的分开讨论。
Google的技术及其理念都处于计算机科学的前沿,其中有很多大革新例如大规模的分布式结构和高速的并行运算。

低廉的硬件系统和灵活的软件系统
Google使用普通的硬件来满足其较高的需求,从1996年起,24X7系统就作为它的核心规则而存在。尽管大多数网络系统的竞争者都采用IBM、赛扬、戴尔和Hewlett-Packard的计算机,并配有专门的外围设备;在操作系统方面,大多是融合了Unix和Microsoft的操作系统,还有一些Linux的开放源代码。而Google为了降低硬件系统的成本,采用了大量廉价的设备包括控制器、电缆和内存。同时,Google也在构思用灵活的软件来弥补低廉的硬件设备对系统运行效率的影响。因此低价的、普通的硬件设备和灵活的软件系统是Google文化的一个主要部分之一

逻辑体系
Googleplex可以对文件、服务器、簇和数据中心进行高效的管理和运作。Google技术的基础构架与Googleplex在很多方面都很相似,Google的不少应用程序都是在Linux系统下的超型服务器上运行的。Googleplex不仅可以处理诸如用户查询搜索等日常事务,还实现并行计算,一边将用户所需的结果在终端显示,一边进行高速的数据传输和存储。而有趣的是,Google的高效率却是基于如此低成本的普通硬件运行系统。在Linux系统下,Google允许其软件系统进行数据恢复,允许信息在服务器之间进行的线程传递,在执行任务的过程中,允许计算机获取更多的资源来加快运算进程。当需要增加处理容量或额外的数据存储时,Google引擎会自动加载所需的资源,会根据系统的兼容性,来识别、配置和使用新的资源。就是因为Google操作系统自适应的体系结构,因此它允许每个文件在不同的存储设备中备份三至六次。当某份文档不能被访问时,Googleplex就会通过访问日志找到所需文件的备份,继续程序的执行。

运算速度快
Google可以在一秒钟之内迅速将用户所需的查询结果反馈给用户。商业用户可以通过购买高性能的终端、硬盘、高级存储设备何光纤电缆来获得更高的运行和传输速度。Google用普通的pizza box服务器来组建组群,形成一个更有效的系统。这样,Google就不用借助外来服务器的处理器,通常只需在类似于家用电脑的台式机上,用含有两个类似于组群的处理机服务器就可以了。通过对Linux性能的改进和其他机器的革新,Google可以在普通的计算机设备上达到超型计算机的运算效率。
运算速度对于Google的PageRank和其他的分析程序而言是至关重要的。Google并不是将用户查询的关键字和库中的索引进行盲目的匹配,它所采用的方法更加的巧妙。先对数据进行整理,通过特定的运算规则赋予不用的权重和价值;然后用其他的算法对这些不用的价值进行处理,找到最佳的匹配结果,将信息提取出来,与此同时,Gooogle根据页面的访问点击量对这些权重及时更新,重新赋值。这些运算过程几乎都是在一秒钟之内完成的。因此,Google是一个高效的计算系统。

Google对每一份数据分散在不同的服务器上进行多次备份(分布式存储),当某个设备不工作时,主服务器会搜索其他备份的数据或程序继续执行程序或任务。这期间没有人为干预,没有时间延迟。
Google不需要新的硬件设备,当需要额外的存储或运算能力时,Google通过组群来识别和加载新的资源,让Googleplex能够继续处理其他任务,因此就节省了购买那些经过认证的昂贵处理器的开销。
Google利用开放的源代码进行革新。Google的许多技术创新都是基于对开放软件的修改,通过对超型计算机的敏锐洞察,提取新颖的革新方案。因此它不需要知道商业在线运行系统的瓶颈,也不需要为Googleplex设计完整的操作系统代码。

Google技术小结
Google为用户提供了各种有用的技术专论,例如运算规则、最优化编译器、信息恢复、人工智能、系统文件设计、数据仓储遗传算法、软件工程和设计、操作系统和分布式系统等。在这些文档中,详细地介绍了Google在改进了的Linux操作系统下是如何自动进行任务分配、避免系统文件瓶颈干扰的。
 

posted on 2007-03-06 14:51  iNoRax.de  阅读(748)  评论(0编辑  收藏  举报

导航