搜索引擎优化SEO,专业seo公司,百度、Google、Yahoo、bing优化

从铁道部网站瘫痪看网站优化构架

  最近一段时间,作为中国铁路客户服务中心的唯一网站,同时也是唯一的火车票网上售卖平台,12306网站一跃成为流量极高的热门网站之一。而因为无力支撑2012年春运前期的售票高峰压力,12306网站几近瘫痪,遭遇一片骂声。作为一个seoer,我不禁想到了网站优化的一系列问题,个人觉得,铁道部网站出现瘫痪是和其没有做好网站优化是息息相关的,如网站内部结构的构架和服务器性能的稳定性。
  一位大型集团企业的CIO(首席信息官)根据其多年的工作经验判断,此次12306网站瘫痪是系统架构规划的问题,导致不能有效支持大并发量集中访问。同时,12306在IT管理上也有问题,未能进行有效的压力测试和运行模拟。
  从网站登录的技术层面来看,12306.cn是基于IE标准制作的网站,目前仅支持IE6及以上版本的浏览器,其他非IE内核的浏览器都无法正常登录。一位CDN技术工程师告诉记者,从行业经验来看,春运期间,12306的并发量达到1GB,而一般来说,每个人一次性访问只需要花费2KB左右,有时候甚至只有几个字节。这意味着峰值时,12306网站的同时在线访问人数高达500多万。
  这位技术工程师举例道,网上足球直播的视频的并发量达到几十GB,但由于传递的都是静态的内容,视频网站服务器需要的“处理能力”只是几十MB。但是,12306网站交互的是动态信息,所有的访问请求最终都需要12306网站的服务器作出响应,1GB就需要网站服务器拥有处理1GB访问的能力。
 那么,对于铁道部网站这样的类似事故从技术层面该如何解决呢?其实像我们比较熟悉的手段如增大服务器负载量、增大缓存,减少冗余和页面静态化都是可以用上的。具体方法如下:
  一、前端性能优化技术
  1、前端负载均衡
  通过 DNS 的负载均衡器可以把用户的访问均匀地分散在多个Web服务器上。这样可以减少Web 服务器的请求负载。因为http的请求都是短作业,所以,可以通过很简单的负载均衡器来完成这一功能。
  2、减少网页大小增加带宽
  图片可以说是网页加载的致命伤,他会大大降低网业加载速度。而12306首页的需要下载的总文件大小大约在900KB左右,如果你访问过了,浏览器会帮你缓存很多,只需下载 10K 左右的文件。但是如果1百万用户同时访问,且都是第一次访问,每人下载量需要1M,如果需要在120秒内返回,那么就需要,1M*1M/120*8=66Gbps的带宽。后面随着浏览器的缓存帮助 12306 减少很多带宽占用,于是负载一下就到了后端,后端的数据处理瓶颈一下就出来。于是你会看到很多http500之类的错误。这说明服务器垮了。
  3、减少前端链接数
  我看了一下12306.cn,打开主页需要建60多个HTTP连接,车票预订页面则有70多个HTTP请求,现在的浏览器都是并发请求的。所以,只要有100万个用户,就会有 6000 万个链接,太多了。一个登录查询页面就好了。把js打成一个文件,把css也打成一个文件,把图标也打成一个文件,用css分块展示。把链接数减到最低。
  4、前端页面静态化
  静态化一些不需要经常变化的页面和数据,并gzip一下。还有一个并态的方法是把这些静态页面放在/dev/shm下,这个目录就是内存,直接从内存中把文件读出来返回,这样可以减少昂贵的磁盘I/O。
  5、优化查询
  很多人查询都是在查一样的,完全可以用反向代理合并这些并发的相同的查询。这样的技术主要用查询结果缓存来实现,第一次查询走数据库获得数据,并把数据放到缓存,后面的查询统统直接访问高速缓存。为每个查询做Hash,使用NoSQL的技术可以完成这个优化。
  6、缓存的问题
  缓存可以用来缓存动态页面,也可以用来缓存查询的数据。缓存通常有几个问题:
  1)缓存的更新。也叫缓存和数据库的同步。有这么几种方法,一是缓存time out,让缓存失效,重查,二是,由后端通知更新,一量后端发生变化,通知前端更新。前者实现起来比较简单,但实时性不高,后者实现起来比较复杂 ,但实时性高。
  2)缓存的换页。内存可能不够,所以,需要把一些不活跃的数据换出内存,这个和操作系统的内存换页和交换内存很相似。FIFO、LRU、LFU 都是比较经典的换页算法。相关内容参看Wikipeida的缓存算法。
  3)缓存的重建和持久化。缓存在内存,系统总要维护,所以,缓存就会丢失,如果缓存没了,就需要重建,如果数据量很大,缓存重建的过程会很慢,这会影响生产环境,所以,缓存的持久化也是需要考虑的。
 诸多强大的 NoSQL都很好支持了上述三大缓存的问题。
  1、数据冗余
 关于数据冗余,也就是说,把我们的数据库的数据冗余处理,也就是减少表连接这样的开销比较大的操作,但这样会牺牲数据的一致性。风险比较大。很多人把NoSQL用做数据,快是快了,因为数据冗余了,但这对数据一致性有大的风险。苏州网站优化需要根据不同的业务进行分析和处理。
  2、数据镜像
  几乎所有主流的数据库都支持镜像,也就是replication。数据库的镜像带来的好处就是可以做负载均衡。把一台数据库的负载均分到多台上,同时又保证了数据一致性。最重要的是,这样还可以有高可用性,一台废了,还有另一台在服务。
  12306的网站优化问题在技术层面上已经具备了避免此类问题发生的能力与水平,况且网上售票平台已经有了成熟的经验与模板可供借鉴。在电子商务专家看来,12306出现这样的状况太“意外”了。

发表评论:

Copyright shsem大鹰网. Some Rights Reserved.高端网站优化,google优化,百度优化,baidu优化,seo核心技术掌握团队。 Powered By www.shsem.com