| VB 代码 | VC 代码 | ASP代码 | JSP代码 | PHP代码 | CGI代码 | FLASH代码 | 资料模板 | C 源程序 | 站长东西 | 站长教程 |

PHP技能

ASP技能
PHP技能
JSP技能
VB技能
.NET技能

本类阅览TOP10

·PHP与MySQL数据库操作函数详解
·PHP与JSP运转速度之再比较
·PHP 与 ASP 比较
·通晓PHP的十大关键
·php5装置详解
·PHP的新浪微博发信接口
·php代码:备份、康复sql数据库
·做个自己站内搜索引擎
·PHP大型vwin的架构实例剖析
·PHP数据库开发知多少

站内搜索

运用网络地址转化完结多服务器负载均衡
摘要:本文探讨了分布式网络服务器运用的负载均衡技能及负载分配的战略,并依据网络地址转化在FreeBSD上完结了负载均衡网关,运用于咱们的Internet网络服务器上,将负载分给多个服务器分管,以处理Internet服务器面临的许多并发拜访形成的CPU或I/O的高负载问题。为了到达最佳的负载均衡效果,负载操控器需求依据各个服务器的当时CPU和I/O状况来分配负载,这就需求动态监督服务器的负载,并运用优化的负载分配战略,到达平均分配负载的意图。

关键字: 负载均衡,网络地址转化,FreeBSD


1. 导言

Internet的快速增长使多媒体网络服务器面临的拜访数量快速添加,服务器需求具有供给许多并发拜访服务的才干,服务器的处理和I/O才干成为了供给服务的瓶颈。因为单台服务器的功用总是有限的,有必要选用多服务器和负载均衡技能才干满意许多并发拜访的需求。

最早的负载均衡技能是经过DNS来完结的,在DNS中为多个地址装备同一个姓名,因而查询这个姓名的客户机将得到其间一个地址,然后使得不同的客户拜访不同的服务器,到达负载均衡的意图[1]。DNS负载均衡是一种简略而有用的方法,可是它不能区别服务器的差异,也不能反映服务器的当时运转状况。

反向署理服务器能够将恳求转发给内部Web服务器,假如署理服务器能够将恳求均匀转发给多台内部服务器,就能到达负载均衡的意图[2]。反向署理方法下能运用优化的负载均衡战略,每次拜访最闲暇的内部服务器来供给服务。可是跟着并发衔接数量的添加,署理服务器自身的负载也变得十分大,最终反向署理服务器自身会成为服务的瓶颈。

支撑负载均衡的地址转化网关中能够将一个外部IP地址映射为多个内部IP地址,对每次TCP衔接恳求动态运用其间一个内部地址,到达负载均衡的意图[3]。许多硬件厂商将这种技能集成在他们的交流机中,作为他们第四层交流的一种功用来完结,一般选用随机挑选、依据服务器的衔接数量或许呼应时刻进行挑选的负载均衡战略来分配负载。但是硬件完结的负载操控器灵敏性不强,不能支撑更优化的负载均衡战略和更杂乱的运用协议。

除了这三种负载均衡方法之外,有的协议内部支撑与负载均衡相关的功用,例如HTTP协议中的重定向才干等,但它依赖于特定协议,因而运用范围有限。依据现有的这些负载均衡技能,咱们挑选了运用软件方法完结网络地址转化的负载均衡的方法,以补偿硬件负载均衡器的不灵敏,并运用优化的均衡战略来完结后端服务器负载分管的最优状况。


2. 负载均衡战略

为了将负载均匀的分配给内部的多个服务器上,就需求运用必定的负载均衡战略。传统的负载均衡战略并没有考虑到服务恳求的不同类型、后台服务器的不同才干以及随机挑选形成的负载分配不均匀等问题。为了使得负载分配十分均匀,就要运用能够正确反映各个服务器CPU及I/O状况的负载均衡战略[4]。

客户建议的服务恳求类型是多种多样的,依照对处理器、网络和I/O的资源要求,能够简略的将它们分为两个不同类别,以便运用不同的处理战略:



静态文档恳求:例如一般的文本、图象等静态多媒体数据,它们对处理器负载影响不大,形成的磁盘I/O负载与文档的巨细成正比,主要对网络I/O形成压力。


动态文档恳求:更为常见的恳求常常需求服务器预先进行处理,例如搜索数据库、紧缩解紧缩多媒体文件等,这些恳求需求相当大的处理器和磁盘I/O资源。


关于静态文档,每个服务进程占用大致相同的体系资源,因而就能够运用进程数来表明体系负载。而动态文档服务需求进行额定的处理,其占用的体系资源就超越处理静态恳求,因而需求运用一个权重来表明。这样一个最简略的服务器负载表明公式就为:

其间L为服务器的负载,Ns为静态文档服务进程数,Nd为动态文档服务进程数,而a为每个动态文档服务相关于静态文档服务的权重,能够在10到100之间进行挑选。

在这个公式中没有考虑服务器硬件的约束,当到达硬件约束的时分,因为资源严重,服务器的负载就会显着添加。例如因为服务器内存巨细的约束,一些进程就要被交流到硬盘上,使得体系负载敏捷添加。考虑了体系硬件约束,则服务器的负载能够表明为:

新添加的参数 Ll表明这个服务器一般负荷的极限,它要依据每个服务器自身的硬件才干来设置。而b表明超出正常负载时用来约束分配给服务器使命的权重,应该设置为大于Ll的数值,以表明硬件约束效果。通常在一个服务器集群中,硬件设置越差的服务器这个权重越要设置的大,以防止在一切的服务器都超负载运转时,硬件最差的服务器反而负载最高。因而b是和本服务器硬件约束Ll成反比的,则b能够设置为:

Llmax为服务器集群中最高硬件装备的服务器的Ll值。当确认了每个服务器的负载之后,中心操控负载分配的服务器就能将负载正确的分发给最闲暇的服务器,然后不会象其他的负载分配战略那样会导致负载分配不均匀的状况。


3. 完结方法及试验成果

咱们的服务器体系由运用快速以太网衔接起来的多台FreeBSD体系组成。每台后端服务器上运转一个看护进程来动态取得自己的负载状况,而运用FreeBSD完结的中心操控网关就经过这些看护进程改写各个服务器的负载,以进行正确的负载分配。

3.1支撑负载均衡的网关

在FreeBSD体系下,供给了divert接口以支撑网络地址转化才干。IP数据包经过体系内核的ipfw过滤功用被发送到divert接口中,以便外部看护进程natd能接纳原始数据包,处理之后再发回体系内核进行正常的IP分发[5]。

因而依据FreeBSD的地址转化结构,能够创立自己的网络地址转化看护进程,以支撑负载均衡功用,这样就能将FreeBSD体系作为一个支撑负载均衡的网关。因为它是软件完结的方法,很简略支撑非标准的协议及运用优化的负载均衡战略,具有很大的灵敏性。

3.2试验及剖析

为测验这种完结的可用性,咱们针对最常见的HTTP协议进行咱们的测验试验。为了区别不同的恳求品种,规划了三个不同类型的测验,以测验不同方面的功用。



CGI程序发生的动态文档:用于测验在服务器的处理才干的负载均衡状况。


小型静态文档:运用尺度较小的静态文档,用于测验频频衔接下负载均衡的状况;


大型静态文档:运用较大的文档,测验磁盘及网络I/O的负载均衡状况;


测验成果以单台服务器每秒钟完结恳求的功用为基准,显现运用多台服务器进行负载均衡时每秒种完结的恳求数与基准恳求次数的比率。



图1:负载均衡功用



从上图中的第一条曲线a是处理动态文档恳求的,此刻跟着服务器数量的添加,其功用是成倍添加的;而第二条曲线b为处理小尺度静态文档恳求的,在运用三台服务器时功用改进就不显着了;而处理大尺度静态文档恳求的第三条曲线c则简直没有发生功用改变。为了找到负载均衡体系达不到抱负状况的原因,咱们调查了服务器资源的利用率:

表1.服务器资源的利用率


处理类型
负载均衡网关
服务器1
服务器2
服务器3

a
53%
97%
95%
98%

b
76%
43%
39%
41%

c
94%
32%
31%
35%




从这个表中能够看出,当处理动态文档a时三台服务器都处于全速运转状况,负载被均匀分配,这是一种抱负的状况。当处理静态文档类型b和c时,负载尽管被均匀分配给三台服务器,但每台服务器都没有处于全速运转状况。尤其在处理大尺度文档时,负载均衡设备中的natd进程则占有了大部分处理资源。因为一切的网络流量都要经过它进行转化,因而在网络流量和并发衔接数量相当大时,natd进程的负载就添加上去了。试验中运用不同数量的后端服务器时,流经负载均衡网关的实践网络带宽为:

表2:供给大尺度文档时服务器集群的带宽


服务器数量
1台
2台
3台

网络速度(Kb/s)
10042.14
11015.10
11442.67




能够看出带宽约束在10MB/s左右,明显这是这个测验运用的负载均衡进程的带宽约束,事实上该程序运用了链表来保护网络地址转化的状况,这就大大约束了它的网络功用,经过进步硬件功用和改进算法,完全能够进一步进步其功用。


4.评论

从上面的试验中能够看出,依据网络地址转化的负载均衡器能够有用的处理服务器端的CPU和磁盘I/O负载,但是负载均衡器自身的功用受网络I/O的约束,在必定硬件条件下具有必定的带宽约束,但能够经过改进算法和进步运转负载均衡程序的硬件功用,来进步这个带宽约束。一起也能够看出,不同的服务类型对不同的服务器资源进行占用,咱们运用的负载衡量战略是运用同一个负载进行评价,这关于大多数条件是合适的,但是最好的方法是针对不同的资源,如CPU、磁盘I/O或网络I/O等,别离监督服务器负载,由中心操控器挑选最合适的服务器分发客户恳求。咱们今后的作业将从这两个方面下手,完善这个负载均衡操控器。


参考文献:


[1] E.Kata,M.Butler, and R. McGrath. A scalable HTTP server: the ncsa prototype. Computer Networks and ISDN systems. 1994. Vol 27, P155-164

[2] Ralf S.Engelschall. Load Balancing Your Web Site. Web Techniques Magazine (http://www.WebTechniques.com), May 1998. vol.3, iss.5

[3] CICSO. LocalDirector Documents. http://www.cisco.com, 1997

[4] H.Zhu. T.Yang, Q.Zheng, D.Watson, O.H.Ibarra, andT.Smith, Adaptive load sharing for clustered digital library servers. Technical Report, CS, UCSB, 1998.

[5] FreeBSD core team. natd and divert manual pages. http://www.freebsd.org. 1995



Implement a load balancing gateway by NAT


Wang, Bo

NongYe Road 70, ZhengZhou, 450002, P.R.China

wb@email.online.ha.cn


Abstract: This paper investigates load balancing techniques and strategies, and implements a load balancing gateway based NAT for our Internet servers. The Internet servers involve the high load of CPU and I/O by simultaneous access requests, the symmetrical clustered servers can distribute the server load to solve the problem. To balance the load in the best way, the gateway distributes the load according to the status of server's CPU and I/O. The gateway must monitor every server's load and apply the best scheme to delivery every request, so it can provide the high performance for Internet services.

Keywords: load balancing, NAT, FreeBSD



相关文章
  • 安全性与IIS
  • 经过勘探邮件服务器进行Email地址有用性查验
  • ASP.NET经过DSO拜访剖析服务器的权限问题
  • 黑客越来越多 怎么设定安全log服务器呢?
  • 署理服务器软件抵触导致的网络故障剖析
  • 署理服务器运用祥解
  • 服务器版Longhorn把Unix逼入死境
  • Serv-U FTP服务器LIST指令超长-l参数长途缓冲区溢出缝隙
  • 准确对时:添加Internet时刻服务器
  • Linux下的署理服务器设置
  • 组网不求人!建立简易Linux局网服务器
  • Win2000服务器轻松管
  • 插翅难逃 依据Web服务器的记载来追寻黑客
  • 插翅难逃 依据Web服务器的记载来追寻黑客
  • Web服务器安全攻略
  • 进步IIS 5.0vwin服务器的履行功率的八种方法
  • 进步IIS 5.0vwin服务器的履行功率的八种方法
  • 怎么让你的服务器支撑asp.net
  • 第一章 了解JSP服务器
  • 169proxy服务器设置大全
  • 相关软件

  • 检测OLE服务器是否支撑IConnect  
  • 相似WinGate的署理服务器源程序  
  • 多线程完结客户-服务器结构的一个比如  
  • NT服务器的App Wizard  
  • 该谈天程序包含服务器和客户端两部分  
  • 这是一个署理服务器程序它运用多线程  
  • MSDN中的HTTP服务器程序十分具有参  
  • 简略的虚拟署理服务器的源程序  
  • TelNet服务器的源程序  
  • 用TCP/IP服务器客户端通讯源代码  

  • 下载主页关于咱们广告服务联系方法常见问题隐私声明法令条款本站声明下载协助发布软件站点地图