版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一种多服务器集成的负载均衡算法
0技术中负载均衡的算法随着互联网的快速发展,互联网用户每天都在增加,网络上的服务器变得越来越不完整。组建小组是应对这一趋势的重要手段。但如何使整合后的服务器集群实现负载均衡呢?在这方面,Linux内核中已经存在多种调度算法。,如:轮询调度算法、加权轮询调度算法、最小连接调度算法、加权最小连接调度算法。但是这些调度算法仍然存在缺陷,采用这些算法的集群在运行过程中会出现服务器负载不平衡的现象。因此,有必要对这些算法加以改进,以更好地实现服务器的负载平衡,使集群的效能得到更加充分的发挥。1常见的负载补偿算法1.1细粒度调度算法轮询调度算法将用户的连接请求均匀、顺次地转发给各台处理服务器。该算法简单清晰,以连接为调度单位,是一种细粒度的调度算法。在服务器性能相似,并且所请求任务不是很重的时候,该算法对服务器负载的均衡效果较好。但如果服务器的性能相差较大,该算法容易导致服务器的负载不平衡。1.2节点连接请求分配不合理加权轮询调度算法考虑到了服务器处理能力的不同,引入了服务器权重的概念。权重值的大小代表服务器处理能力的强弱,权重值越大则代表服务器处理能力越强。在客户连接请求分配中,高权重值的服务器会得到比低权重值的服务器更多的连接请求。这在一定程度上可以缓解由于服务器处理能力不同对调度算法平衡效果造成的不利影响。但由于不同的连接请求在服务器上的运行时间各不相同,导致在各台服务器上积累下来的连接数量并不相同,这也会导致服务器负载的不平衡。所以加权轮询调度算法在负载较轻的集群系统中表现较好,但如果运用在负载较重的集群上或偶尔计算量较大的连接请求被分配到同一台服务器上,集群同样会出现负载不平衡的现象。1.3负载均衡器技术最小连接调度算法考虑到服务器的实时负载状况,负载均衡器将新来的用户连接请求总是分给当前已有连接数量最少的服务器。但如果服务器性能差别较大,该算法会造成服务器负载的不均衡。1.4服务器剩余处理能力加权最小连接调度算法在集群的实际使用中是最常用的负载调度算法。与加权轮询调度算法类似,该算法引入了服务器权重,以权重值的大小来代表服务器的剩余处理能力的强弱,权重值越大则服务器剩余处理能力越强,也即表示该服务器的当前负载越轻。但实际上该算法让负载均衡器将新来的连接请求发给当前处理的连接数占集群整体所处理的连接数的百分比并除以自身权值后所得值最小的服务器。虽然加权最小连接调度算法考虑到了服务器实时负载这个问题,但简单地将服务器的当前连接数来代表服务器的实时负载,这显然是有问题的,因为不同的连接所占用资源,所需计算量是不同的。同样数量的连接在性能好的服务器上可能运行得很好,但在性能较差的服务器上可能会导致该服务器的崩溃。因而该算法还是不能很好地实现服务器之间的负载平衡。2动态负载均衡算法由于已有的负载均衡算法无法满足集群运行中的实际需求,本文在加权最小连接调度算法的基础上,提出一种改进的动态负载均衡算法。在该算法中,可以实时读取服务器发送过来的服务器负载信息,并由此计算出服务器当前剩余处理能力的大小以及该服务器权重值。这样,负载均衡器就可以根据该权重值来决定后续客户连接请求在各台服务器间分配的比例。2.1负载均衡器设计改进的调度算法的应用说明如图1所示。从图1中可以看出,客户通过互联网连接到某个服务器运营商。拥有集群的服务器运营商通过集群前端负载均衡器先将客户的连接引导过来,接着选出一台合适的服务器,并将用户的连接请求转发给该服务器,使客户的连接最终得到真正的处理。服务器在处理连接过程中,将处理过程中产生的结果通过负载均衡器传回给客户,这就实现了客户与服务器的交互。本改进算法的设计思路是:集群中的负载均衡器首先向服务器发出命令,要求各个服务器将自身的性能指标发送过来。一般选取影响服务器性能的4个关键指标:CPU处理速率和CPU个数的乘积、内存大小、磁盘读写速率、网络带宽。负载均衡器根据这些指标计算出对应服务器的综合性能参数。相应于性能指标,在集群的运行过程中,服务器还会定时上报对应的负载指标。这4个负载指标分别为:CPU利用率与CPU速率以及CPU个数三者的乘积、内存使用量、磁盘平均读写速率、平均网络速率等。负载均衡器根据服务器的这4个实时负载指标和性能指标动态计算出服务器的综合负载值以及服务器的权重值。另外,为了应对由于用户连接请求数量在短时间内的急剧增长,或由于用户连接运行时间较短而使服务器上活跃的连接数在短时间内快速减少等现象,本改进算法还使服务器在活跃进程增加或减少数量达到15个的时候,也向负载均衡器汇报一次负载指标,以让负载均衡器及时了解该服务器负载状况,对其权重值做出相应的调整。2.2综合功率参数和综合负载参数2.2.1集群内综合参数的确定假定集群中存在n台服务器,这n台服务器可以用集合表示为S={Si,i=1,2,…,n}。具体的计算思路如下:(1)读取服务器发送过来的性能指标;(2)对各台服务器中的各个性能指标进行统计,以得出各个性能指标中数值最大值;(3)将每个服务器的指标值与这些对应的最大值相比较得出指标的比例值。经过这3步,就得到了可以用在同一个公式中的比例指标值。最后通过加权公式计算出综合性能参数。最大指标值分别表示为:CPU处理速率和该服务器CPU个数乘积的最大值CM、最大内存容量MM、最大磁盘读写速率DM、最大网络带宽NM。具体计算如公式(1)~公式(4)所示。在上面的公式中,设第i台服务器的CPU的处理速率与其CPU个数的乘积为Ci,内存容量为Mi,磁盘读写速率为Di,网络带宽为Ni。而第i台服务器的性能指标与集群中对应指标的最大值相比所得到的比例值,分别表示如下:CPU的处理速率与CPU个数乘积的比例值为CPi,内存容量比例值为MPi,磁盘读写速率比例值为DPi,网络带宽比例值为NPi,具体计算如公式(5)~公式(8)所示。显然,Cpi、Mpi、DPi和NPi这4个比例值的取值范围在0到1之间。这些比例值大小都各自在某一方面说明了服务器的处理能力的相对强弱程度,但仅仅通过某个指标值大小说明不了服务器的综合处理性能,需要将这些参数通过某种方式整合起来综合予以考虑。可以为上述4个比例值指标分别设定一个加权系数K1、K2、K3和K4,各个加权系数的取值范围在0和1之间,各值之和为1。这4个加权系数大小是根据集群系统提供的服务并结合这些指标的重要程度来设定的,指标越重要,指标相应的加权系数就设置得越大。通过下面的转换公式(9),可得第i台服务器Si的最大处理能力,即第i台服务器的综合性能参数GPi。显然,由公式(9)得到的GPi的取值范围在0到1之间。2.2.2系统加权系数ki假定在t时刻第i台服务器CPU的整体利用率为UCi,内存的使用率为UMi,磁盘平均读写速率的使用率为UDi;网络平均带宽的使用率为UNi。利用公式(9),可以得到第i台服务器在t时刻的综合负载参数Li的计算公式(10)。显然,由公式(10)得到的Li的取值范围也在0到1之间。这样在有了服务器综合性能参数和综合负载参数后,接着就可以得到负载均衡器在分配用户连接时用到的各台服务器的权重值,具体计算如公式(11)所示。注意,在Linux内核中服务器权值的取值范围通常取在0和100之间,所以上面的公式中要乘上100。由公式(11)可知,服务器实时综合负载Li越大,服务器相应的权值Wi就越小,反之亦然。还有一个问题,就是加权系数Ki的具体取值。由于不同集群系统提供服务的不同,使得其后台服务器相应指标对应各个加权系数的设置也各不相同。比如由于FTP服务器对网络带宽的要求比较高,所以其网络带宽指标的加权系数相对较大;而对于Web服务器来说,其对数据库访问较频繁且计算量较大,则磁盘读写速率和CPU速率相应的加权系数应取较大值。本文以Web服务器为例,构建一个集群系统,Ki的取值如下:K1=0.35,K2=0.25,K3=0.2,K4=0.2。这里突出了CPU速率和内存容量的重要性,磁盘和带宽指标两者的加权系数设为相等,是因为两者具有一定的相关性。若当前指标加权系数所设置的大小无法发挥出集群系统的最大处理能力,系统管理员可以动态地对服务器的加权系数进行设定。由此可见,改进算法的这种设定方式给系统管理员提供的灵活性远远大于加权最小连接算法,因为后者只允许管理员对服务器的整体权重值进行设定。3算法的具体应用3.1服务器综合权重的计算(1)初始化两个阈值:服务器整体负载阈值H1=70%和服务器单个指标阈值H2=75%。(2)发送命令给各个服务器,要求其将各自性能指标和负载指标发送过来。(3)服务器在成功读取了性能指标和负载指标后,如果有服务器单个负载指标值超过阈值H2,则直接设置该服务器的权重为0。接着计算其他服务器的综合负载参数,并将超过阈值H1的服务器的权重设置为0。最后计算剩余服务器的权重,并将这些权重值写入Linux内核。(4)创建一个子进程。(5)在父进程中,进入一个循环。在循环中,等待读取服务器发送过来的负载指标,进程阻塞在这里,直到成功读取负载指标为止。接着计算服务器相应的权重值。计算完毕后将权重值写入内核,这就完成了一次循环。(6)在子进程中,定时(30~40s)向服务器发送要求回应命令,若服务器在规定时间内答复(10~15s),则认为该服务器处在正常运行的状态。否则认为该服务器已经过载或宕机,将该服务器排除在用户连接的分配对象之外,直到该服务器在下次有回应为止。3.2对负载均衡器的循环检查(1)创建一个子进程。在子进程中,响应负载均衡器发送过来的命令,向其发送性能指标和负载指标;或向其发送存活信号。(2)再创建另一个子进程。在第2个子进程中,循环检查当前活跃连接数的状态。当服务器中实时运行的连接数新增或减少数量达到15时,就读取一次本服务器的负载指标,并发送给负载均衡器,让负载均衡器检查其权值是否应该改变。这样就可以成功避免由于某台服务器的连接数在短时间内的激增或锐减而给整个集群系统性能带来影响。(3)在原始的父进程中,定时(15~20s)读取本服务器实时负载指标,如果指标值有一个的变化率超过5%,就将刚读取到的负载指标发送给负载均衡器。否则,为了避免给网络带宽和负载均衡器造成新的负担而不做发送动作。4加权最小连接调度算法为了检验本文提出的改进调度算法的性能,通过构建一个提供Web服务的集群,在集群上先后使用已有的加权最小连接算法和本文提出的改进算法进行比较测试。实验所用的硬件包括1台前端调度服务器、3台配置相同的后端服务器、1台后台数据库服务器和1台运行客户连接模拟软件WAS的计算机。WAS是微软公司推出的Web服务器性能测试工具软件,可以模拟用户对服务器发起连接,并对响应结果进行记录。这里分别使用该软件的两种测试方法。第1种方法是模拟用户以指定的发包数瞬时向Web服务器发送客户连接。使用这种方法可以测试集群接受的连接的总体平均响应时间。第2种是持续性测试方法,即在指定的一段时间内WAS软件模拟用户以指定的强度向Web服务器发送用户连接。本文中指定的测试时间是36秒,强度设为120。这种方法可以测试服务器在一个时间段内的负载变化状况。这两种测试方法的测试结果如图2~图4所示。采用第1种测试方法所得的结果如图2所示。从图中可以看出,当用户请求的连接总数较小时,由于改进算法本身对计算机资源的消耗抵消了它带来的优势,所以性能几乎没有什么改善。但随着用户请求连接数的增多,改进的调度算法便逐渐体现出了优势,总体平均响应时间明显地低于采用最小连接调度算法。这说明在集群总体负载较轻时,采用这两种算法均可以达到对后台服务器进行均衡负载的目的;而当集群总体负载较重时,改进的调度算法对服务器负载的均衡效果更为理想。采用第2种测试方法所得的测试结果如图3和图4所示。注意这里采用加权最小连接算法的3台服务器的权重设为0.33、0.33、0.34。从图3可以看出,采用加权最小连接算法的集群中各台服务器实时负载状况不能很好地处在平衡的状态。在集群运行6秒之后服务器S1一直处在过载状态,其他两台服务器负载交替变化,有一段时间负载还处在较低的阶段。而多次试验表明,在不同试验中出现过载现象的服务器是随机的。一旦有需要运行时间较长的几个连接请求在某台服务器上积累下来,那台服务器很容易在较长的时间内处于过载现象。而要恢复平衡的一个必要条件是积累的那几个运行时间较长的连接结束了。所以该算法的负载平衡效果不是很好。从采用改进算法的集群服务器的负载状况所得出的图4可以看出,3台服务器的负载虽然处在交替变化中,但并没有明显的负载不平衡显现,3台服务器一起较均匀地共同分担着客户的连接请求,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024至2030年细杆铅笔项目投资价值分析报告
- 学校寒假校本研修学习计划
- 2024至2030年短路虚焊治具项目投资价值分析报告
- 2024至2030年灯杆旗项目投资价值分析报告
- 2024至2030年液控比例操纵阀项目投资价值分析报告
- 2024至2030年喷塑光缆挂钩项目投资价值分析报告
- 2024至2030年中国低铁石膏粉行业投资前景及策略咨询研究报告
- 2024至2030年中国不结皮快干亮光胶版油墨行业投资前景及策略咨询研究报告
- 2024至2030年中国PVC包塑刺绳行业投资前景及策略咨询研究报告
- 2024至2030年LCD电视项目投资价值分析报告
- 基于单片机的电子跑表设计
- 第十四章 机械通气(急危重症护理学)
- 中小学班会课评价表
- 幼儿园故事课件:《胸有成竹》
- GB/T 10000-2023中国成年人人体尺寸
- PE给水管道水压试验记录表
- 数控铣床编程基础
- 常用急救药品
- 初中生心理健康教育PPT完整全套教学课件
- 鲍养殖技术介绍
- 家装工程竣工验收报告
评论
0/150
提交评论