互联网书摘:互联网下的“大”压力


在C/S模式中计算机被分为两类:服务器(Server)和客户端(Client)。一般而言,客户端是个人计算机,而服务器是特定配置的具有更高处理能力的计算机。在 C/S模式下,客户端会处理一些工作,然后将结果提交给服务器,因此对客户端的硬件配置有一些基本要求,而且客户端上配置了大量应用软件,同时要承担软件的变动、升级等工作,所以客户端会日趋臃肿。一般而言,这种承担了大多处理任务的客户机也被称为胖客户端。

B/S模式是指基于浏览器(Browser)、Web服务器和应用服务器(Server)的计算服务模式。在B/S模式下,由服务器端负责主要的应用逻辑和业务规则实现,从而 使客户端的硬件要求大大降低,功能设计也极为简单,通过浏览器即可实现业务应用。此外,由于主要维护和安装工作都在服务器端,因此整体系统的维护成本大大降低。与C/S的胖客户端相对,这种客户端被称为瘦客户端。

由于方便、快捷,且少受终端约束,随着Web技术的日益成熟,B/S结构成了当 前互联网服务的主要方式,而C/S结构中服务器端承担的处理任务量也在逐渐提高。 这些都要求网络连接快速可靠,也要求服务器端能够处理大量并发访问。

我们知道,对于网站来说“数据量”有两层意思:一个是总量,一个是流量 (并发量)。总量会越来越大,就要求企业必须持续不停地购买存储设备来进行存储;流量更可怕,因为流量代表并发访问压力。当访问量不是以百、千来计的,是以百万、千万、亿来计算时,应用服务器必须满足每个人对信息不同的需求。这意味着,服务器端必须时刻完成大海捞针的工作一从海量数据里,找出用户关心的一小部分的信息。例如,雅虎财经在2000年时处理的股票交易信息每秒钟约为几百次, 2006年,这个数字已经远超过20万次/秒。

随着移动应用的普及,以及各种智能终端(手机、GPS、游戏机、多媒体播放器)的使用,互联网服务面对的客户越来越多,所需要提供的服务模式,也更多样化,远不止“刷新页面”和“点击链接”那么简单。客户的一个请求,可能会引致后台上百次的API请求发生。

“能力越大,责任越大”,蜘蛛侠皮特·帕克没说另一个意思,“责任越大, 你必须能力够大”。很明显,B/S模式对服务器端的计算和存储能力提出了非常高的 要求。首先就是要支持大量用户的访问需要。

现在一个网站需要满足多少用户的要求?Facebook给出的答案是超过7.5亿。虽然1995年时全世界的互联网用户还不到四千万,但现在一个网站有上千万用户已经司空见惯。据说京东商城在2011年底时注册用户已达3000万,而新浪微博在1年时间内注册用户数增长到3000万,不到2年的时间里注册用户数突破2亿大关,数量仍然保持高速增长。

海量用户意味着巨大的经济收益可能性,也意味着巨大的并发访问压力,海量 的数据存储,以及大规模的系统支持。

所谓需要处理大量并发访问是指,用户不是排队提出服务请求,而是以一种并 发的方式,向网页服务器施加压力。压力有多大? 2009年时Youtube就达到了每天10 亿次的访问量,也就是说,每秒至少有11 574次访问,每小时41 666 667次。

2010年12月1日下午,新浪微博发布了一条声明:“……今天上午10点20分,由于微博系统压力过大,导致用户不能正常访问新浪微博,持续时间较长。……新浪微博用户量以及每日的微博发布量激增,给微博系统带来了一定压力,这也是导致本次故障的诱因。随后,我们将通过多种举措来确保系统稳定,以应对不断提高的大规模数据处理需求……”,同样遭遇过类似问题的还有Twitter,南非世界杯期间这家全球最大的微博平台的服务曾数次中断,Twitter公关部门给出的解释是世界杯赛期间流量突然激增而Twitter的应对措施不够得力。

很明显,伴随着用户数量的增长,网站的后台系统开始难以承载激增的大规模 的计算和存储需求。

“大用户”带来的另一个主要问题是“大数据”。除非有意为之,网络化将是计算机这种节点的常态。与单机相比,网络加速了数据产生、传播和增长的速度,具 体表现为外在频繁地共享和交换。

在互联网出现之前,信息的总量与终端数大致呈线性关系,而在网络环境下, 信息的增长模式开始发生变化,一个节点与其他任一节点的每一次交互都会产生数据信息,线性增长就跃升至指数增长,数据增长速度呈可怕态势。IDC的一份报告认为,2011年全球被创建和被复制的数据总量为1.8ZB,这相当于每个美国人在Twitter 上每分钟发3条微博,持续26 976年;相当于2000亿部时长2个小时的高清电影,1个人7天X24小时不间断地看4700万年……

对于企业来说,这些快速增长的大数据一方面带来了存储的大压力,以Facebook 为例,Facebook将数据存储在Hadoop分布式文件系统(HDFS)上,主要靠Hive来完成数据分析,2010年,Facebook有世界上最大的Hadoop集群,存储容量超过20PB, 2011年3月份,这一数字升至30PB,大约是(美国)国会图书馆容量的3000倍。[16]另一方面则造成了信息处理的压力,以雅虎财经为例,这个世界上最大的交易所数据的整合和展示平台,最初处理的信息流量为每秒钟几百条记录,后来每秒流量超过了数十万条,然后开始呈现指数增长,并且“幂”也在涨,2N,3N,4N……

并非只有互联网企业才有大数据的压力,通信运营商和一些传统企业也都在感 受大数据的威力。一个省级电信运营商的DNS日志数据存量可能会超过100TB,并且每天还要面临新增近百亿条新数据、峰值每秒几十万条的入库速度的压力。一个省级电力公司,在长期的日常运营中可能会积累上亿的工程技术文档、图片、日常办公文档及影像、音频、视频等文件,需要统一进行管理和访问。一个平安城市的建设,视频监控系统采集到的实时视频数据的存储,在容量上往往达到数百个PB,在性能上还要满足持续的Tbps量级的读写要求。

“人们总是觉得数据、信息越多越好,这在信息匮乏的年代非常正确,在信息 丰富的今天却导致了数据超载和信息管制。”

为了吸引更多的用户,企业通过拓展服务模式,方便用户访问和使用网站服 务,而为了支撑大用户的访问需求,存储不断增长的数据资料,企业又花费重金建立了IT支撑系统。但生活就是这样,一个问题解决了,我们又不得不面对一个新问题。

雅虎在早期只有上千员工时,其中绝大部分人都集中精力在创新上,因此能快 速推出新产品,开辟新市场。后来雅虎的员工数达到上万,却有超过半数的人在维护系统运行……很明显,公司能创造新价值的部分越来越少,创新也越来越少。但是,系统维护是必要的,每一个组成都构成了系统生命的一部分,特有、重要且在不断增长,企业必须投入更多的人来精心照顾这些提供服务、支撑业务的生命组件,然后看着这些系统最终变得庞大无比。最后,企业会意识到,需要有一种新的技术来解决大系统的压力问题。

在中国的企业里,IT系统规模最大的企业应该是运营商,机房里每人平均维 护的机器数量通常只有几十台,在雅虎有几千台,谷歌则更多,而且随着技术的发展,个人维护机器的数量还会增长,更优的IT体系架构的需求会更强烈。

很明显,设备的管理已经远不能单纯靠人来进行,因此,借助机器进行自我管 理的各种方案已被各企业采纳。这些方案要求能应对数据容量的激增,满足海量数据的处理能力要求,还要能承受因服务多样性和高覆盖率而带来的压力,更要具有高可靠性和高可用性,这样,在更换硬盘时(谷歌每三年会更换一次),非技术因素断网、断电时(如果某个粗心的员工不小心踩到电源),企业仍然能提供连续、稳定、可靠的服务。

艮即,“系统由许多廉价的普通组件组成,组件失效是一种常态。系统必须时刻 监控自身状态,迅速地侦测、承受并恢复失效的组件”[‘在人的能力有限时,我们需要有一种机制,来实现机器管理机器。


(0)

相关推荐