一种动态网络负载平衡集群的实践方法
2007-04-19 10:50:10 来源:WEB开发网4.1 加权轮询调度
加权轮询调度(Weighted Round-Robin Scheduling)算法用相应的权值表示结点的处理性能。该算法根据权值的高低顺序并按照轮询的方式将任务请求分配到各结点。权值高的结点比权值低的结点处理更多的任务请求,相同权值的结点处理相同份额的请求。加权轮询的基本原理可描述为:
假设某集群内有一组结点N = {N0, N1, …, Nn-1},W(Ni)表示结点Ni的权值,
一个指示变量i表示上一次选择的服务器,T(Ni)表示结点Ni当前所分配的任务量。
∑T(Ni) 表示当前同步周期需要处理的任务总量。
∑W(Ni) 表示结点的权值总和。
则: W(Ni)/ ∑W(Ni)= T(Ni)/ ∑T(Ni)
表示任务的分配是按照各个结点权值占权值总数的比例来进行分配。
4.2 权值计算
当集群的结点初次投入系统中使用时,系统管理员根据结点的硬件配置情况对每个结点都设定一个初始权值DW(Ni)(通常根据结点的硬件配置来定义,硬件配置越高的结点默认值越高),在负载均衡器上也先使用这个权值。然后,随着结点负载的变化,均衡器对权值进行调整。
动态权值是由结点运行时各方面的参数计算出来的。我们在实验中选取了最重要几项,包括:CPU资源,内存资源,当前进程数,响应时间等信息作为计算公式的因子。结合每个结点当前的权值,可以计算出新的权值的大小。动态权值目的是要正确反映结点负载的状况,以预测结点将来可能的负载变化。对于不同类型的系统应用,各个参数的重要程度也有所不同。典型的Web应用环境下,可用内存资源和响应时间就非常重要;如果用户以长的数据库事务为主,则CPU使用率和可用内存就相对重要一些。为了方便在系统运行过程中针对不同的应用对各个参数的比例进行适当调整,我们为每一个参数设定一个常量系数 Ri ,用来来表示各个负载参数的重要程度,其中Σ Ri = 1。因此,任何一个结点Ni的权值公式就可以描述为:
更多精彩
赞助商链接