负载均衡技术综述(6)
发布时间:2021-06-05
发布时间:2021-06-05
每台服务器有两个控制阀值:过载标志(HWM)和轻载标志(LWM)。当服务器的负载大于HWM 时,需要将部分负载转移出去;当服务器的负载小于LWM 时,需要接收部分新的负载。负载转移不是原子动作,出现冲突时,可以选择强制执行或重新选择宿主服务器。
3) 选择策略
启动服务器选择最合适转移,最能起平衡作用的任务发送给合适的目标服务器。常用的策略有抢占式任务迁移和非抢占式的负载共享两种。
4) 收益性策略
使用不平衡因子来评估系统平衡负载是否有收益。该策略的原则是转移所产生的开销应小于所产生的响应时间收益。负载代价来自三个方面:服务器之间传播的负载信息;任务转移前的选择决策过程;任务移植的通信延迟。
5) 位置策略
位置策略用来寻找合适的服务器共享负载。常用的算法有Shortest Queue、Round-Robin、Random、K-Subset 和最近邻居等。
6) 信息策略
决定收集系统中其他服务器状态信息的时机、收集的方位和收集的信息。信息策略设计越合理,每台服务器收集的信息就越准确,信息量就越大,负载均衡效果就越好。
3.2.2 动态负载平衡调度
1) 集中式调度
在集中式调度中,所有任务的调度都是由一个调度服务器,即“负载均衡器”来完成的。“负载均衡器”负责搜集系统负载信息,并决定负载平衡调度方案。集中式调度实现比较简单,很容易获得各服务器的负载信息,可以根据NodeLoadList列表进行负载快速转移,具有控制集中,调度有力等优点。但在结点数较多的大规模并行分布系统中,由于各结点与调度服务器的通讯成为瓶颈,所以调度开销比较大[12,13,14];另一方面,在客户终端任务到达很密集的情况下,任务在“负载均衡器”上的排队等待时间就会大大增加任务处理总时间。所以,除非结点数目较少,或者在底层硬件系统中采取比如超级集线器这样的一些特殊实现措施[15],否则在分布存储的并行系统中不大采用集中式平衡调度方法[16]。
2) 分布式调度
在分布式调度中,没有负载均衡器,任务被分配给所有服务节点,通过服务器间的交互,每台服务器都有其他服务器的负载信息,即都有NodeLoadList 列表,由本服务器完成任务的调度,当负载饱和时可以将一部分任务转移到其他轻载服务器。分布式调度的最大优点在于具有良好的可扩放性,具有很强的容错能力,不会出现集中式负载均衡那样瓶颈问题。目前常用的分布式负载平衡调度方法主要有基于随机选择任务移动结点的概率调度算法[17]、根据负载变化差额而基于梯度(Gradient)模型的调度算法[18]以及自适应的近邻契约算法[19]等。但是在分布式调度算法中,每台服务器都需定时向其他服务器广播其负载信息,发送负载信息总数为:N=n(n-1),其中n 为服务器总数目,N 为系统负载更新信息数。因此,服务器之间的交互信息量N 随着服务器数目的增加而成倍增加,将会占用大量的网络资源,从而导致系统性能下降。其次,由于所有服务器都具有相同的负载信息表,所有重服务器都会把负载转移到同一台轻服务器,从而导致轻服务器负载急剧增大,很快变为重服务器,如此反复,导致任务不能及时处理。
3) 混合/层次调度
为了最小化负载均衡开销,一些负载均衡方法重在研究如何根据层次拓扑结构来构建一个层次树的问题。HBM[20]利用层次树进行多级负载均衡,根据层次化的网络结构将处理器划分为多个组(均衡域),由这些均衡域组织成一个层次结构。在层次结构中的每一层,相邻的域间进行负载均衡,并且从底层至上层,在每层执行相同的域间负载均衡过程,最后在根节点完成全局的负载均衡。混合策略(HybridLB)[21]类似于传统的层次负载均衡策略,将处理器划分为多个独立的、自治的组,并将这些组按层次结构进行组织。每层中的每个子树的根节点与其所有子节点形成一个负载均衡组,根节点充当该均衡组的头节点,控制负载均衡组内的负载均
上一篇:社区社区居民健康档案_体检表