首页 理论教育 动态反馈负载连接调度算法设计与实现

动态反馈负载连接调度算法设计与实现

时间:2023-10-17 理论教育 版权反馈
【摘要】:基于以上理由,笔者提出动态反馈负载连接调度算法,用可动态变化的权值来反映实际的服务器负载变化,以最终决定要连接的真实服务器。(一)动态反馈负载连接调度算法动态反馈负载均衡算法考虑服务器的实时负载,不断调整服务器间处理请求的比例,从而提高整个系统的吞吐率。在动态反馈负载调度算法中,当服务器的权值为0,已建立的连接会继续得到该服务器的服务,而新的连接不会分配到该服务器。

动态反馈负载连接调度算法设计与实现

LVS内核实现的连接调度算法,大多数是静态的算法,是在给定的服务器权值的基础上实现的,在算法内部服务器的权值并不改变。即使在连接数动态算法中,用连接数来代表服务器的负载情况,也不能真正反映服务器真实的负载状况。从权值的定义上说,权值应表明各个真实服务器间的物理处理能力的差异,但在实际当中服务器的处理能力,并不是不随负载变化的常量,随着服务器负载的增加,它的处理能力应该是非线性下降的。也就是说,它的权值在实际运行过程中应该是个变化的值,而不是像以上的调度算法都把服务器的权值当作常量对待。基于以上理由,笔者提出动态反馈负载连接调度算法,用可动态变化的权值来反映实际的服务器负载变化,以最终决定要连接的真实服务器。

(一)动态反馈负载连接调度算法

动态反馈负载均衡算法考虑服务器的实时负载,不断调整服务器间处理请求的比例,从而提高整个系统的吞吐率。整个连接调度算法的实现由三个相互关联的模块组成:第一,server-mon进程运行于各个真实服务器上,主要功能是搜集各个真实服务器当前的负载信息,为查询服务器负载信息的客户提供服务;第二,client-mon运行在负载均衡器上,主要功能是循环查询各个真实服务器,即与server-mon进程通信,取得各个真实服务器的负载信息,并计算出各个真实服务器上的综合负载;第三,ip-vsdfw.c模块是在IPVS的内核实现的算法功能模块,主要功能是与client-mon进程通信取得各个真实服务器的综合负载信息,并计算出当前各个真实服务器的权值,再决定出要连接的真实服务器。

1.连接调度

当客户通过TCP连接访问网络访问时,服务所需的时间和所要消耗的计算资源是千差万别的,它依赖于很多因素。例如,它依赖于请求的服务类型、当前网络带宽的情况以及当前服务器资源利用的情况。一些负载比较重的请求需要进行计算密集的查询、数据库访问、很长响应数据流;而负载比较轻的请求往往只需要读一个HTML页面或者进行很简单的计算。请求处理时间的千差万别可能会导致服务器利用的倾斜(Skew),即服务器间的负载不平衡。例如,有一个Web页面有A、B、C和D文件,其中D是大图像文件,浏览器需要建立四个连接来读取这些文件。当多个用户通过浏览器同时访问该页面时,最极端的情况是所有D文件的请求被发到同一台服务器。所以说,有可能存在这种情况:有些服务器已经超负荷运行,而其他服务器基本是闲置的。同时,有些服务器已经忙不过来,有很长的请求队列,还不断地收到新的请求。反过来说,这会导致客户长时间的等待,觉得系统的服务质量差。

2.简单连接调度

简单连接调度可能会出现服务器倾斜。在上面的例子中,若采用轮叫调度算法,且集群中正好有四台服务器,必有一台服务器总是收到D文件的请求。这种调度策略会导致整个系统资源的低利用率,因为有些资源被用尽导致客户的长时间等待,而有些资源空闲着。(www.xing528.com)

(二)动态反馈负载均衡机制

TCP/IP流量的特征通俗地说是由许多短事务和一些长事务组成的,而长事务的工作量在整个工作中占有较高的比例。所以,我们要设计一种负载均衡算法,来避免长事务的请求总被分配到一些机器上,而尽可能将带有毛刺(Burst)的分布分割成相对较均匀的分布。

在动态反馈负载调度算法中,当服务器的权值为0,已建立的连接会继续得到该服务器的服务,而新的连接不会分配到该服务器。系统管理员可以将一台服务器的权值设置为0,使该服务器安静下来。当已有的连接都结束后,他可以将该服务器切出对其进行维护。维护工作对系统都是不可少的,如硬件升级和软件更新等,零权值使服务器安静的功能很重要。所以,在动态反馈负载均衡机制中我们要保证该功能。当服务器的权值为0时,我们不对服务器的权值进行调整。

在计算综合负载时,我们主要使用两大类负载信息:输入指标和服务器指标。输入指标是在调度器上收集到的,而服务器指标是在服务器上的各种负载信息。我们用综合负载来反映服务器当前的比较确切负载情况,对于不同的应用,会有不同的负载情况。这里我们引入各个负载信息的系数,来表示各个负载信息在综合负载中的轻重。系统管理员根据不同应用的需求,调整各个负载信息的系数。另外,系统管理员还应设置收集负载信息的时间间隔。

输入指标主要是在单位时间内服务器收到新连接数与平均连接数的比例,它是在调度器上收集到的,所以这个指标是对服务器负载情况的一个估值。在调度器上有各个服务器收到连接数的计数器,对于服务器Si,可以得到分别在时间T1和T2时的计数器值Cil和Ci2,计算出在时间间隔T2-T1内服务器Si收到的新连接数Ni=Ci2-Cil。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈