澳门葡京官方直营大型网站赛负荷高并发的缓解措施(转)

转载请保留出处:俊麟 Michael’s blog
(http://space.itpub.net/7311285/viewspace-97)

自身当CERNET做了拨号接入平台的搭建,而后在Yahoo&3721操过寻找引擎前端开发,又于MOP处理了大型社区猫扑大杂烩的架升级等工作,同时自己沾和开支过不少大中型网站的模块,因此当巨型网站应针对高负荷和产出的化解方案及发局部累积和更,可以同豪门一块儿探索一下。 

       
我于CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从了寻找引擎前端开发,又在MOP处理了大型社区猫扑大杂烩的架升级当
工作,同时自己点与出了不少大中型网站的模块,因此当巨型网站应本着愈负荷和出现的化解方案上起一些积聚与更,可以跟豪门齐声探究一下。

一个袖珍的网站,比如私家网站,可以动用最简单易行的html静态页面就实现了,配合局部图及美化效果,所有的页面都存于一个目下,这样的网站对网架构、性能的渴求都蛮简短,随着互联网业务的不断丰富,网站相关的技术通过这些年之升华,已经分开到非常细致之普,尤其对于大型网站以来,所使用的技能尤其涉及面非常常见,从硬件及软件、编程语言、数据库、WebServer、防火墙等各个领域都出了颇高之求,已经不是本来简单的html静态网站所能比较的。

  一个微型的网站,比如私家网站,可以利用最简便易行的html静态页面就
实现了,配合局部图纸及美化效果,所有的页面都存于一个索引下,这样的网站针对系统架构、性能的渴求都不行简短,随着互联网业务的不断丰富,网站相关的技
术经过这些年之前行,已经分开到非常仔细的整,尤其对大型网站以来,所采取的技巧进一步涉及面非常广泛,从硬件及软件、编程语言、数据库、WebServer、防火墙等各个领域都生了深高的渴求,已经休是本简单的html静态网站所能够比较的。

  大型网站,比如门户网站。在迎大气用户访问、高并发请求方面,基本的缓解方案集中在这样几单环节:使用大性能的服务器、高性能的数据库、高效率的编程语言、还有大性能的Web容器。但是除了就几乎单方面,还没法向解决大型网站面临的高负载和高起问题。

  大型网站,比如门户网站。在给大气用户访问、高并发请求方面,基本的解决方案集中在这样几只环节:使用大性能的服务器、高性能的数据库、高效率的编程语言、还有大性能的Web容器。但是除了就几乎单地方,还没法向解决大型网站面临的高负载和高起问题。

  上面提供的几乎独缓解思路在早晚水准及也象征又怪之投入,并且这样的解决思路有瓶颈,没有异常好之扩展性,下面我于没有本钱、高性能和大扩张性的角度来说说自家之组成部分涉。

  上面提供的几个缓解思路在定水准达呢象征又老之投入,并且这样的化解思路富有瓶颈,没有很好之扩展性,下面我自没有本钱、高性能和强扩张性的角度来说说自之一部分更。

 

 

一个小型的网站,比如私家网站,可以用最简单易行的html静态页面就兑现了,配合局部图片上美化效果,所有的页面都存于一个目下,这样的网站针对网架构、性能的渴求都颇粗略,随着互联网业务的不断丰富,网站相关的技能通过这些年的向上,已经分开到不可开交密切之整个,尤其对于大型网站以来,所采用的技能更加涉及面非常广阔,从硬件及软件、编程语言、数据库、WebServer、防火墙等各个领域都发生了那个高之渴求,已经不是原先简单的html静态网站所能够比较的。

1、HTML静态化
 
 其实大家还了解,效率最高、消耗最小的便是纯静态化的html页面,所以我们尽量要我们的网站及的页面使用静态页面来落实,这个极端简易的主意其实也是
最有效的章程。但是对大气情节而屡屡更新的网站,我们无能为力尽手动去挨家挨户实现,于是应运而生了俺们广阔的音信发布系统CMS,像咱常常访问的各个流派站点
的新闻频道,甚至他们的外频道,都是透过信息公布体系来治本和实现之,信息发布体系可以实现最简单易行的音录入自动生成静态页面,还能具有频道管理、权限
管理、自动抓取等力量,对于一个巨型网站以来,拥有一致模仿高效、可管制的CMS是少不了的。

  大型网站,比如门户网站。在冲大气用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用大性能的服务器、高性能的数据库、高效率的编程语言、还有大性能的Web容器。但是除此之外这几乎单方面,还没法向解决大型网站面临的高负载和赛起问题。

  除了门和消息发布项目的网站,对于交互性要求充分高的社区类型网站的话,尽可
能的静态化也是增长性的必要手段,将社区外的帖子、文章展开实时的静态化,有更新的时节重新又静态化也是大量采取的国策,像Mop的杀杂烩就是利用了立
样的国策,网易社区等也是这样。目前广大博客也都落实了静态化,我下的之Blog程序WordPress还从未静态化,所以要是当高负荷访
问,www.toplee.com一定不克承受 

  上面提供的几只缓解思路在定水准上为意味又怪之投入,并且这样的解决思路有瓶颈,没有异常好之扩展性,下面我于没有本钱、高性能及大扩张性的角度来说说自的有些经历。

  同时,html静态化也是少数缓存策略下的伎俩,对于系遭到往往利用数据库
查询但是情更新非常有点的用,可以考虑动用html静态化来促成,比如论坛受到论坛的公用设置信息,这些消息时的主流论坛都好进行后台管理而存储再累
据库中,这些信实际大量给前台程序调用,但是创新频率十分有些,可以考虑用马上有的情展开后台更新的时进行静态化,这样避免了大气之数据库访问请求。

 

  于进展html静态化的时节可利用同一栽折中的办法,就是前者采用动态实现,在早晚的政策下进行定时静态化和定时判断调用,这个会兑现多世故的操作,我付出之台球网站故人居(www.8zone.cn)就是运用了这般的措施,我透过设定有html静态化的时距离来针对动态网站内容开展缓存,达到分担大部分底下压力到静态页面及,可以采用被中小型网站的架上。故人居网站的地方:http://www.8zone.cn。顺便提一下,使用这个站长工具([http://www.gongju.com](http://www.gongju.com))可以测试网站性能速度)

5、镜像
  镜像是巨型网站经常下的增强性及多少安全性的法,镜像的艺可以解决不同网络接入商和地面带来的用户访问速度差异,比如ChinaNet和EduNet之间的差距就促使了诸多网站在教育网内搭建筑镜像站点,数据开展定时更新或者实时更新。在镜像的底细技术上面,这里不阐述太非常,有过多规范的现的解决架构和成品可选。也发生降价的经过软件实现之笔触,比如Linux上之rsync等工具。

 

6、负载均衡
  负载均衡将凡重型网站解决大负荷访问和大度出现请求采用的顶点解决办法。

2、图片服务器分离
 
 大家知道,对于Web服务器来说,不管是Apache、IIS还是任何容器,图片是太消耗资源的,于是我们发必不可少将图纸与页面进行分离,这是多大型
网站都见面利用的方针,他们还产生单独的图样服务器,甚至群高图片服务器。这样的架可以下降提供页面访问请求的服务器系统压力,并且可以保证系统不见面为
图片问题设倒。

  负载均衡技术进步了多年,有不少标准的服务提供商和制品可选取,我个人接触了一些解决措施,其中起星星点点单架构可以被大家做参考。另外有关初级的载荷均衡DNS轮循和比规范的CDN架构就未多说了。

  于应用服务器和图纸服务器上,可以拓展不同之部署优化,比如Apache在部署ContentType的时刻可以尽量少支持,尽可能少的LoadModule,保证还强的体系消耗和实践效率。

 

  我的弹子网站故人居8zone.cn也使了图片服务器架设上的分离,目前是独是搭上分别,物理及没有分别,由于无钱购置还多之服务器:),大家可以见到故人居上的图连接都是相近img.9tmd.com或者img1.9tmd.com的URL。

 

  另外,在拍卖静态页面或者图片、js等做客方面,可以设想使用lighttpd代替Apache,它提供了更轻量级和重复高效的拍卖能力。

6.1 硬件四层交换
  第四层交换使用第三重合以及季交汇信息保管之报头信息,根据使用区间识别工作流,将一切区间段的业务流分配到合适的应用服务器进行处理。 第四交汇交换功能就是象是虚IP,指向物理服务器。它传输的政工从的商谈多种多样,有HTTP、FTP、NFS、Telnet或任何协商。这些业务于大体服务器基础及,需要复杂的载量平衡算法。在IP世界,业务项目由终端TCP或UDP端口地址来控制,在第四重叠交换着之应用区间则是因为源端和终极IP地址、TCP和UDP端口共同决定。

 

  于硬件四层交换产品领域,有局部名的制品得以择,比如Alteon、F5等,这些制品十分高昂,但是物有所值,能够提供好不错之性质和怪灵巧的军事管制力量。Yahoo中国那儿看似2000尊服务器使用了三四台Alteon就搞定矣。

3、数据库集群和库表散列
  大型网站都出复杂的行使,这些以得利用数据库,那么在迎大气拜的时刻,数据库的瓶颈很快便可知显现出来,这时一贵数据库将高速无法满足使用,于是我们要利用数据库集群或者库表散列。

6.2 软件四层交换
  大家了解了硬件四层交换机的法则后,基于OSI模型来贯彻的软件四层交换也就涌出,这样的化解方案实现的法则同,不过性能稍差。但是满足个别的下压力或游刃有余之,有人说软件实现方式实际上更灵敏,处理能力完全看君安排的熟悉能力。

  于数据库集群方面,很多数据库都有好的缓解方案,Oracle、Sybase等都来酷好的方案,常用的MySQL提供的Master/Slave也是类似之方案,您使用了哪些的DB,就参照相应的化解方案来实行即可。

  软件四层交换我们得运用Linux上常用之LVS来缓解,LVS就是Linux Virtual
Server,他提供了基于心跳线heartbeat的实时灾难应本着化解方案,提高系统的鲁棒性,同时可供应了活的虚构VIP配置和保管作用,可以同时满足多种应用需求,这对于分布式的体系的话缺一不可。

  上面提到的数据库集群由于在架设、成本、扩张性方面都见面遭遇所采取DB类型的
限制,于是我们得从应用程序的角度来设想改善系统架构,库表散列是常用并且最好管用之解决方案。我们当应用程序中设置工作以及下或功能模块将数据库进行
分离,不同的模块对许不同之数据库或者表,再按一定的国策对有页面或者功能拓展双重有些的数据库散列,比如用户表,按照用户ID进行表散列,这样便会低
成本的升级系统的属性并且发生格外好的扩展性。sohu的论坛就是以了这么的架构,将论坛的用户、设置、帖子等信息进行数据库分离,然后针对帖子、用户按板
块和ID进行散列数据库与阐发,最终得以当配备文件被开展简易的配备便可知吃系统随时增加一令小本钱的数据库进来补充系统性能。

  一个卓越的施用负载均衡的方针就是是,在软件要硬件四层交换的底蕴及增加建筑squid集群,这种思路在博重型网站包括搜索引擎上为以,这样的架构低本钱、高性能还有好强之扩张性,随时为架构里面增减节点都非常容易。这样的架构我准备空了特别详细整理一下和豪门探讨。

 

总结:
  对于大型网站的话,前面提到的每个方法可能还见面受以使用及,Michael这里介绍得比浅显,具体实现过程中许多细节尚需大家慢慢熟悉和体会,有时一个很有点之squid参数或者apache参数设置,对于系特性的震慑就会杀充分,希望大家一起谈论,达到抛砖引玉之效。

4、缓存
  缓存一乐章为技术的都碰了,很多地方用到缓存。网站架构和网站开发中之缓存也是挺重大。这里先讲述最中心的个别种植缓存。高级和分布式的休息存在后面讲述。

 

  架构方面的缓存,对Apache比较熟悉的人还能够了解Apache提供了自己之mod_proxy缓存模块,也可采取外加的Squid进行缓存,这点儿种植方法都好有效之增长Apache的拜会响应能力。

2、图片服务器分离
  大家明白,对于Web服务器来说,不管是Apache、IIS还是其它容器,图片是极其消耗资源的,于是我们发出必不可少将图纸以及页面进行分离,这是大半大型网站都见面动的策略,他们还发出单独的图片服务器,甚至群玉图片服务器。这样的架可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不见面因图片问题如倒。

  网站先后开发方的缓存,Linux上提供的Memcached是常用之缓存方案,不少web编程语言都提供memcache访问接口,php、perl、c和java且来,可以以web开发被利用,可以实时或Cron的将数据、对象等情节进行缓存,策略非常灵活。一些重型社区采取了这般的架构。

  于应用服务器和图纸服务器上,可以拓展不同之配备优化,比如Apache在部署ContentType的时候可以不择手段少支持,尽可能少的LoadModule,保证还强的体系消耗及实行效率。

  另外,在应用web语言开发之上,各种语言基本还有好的缓存模块和方
法,PHP有Pear的Cache模块和eAccelerator加速和Cache模块,还要知名的Apc、XCache(国人开发之,支持!)php缓
存模块,Java就再多矣,.net不是怪熟稔,相信啊毫无疑问起。

  我之弹子网站故人居8zone.cn也以了图服务器架设上之分别,目前凡止是架设上分别,物理及没有分开,由于没有钱购买更多的服务器:),大家可观看故人居上的图片连接都是相近img.9tmd.com或者img1.9tmd.com之URL。

 

  另外,在处理静态页面或者图片、js等做客方面,可以设想采取lighttpd代替Apache,它提供了更轻量级和更速的拍卖能力。

5、镜像
 
 镜像是大型网站经常使用的增强性与数码安全性的法,镜像的技艺可缓解不同网络接入商和地区带来的用户访问速度差异,比如ChinaNet和
EduNet之间的别就促使了众网站在教育网内搭建筑镜像站点,数据开展定时更新或者实时更新。在镜像的底细技术方面,这里不阐述太要命,有好多正经的现
成的缓解架构和产品可选。也有降价的经过软件实现之思绪,比如Linux上的rsync等工具。

 

 

3、数据库集群和库表散列
  大型网站还来复杂的动,这些应用得以数据库,那么以直面大气做客的上,数据库的瓶颈很快即会显现出来,这时一华数据库将速无法满足使用,于是我们需要使用数据库集群或者库表散列。

6、负载均衡
  负载均衡将是大型网站解决大负荷访问同大量并发请求采用的终点解决办法。

  以数据库集群方面,很多数据库都生友好之解决方案,Oracle、Sybase等还起十分好的方案,常用之MySQL提供的Master/Slave也是近似的方案,您运了什么的DB,就参照相应的缓解方案来实行即可。

  负载均衡技术进步了多年,有成千上万正规的服务提供商和活可以挑选,我个人接触了有解决办法,其中有三三两两独架构可以为大家做参考。另外有关初级的负荷均衡DNS轮循和比规范的CDN架构就非多说了。

  上面提到的数据库集群由于在搭、成本、扩张性方面都见面遭受所运用DB类型的范围,于是我们要由应用程序的角度来设想改善系统架构,库表散列是常用并且最可行之解决方案。我们在应用程序中安装工作与行使或功能模块将数据库进行分离,不同的模块对许不同之数据库或者表,再依一定的政策对有页面或者功能拓展重新有些之数据库散列,比如用户表,按照用户ID进行表散列,这样虽可知低本钱的提升系统的性质并且产生不行好之扩展性。sohu的论坛就是应用了如此的架构,将论坛的用户、设置、帖子等消息进行数据库分离,然后对帖子、用户按板块与ID进行散列数据库暨发明,最终可以以布局文件中开展简要的布置便能够让系统随时加一宝小本钱的数据库进来补充系统特性。

6.1 硬件四层交换
 
 第四重叠交换使用第三重叠与季叠信息保管的报头信息,根据使用区间识别工作流,将通区间段的工作流分配到当的应用服务器进行处理。 第四重叠交换功能就是象
是虚IP,指向物理服务器。它传输的事情从的情商多种多样,有HTTP、FTP、NFS、Telnet或另协商。这些事情在大体服务器基础及,需要复
杂的载量平衡算法。在IP世界,业务类别由终端TCP或UDP端口地址来控制,在第四重合交换着的使区间则由源端和极端IP地址、TCP和UDP端口共同
决定。

 

  以硬件四层交换产品领域,有部分有名的活得以挑选,比如Alteon、F5等,这些制品十分贵,但是物有所值,能够提供好漂亮之属性和怪灵巧的军事管制能力。Yahoo中国那儿相近2000高服务器使用了三四台Alteon就整定了。

 

6.2 软件四层交换
  大家掌握了硬件四层交换机的原理后,基于OSI模型来兑现的软件四层交换也就是涌出,这样的化解方案实现的原理同,不过性能稍差。但是满足个别的下压力还是游刃有余的,有人说软件实现方式实际上还灵活,处理能力完全看君安排的耳熟能详能力。

4、缓存
  缓存一乐章为技术之且接触了,很多地方因此到缓存。网站架构和网站开中之缓存也是蛮重大。这里先讲述最中心的简单种植缓存。高级和分布式的休息存在后面讲述。

  软件四层交换我们可用Linux上常用之LVS来化解,LVS就是Linux
Virtual Server,他供了冲心跳线heartbeat的实时灾难应针对解决方案,提高系统的鲁棒性,同时可供应了灵活的杜撰VIP配置以及治本效能,可以以满足多种施用需求,这对于分布式的系来说缺一不可。

  架构方面的缓存,对Apache比较熟悉的人数还能够明白Apache提供了投机之mod_proxy缓存模块,也可采取外加的Squid进行缓存,这有限种植方法都好有效之提高Apache的看响应能力。

  一个天下无双的使用负载均衡的方针就是是,在软件或者硬件四层交换的根底及添建筑squid集群,这种思路在众多重型网站包括搜索引擎上受采用,这样的架低本钱、高性能还有特别强之扩张性,随时为架构里面增减节点都非常容易。这样的架构我准备空了特别详细整理一下跟大家探讨。

  网站先后开发方的缓存,Linux上提供的Memcached是常用之缓存方案,不少web编程语言都提供memcache访问接口,php、perl、c和java还出,可以于web开发中使,可以实时或Cron的管数量、对象等情节进行缓存,策略非常灵活。一些大型社区利用了这么的架构。

总结:
 
 对于大型网站的话,前面提到的每个方法可能还见面受以利用及,Michael这里介绍得比浅显,具体实现过程中许多细节尚需大家慢慢熟悉和体会,有
时一个不行有点之squid参数或者apache参数设置,对于系特性的震慑就会怪要命,希望大家一块儿谈论,达到抛砖引玉之效。

  另外,在采取web语言开发的时段,各种语言基本都生好的缓存模块和法,PHP有Pear的Cache模块和eAccelerator加速和Cache模块,还要知名的Apc、XCache(国人开发之,支持!)php缓存模块,Java就重新多矣,.net不是大熟稔,相信啊肯定起。

 

 

6.1 硬件四层交换
  第四层交换使用第三重合与季重合信息保管的报头信息,根据使用区间识别工作流,将全体区间段的业务流分配到适合的应用服务器进行处理。 第四重合交换功能就是象是虚IP,指向物理服务器。它传输的政工从的协商多种多样,有HTTP、FTP、NFS、Telnet或其它协商。这些业务在物理服务器基础及,需要复杂的载量平衡算法。在IP世界,业务品种由终端TCP或UDP端口地址来决定,在第四叠交换着的下区间则由于源端和终点IP地址、TCP和UDP端口共同决定。

  于硬件四层交换产品领域,有局部出名的制品得以选,比如Alteon、F5等,这些制品十分高昂,但是物有所值,能够提供好美好之性质和生灵巧的管理力量。Yahoo中国那儿仿佛2000华服务器使用了三四台Alteon就动手定矣。

6.2 软件四层交换
  大家理解了硬件四层交换机的原理后,基于OSI模型来促成之软件四层交换也不怕涌出,这样的化解方案实现的法则同,不过性能稍差。但是满足个别的下压力或游刃有余之,有人说软件实现方式实际上更灵敏,处理能力完全看君安排的耳熟能详能力。

  软件四层交换我们可动用Linux上常用的LVS来化解,LVS就是Linux Virtual
Server,他提供了因心跳线heartbeat的实时灾难应本着缓解方案,提高系统的鲁棒性,同时可供应了活的虚拟VIP配置以及管制职能,可以又满足多种采用需求,这对分布式的系统吧不可或缺。

  一个天下无双的下负载均衡的策略就是是,在软件还是硬件四层交换的根基及多建筑squid集群,这种思路在广大大型网站包括搜索引擎上于采用,这样的架低本钱、高性能还有蛮强之扩张性,随时向架构里面增减节点都非常容易。这样的架构我准备空了特别详细整理一下同豪门探讨。

总结:
  对于大型网站以来,前面提到的每个方法也许还见面被同时利用及,Michael这里介绍得较浅,具体落实过程遭到过多细节尚用大家逐渐熟悉和体会,有时一个大粗之squid参数或者apache参数设置,对于系特性的影响就是见面好充分,希望大家一起谈谈,达到抛砖引玉之效。