WEB服务器流量超负载问题解决方法

WEB服务器流量超负载问题解决方法

  Web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。

   一、计算WEB服务器负载量的两种方法

  web应用服务器集群系统,是由一群同时运行同一个web应用的服务器组成的集群系统,在外界看来,就像是一个服务器一样。为了均衡集群服务器的负载,达到优化系统性能的目的,集群服务器将众多的访问请求,分散到系统中的不同节点进行处理。从而实现了更高的有效性和稳定性,而这也正是基于Web的企业应用所必须具备的特性。

  高可靠性可以看作为系统的一种冗余设定。对于一个特定的请求,如果所申请的服务器不能进行处理的话,那么其他的服务器能不能对之进行有效的处理呢?对于一个高效的系统,如果一个Web服务器失败的话,其他的服务器可以马上取代它的位置,对所申请的请求进行处理,而且这一过程对用户来说,要尽可能的透明,使用户察觉不到!

  稳定性决定了应用程序能否支持不断增长的用户请求数量,它是应用程序自身的一种能力。稳定性是影响系统性能的众多因素的一种有效的测量手段,包括机群系统所能支持的同时访问系统的最大用户数目以及处理一个请求所需要的时间。

  在现有众多的均衡服务器负载的方法中,广泛研究并使用的是以下两个方法:

  DNS负载平衡的方法RR-DNS(Round-Robin Domain Name System)

  负载均衡器

  以下,我们将就这两种方法进行讨论。

   二、DNS轮流排程的优势及缺点

  域名服务器(Domain Name Server)中的数据文件将主机名字映射到其IP地址。当你在浏览器中键入一个URL时(例如:www.loadbalancedsite.com),浏览器则将请求发送到DNS,要求其返回相应站点的IP地址,这被称为DNS查询。当浏览器获得该站点的IP地址后,便通过该IP地址连接到所要访问的站点,将页面展现在用户面前。

  域名服务器(DNS)通常包含一个单一的IP地址与该IP地址所映射的站点的名称的列表。在我们上面所假象的例子中,www.loadbalancedsite.com 这个站点的映射IP地址为203.24.23.3。

  为了利用DNS均衡服务器的负载,对于同一个站点来讲,在DNS服务器中同时拥有几个不同的IP地址。这几个IP地址代表集群中不同的机器,并在逻辑上映射到同一个站点名。通过我们的例子可以更好的理解这一点,www.loadbalancedsite.com将通过下面的三个IP地址发布到一个集群中的三台机器上:

  203.34.23.3

  203.34.23.4

  203.34.23.5

  在本例中,DNS服务器中包含下面的映射表:

  www.loadbalancedsite.com 203.34.23.3

  www.loadbalancedsite.com 203.34.23.4

  www.loadbalancedsite.com 203.34.23.5

  当第一个请求到达DNS服务器时,返回的是第一台机器的IP地址203.34.23.3;当第二个请求到达时,返回的是第二台机器的IP地址203.34.23.4,以此类推。当第四个请求到达时,第一台机器的IP地址将被再次返回,循环调用。

  利用上述的DNS Round Robin技术,对于某一个站点的所有请求将被平均的分配到及群中的机器上。因此,在这种技术中,集群中的所有的节点对于网络来说都是可见的。

  DNS 轮流排程的优势

  DNS Round Robin的最大的优点就是易于实现和代价低廉:

  代价低,易于建立。 为了支持轮流排程,系统管理员只需要在DNS服务器上作一些改动,而且在许多比较新的.版本的DNS服务器上已经增加了这种功能。对于Web应用来说,不需要对代码作任何的修改;事实上,Web应用本身并不会意识到负载均衡配置,即使在它面前。

  简单. 不需要网络专家来对之进行设定,或在出现问题时对之进行维护。

  DNS 轮流排程的缺点

  这种基于软件的负载均衡方法主要存在两处不足,一是不实时支持服务期间的关联,一是不具有高可靠性。

  不支持服务器间的一致性。服务器一致性是负载均衡系统所应具备的一种能力,通过它,系统可以根据会话信息是属于服务器端的,还是底层数据库级别的,继而将用户的请求导向相应的服务器。而DNS轮流排程则不具备这种智能化的特性。它是通过cookie、隐藏域、重写URL三种方法中的一种来进行相似的判断的。当用户通过上述基于文本标志的方法与服务器建立连接之后,其所有的后续访问均是连接到同一个服务器上。问题是,服务器的IP是被浏览器暂时存放在缓存中,一旦记录过期,则需要重新建立连接,那么同一个用户的请求很可能被不同的服务器进行处理,则先前的所有会话信息便会丢失。

  不支持高可靠性。设想一个具有N个节点的集群。如果其中的一个节点毁坏,那么所有的访问该节点的请求将不会有所回应,这是任何人都不愿意看到的。比较先进的路由器可以通过每隔一定的时间间隔,对节点检查,如果有毁坏的节点,则将之从列表中去除的方法,解决这个问题。但是,由于在Internet上,ISPs将众多的DNS存放在缓存中,以节省访问时间,因此,DNS的更新就会变得非常缓慢,以至于有的用户可能会访问一些已经不存在的站点,或者一些新的站点得不到访问。所以,尽管DNS轮流排程在一定程度上解决了负载均衡问题,但这种状况的改变并不是十分乐观和有效的。

  除了上面介绍的轮流排程方法外,还有三种DNS负载均衡处理分配方法,将这四种方法列出如下:

  Round robin (RRS): 将工作平均的分配到服务器 (用于实际服务主机性能一致)

  Least-connections (LCS): 向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。用于实际服务主机性能一致。)

  Weighted round robin (WRRS): 向较大容量的服务器分配较多的工作。可以根据负载信息动态的向上或向下调整。 (用于实际服务主机性能不一致时)

  Weighted least-connections (WLC): 考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)

   三:传统负载均衡器的优势及缺点

  负载均衡器通过虚拟IP地址方法,解决了轮流排程所面临的许多问题。使用了负载均衡器集群系统,在外部看来,像是具有一个IP地址的单一服务器一样,当然,这个IP地址是虚拟的,它映射了集群中的每一台机器的地址。所以,在某种程度上,负载均衡器是将整个集群的IP地址报漏给外部网络。

  当请求到达负载均衡器时,它会重写该请求的头文件,并将之指定到集群中的机器上。如果某台机器被从集群中移除了,请求不会别发往已经不存在的服务器上,因为所有的机器表面上都具有同一个IP地址,即使集群中的某个节点被移除了,该地址也不会发生变化。而且,internet上缓存的DNS条目也不再是问题了。当返回一个应答时

  ,客户端看到的只是从负载均衡器上所返回的结果。也就是说,客户端操作的对象是负载均衡器,对于其更后端的操作,对客户端来讲,是完全透明的。

  传统负载均衡器的优点

  服务器一致性. 负载均衡器读取客户端发出的每一个请求中所包含的cookies或url解释。基于所读出的这些信息,负载均衡器就可以重写报头并将请求发往集群中合适的节点上,该节点维护着相应客户端请求的会话信息。在HTTP通信中,负载均衡器可以提供服务器一致性,但并不是通过一个安全的途径(例如:HTTPS)来提供这种服务。当消息被加密后(SSL),负载均衡器就不能读出隐藏在其中的会话信息。

  通过故障恢复机制获得高可靠性. 故障恢复发生在当集群中某个节点不能处理请求,需将请求重新导向到其他节点时。主要有两种故障恢复:

  请求级故障恢复。当集群中的一个节点不能处理请求时(通常是由于down机),请求被发送到其他节点。当然,在导向到其他节点的同时,保存在原节点上的会话信息将会丢失。

  透明会话故障恢复。当一个引用失败后,负载均衡器会将之发送到集群中其他的节点上,以完成操作,这一点对用户来说是透明的。由于透明会话故障恢复需要节点具备相应的操作信息,因此为了实现该功能,集群中的所有节点必须具有公共存储区域或通用数据库,存储会话信息数据,以提供每个节点在进行单独进程会话故障恢复时所需要的操作信息。

  统计计量。既然所有的Web应用请求都必须经过负载均衡系统,那么系统就可以确定活动会话的数量,在任何实例访问中的活动会话的数目,应答的次数,高峰负载次数,以及在高峰期和低谷期的会话的数目,还有其他更多的。所有的这些统计信息都可以被很好的用来调整整个系统的性能。

  传统负载均衡器的缺点

  硬件路由的缺点在于费用、复杂性以及单点失败的。由于所有的请求均是通过一个单一的硬件负载均衡器来传递,因此,负载均衡器上的任何故障都将导致整个站点的崩溃。

  HTTPS请求的负载均衡

  正如上面所提到的,很难在那些来自HTTPS的请求上进行负载均衡和会话信息维护处理。因为,这些请求中的信息已经被加密了。负载均衡器没有能力处理这类请求。不过,这里有两种方法可以解决这一问题:

  代理网络服务器

  硬件SSL解码器

  代理服务器位于服务器集群之前,首先由它接受所有的请求并对之进行解密,然后将这些处理后的请求根据头信息重新发往相应的节点上,这种方式不需要硬件上的支持,但会增加代理服务器的额外的负担。

  硬件SSL解码器,则是在请求到达负载均衡器之前,先经由它进行解密处理。这种方式比代理服务器的处理速度要快捷一些。但代价也高,而且实现比较复杂。

;

  • WEB鏈嶅姟鍣ㄦ祦閲忚秴璐熻浇:濡備綍鍒嗘暎瑙e喅
    绛旓細闄や簡涓婇潰浠嬬粛鐨勮疆娴佹帓绋嬫柟娉曞,杩樻湁涓夌DNS璐熻浇鍧囪 澶勭悊鍒嗛厤鏂规硶,灏嗚繖鍥涚鏂规硶鍒楀嚭濡備笅: Round robin (RRS): 灏嗗伐浣滃钩鍧囩殑鍒嗛厤鍒鏈嶅姟鍣 (鐢ㄤ簬瀹為檯鏈嶅姟涓绘満鎬ц兘涓鑷) Least-connections (LCS): 鍚戣緝灏戣繛鎺ョ殑鏈嶅姟鍣ㄥ垎閰嶈緝澶氱殑宸ヤ綔(IPVS 琛ㄥ瓨鍌ㄤ簡鎵鏈夌殑娲诲姩鐨勮繛鎺ャ傜敤浜庡疄闄呮湇鍔′富鏈烘ц兘涓鑷淬) Weighted round robin (W...
  • 鏂规:鍥犵洰鍓web鏈嶅姟鍣鐨勮闂噺杩囧ぇ涓鍙版湇鍔″櫒鏃犳硶婊¤冻闇姹
    绛旓細鎽樿锛氱紦瀛榃eb鏈嶅姟鍣ㄥ姞閫熷害妯″紡锛屾帴杩戞帴杩戝鎴峰彂灞曞埌Web鏈嶅姟鍣ㄣ閮ㄧ讲楂橀熺紦瀛樻湇鍔″櫒鐨刉eb鏈嶅姟鍣ㄥ湪鍚屼竴鎴块棿鍐咃紝闄嶄綆鏈嶅姟鍣ㄨ礋杞锛屽苟鎻愰珮鍝嶅簲閫熷害鐨勯珮閫熺紦瀛樼殑楂橀熸ц兘锛岄儴缃插湪涓嶅悓鐨勫湴鏂瑰姞閫燂紝甯﹀锛岃窛绂伙紝鎻愬崌鏈嶅姟鍣ㄨ兘鍔涚殑涓変釜鏂归潰鏀瑰杽鏄渶濂界殑瑙e喅鏂规锛岃屾槸鐢卞瑙傛潯浠剁殑闄愬埗銆
  • linux鏈嶅姟鍣ㄨ礋杞杩囬珮linux鏈嶅姟鍣ㄨ礋杞
    绛旓細浣跨敤鍙嶅悜浠g悊鏈嶅姟鍣,鍙互灏嗚姹傚潎鍖杞彂缁欏鍙版湇鍔″櫒,鎴栬呯洿鎺ュ皢缂撳瓨鐨勬暟鎹繑鍥炲鎴风,杩欐牱鐨勫姞閫熸ā寮忓湪涓瀹氱▼搴︿笂鍙互鎻愬崌闈欐佺綉椤电殑璁块棶閫熷害,浠庤岃揪鍒拌礋杞藉潎琛$殑鐩殑銆備娇鐢ㄥ弽鍚戜唬鐞嗙殑濂藉鏄,鍙互灏嗚礋杞藉潎琛″拰浠g悊鏈嶅姟鍣ㄧ殑楂橀熺紦瀛樻妧鏈粨鍚堝湪涓璧,鎻愪緵鏈夌泭鐨勬ц兘銆傜劧鑰屽畠鏈韩涔熷瓨鍦ㄤ竴浜涢棶棰,棣栧厛灏辨槸蹇呴』涓烘瘡涓绉嶆湇鍔¢兘...
  • 濡備綍浼樺寲web鏈嶅姟鍣鐨勮闂熷害
    绛旓細闀胯屼箙涔嬫湇鍔″櫒閬囧埌鎬ц兘鐡堕涔熸槸鎯呯悊涔嬩腑鐨勪簨鎯咃紝瀵逛簬杩欑鎯呭喌锛鎴戜滑鍙互閫氳繃鍗囩骇鏈嶅姟鍣紙渚嬪澧炲姞纭欢璁惧鎴栫綉缁滃甫瀹斤級绛夌浉鍏抽厤缃潵婊¤冻涓嶆柇鎵╁ぇ鐨勪笟鍔¢渶姹锛岄偅涔堟湇鍔″櫒鎬ц兘鐡堕闂灏卞彲浠ュ緱鍒拌В鍐炽
  • 濡備綍閰嶇疆Web鏈嶅姟鍣瀹炵幇璐熻浇鍧囪 
    绛旓細缃戠粶鐨勮礋杞藉潎琛℃槸涓绉嶅姩鎬佸潎琛℃妧鏈,閫氳繃涓浜涘伐鍏峰疄鏃跺湴鍒嗘瀽鏁版嵁鍖,鎺屾彙缃戠粶涓殑鏁版嵁娴侀噺鐘跺喌,鎶婁换鍔″悎鐞嗗潎琛″湴鍒嗛厤鍑哄幓銆傝繖绉嶆妧鏈熀浜庣幇鏈夌綉缁滅粨鏋,鎻愪緵浜嗕竴绉嶆墿灞曟湇鍔″櫒甯﹀鍜屽鍔犳湇鍔″櫒鍚炲悙閲忕殑寤変环鏈夋晥鐨勬柟娉,鍔犲己浜嗙綉缁滄暟鎹鐞嗚兘鍔,鎻愰珮浜嗙綉缁滅殑鐏垫椿鎬у拰鍙敤鎬с備互鍥涘彴鏈嶅姟鍣ㄤ负渚嬪疄鐜拌礋杞藉潎琛:瀹夎閰嶇疆LVS1. 瀹夎鍓...
  • 濡備綍閰嶇疆Web鏈嶅姟鍣瀹炵幇璐熻浇鍧囪 
    绛旓細瀵笰pache鏈嶅姟鍣ㄨ繘琛屼簡閰嶇疆锛屼互渚夸互鏌愮鏂瑰紡鍚屾Web鏂囦欢锛坮sync/corosync鎴栭氳繃Web鏈嶅姟鍣缁存寔鏂囦欢鐗堟湰鏈鏂扮殑鍙︿竴涓夐」锛夈傞厤缃畃fSense pfSense浣跨敤璐熻浇鍧囪 鍣紝灏嗘煇浜涚被鍨嬬殑娴侀噺甯︽潵鐨勮礋杞藉垎鎽婂埌澶氬彴鏈嶅姟鍣ㄤ笂锛涘鏋滀綘鏈夊鍙版湇鍔″櫒鐢ㄤ簬鎵樼杩愯搴旂敤绋嬪簭锛岃繖寰堝ソ锛涗綘鍙互灏嗚礋杞藉垎鎽婂埌鎵鏈夋湇鍔″櫒涓婏紝鑰屼笉鏄妸璐熻浇...
  • 濡備綍澶勭悊澶ч噺鏁版嵁楂樺苟鍙戝ぇ娴侀噺骞跺彂鎿嶄綔鏂规
    绛旓細璐熻浇鍧囪 灏嗘槸澶у瀷缃戠珯瑙e喅楂樿礋鑽疯闂拰澶ч噺骞跺彂璇锋眰閲囩敤鐨勭粓鏋佽В鍐冲姙娉曘 璐熻浇鍧囪 鎶鏈彂灞曚簡澶氬勾锛屾湁寰堝涓撲笟鐨勬湇鍔℃彁渚涘晢鍜屼骇鍝佸彲浠ラ夋嫨銆傜‖浠跺洓灞備氦鎹 绗洓灞備氦鎹娇鐢ㄧ涓夊眰鍜岀鍥涘眰淇℃伅鍖呯殑鎶ュご淇℃伅锛屾牴鎹簲鐢ㄥ尯闂磋瘑鍒笟鍔℃祦锛屽皢鏁翠釜鍖洪棿娈电殑涓氬姟娴佸垎閰嶅埌鍚堥傜殑搴旂敤鏈嶅姟鍣杩涜澶勭悊銆傘绗洓灞備氦鎹㈠姛鑳藉氨璞...
  • nginx鍦ㄥ仛璐熻浇鍧囪 鏃跺浣曢厤缃
    绛旓細5銆侀厤缃枃浠堕厤缃ソ浠ュ悗锛屼娇鐢╪ginx -t鍛戒护娴嬭瘯涓涓嬮厤缃枃浠讹紝淇濊瘉閰嶇疆鏂囦欢鏄痮k鐘舵侊紝鐒跺悗鎵цnginx鍛戒护鍚姩nginx鏈嶅姟鍣ㄣ6銆佸惎鍔ㄥ悗鍦ㄦ祻瑙堝櫒涓婅緭鍏ュ墠绔web鏈嶅姟鍣鐨刬p鍦板潃192.168.1.210锛岀劧鍚庡彲浠ョ湅鍒扮涓娆℃槸node1鍝嶅簲鐨勶紝鐒跺悗鍒锋柊涓涓嬩互鍚庯紝鍙堝彉鎴愪簡node2鍝嶅簲鐨勩傚氨杩欐牱瀹炵幇浜璐熻浇鍧囪 鐨勬晥鏋溿傜敱涓や釜鏈嶅姟...
  • 鏈嶅姟鍣缁忓父宕╂簝鏄庝箞鍥炰簨?
    绛旓細瓒呭嚭浜嗘湇鍔″櫒鐨勬壙鍙楄寖鍥淬傝繖绉嶄緥瀛愭垜浠粡甯稿彲浠ョ湅鍒帮紝姣斿鍙11鏈熼棿锛屽緢澶氬叕鍙镐负浜嗗簲瀵瑰弻11鐨勯珮娴侀噺锛屽紑鍚殑绱фラ伩闄╂帾鏂藉拰澶ц妯$殑鏈嶅姟鍣ㄨ礋杞鑳藉姏銆傝繕鏈夋槬杩愭湡闂达紝12306缃戠珯鐢变簬鍙楀埌楂樺苟鍙戠殑闂锛屼篃浼氶绻佺殑鍑虹幇宕╂簝銆傜浜岋細纾佺洏绌洪棿涓嶈冻 瀵艰嚧鏈嶅姟鍣ㄦ棤娉曟甯歌繍琛岀殑鍘熷洜涔熸湁鍙兘鏄鐩樼┖闂存孩鍑哄鑷寸殑銆備紒涓氱殑缃戠粶...
  • Linux绯荤粺涓嬮厤缃瓾TTP璐熻浇鍧囪 绯荤粺浠ユ墰娴侀噺澧炲姞
    绛旓細HTTP璐熻浇鍧囪 鏄竴绉嶇綉缁瑙e喅鏂规,璐熻矗鍦ㄦ墭绠$浉鍚屽簲鐢ㄥ唴瀹圭殑鍑犲彴鏈嶅姟鍣涔嬮棿鍒嗛厤杩涘叆鐨凥TTP鎴朒TTPS娴侀噺銆傜敱浜庡湪澶氬彴鍙敤鏈嶅姟鍣ㄤ箣闂村潎琛′簡搴旂敤璇锋眰,璐熻浇鍧囪 绯荤粺灏辫兘闃叉浠讳綍搴旂敤鏈嶅姟鍣ㄥ彉鎴愬崟涓鏁呴殰鐐,鍥犺屾彁楂樹簡鏁翠綋鐨勫簲鐢ㄥ彲鐢ㄦу拰鍝嶅簲鑳藉姏銆傚畠杩樿浣犲彲浠ラ殢鐫涓嶆柇鍙樺寲鐨勫伐浣滆礋杞,杞绘澗鍦扮缉灏/鎵╁ぇ閮ㄧ讲鐨勫簲鐢ㄧ郴缁熺殑瑙勬ā,鍙渶娣...
  • 扩展阅读:国内永久免费的云服务器 ... 自己弄个服务器多少钱 ... 可以永久免费的服务器 ... 十大永久免费服务器 ... 免费的个人网站服务器 ... 真正免费网站服务器 ... 私人网站服务器免费 ... 国内免费web服务器网站 ... 亚马逊a永久免费服务器 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网