前言所谓负载,一般指处理节点的CPU负载、MEM利用率、网络负载、可用的缓冲区、应用系统负载、用户数量以及其他的各种系统资源的当前状态信息。所谓负载均衡,是指处理节点的负载信息通过某代理软件传递给均衡器,由均衡器做出决策并对负载进行动态分配,从而使集群中各处理节点的负载相对趋于平衡。 (1)轮转调度(Round-Robin Scheduling)算法假设所有服务器处理性能相同,将外部请求按顺序轮流分配到集群中的服务器上。这种算法的优点是其简洁性,无需记录当前所有连接的状态,是一种无状态调度算法,但是不适用于服务器组中处理性能不一的情况,而且当请求服务时间变化较大时,容易导致服务器间的负载不平衡。 (2)加权轮转调度(Weighted Round-Robin Scheduling)算法为保证处理能力强的服务器处理更多的访问流量,用相应的权值表示服务器的处理性能,将请求数目按权值的比例分配给各服务器。调度器可以自动询问服务器的负载情况,并动态地调整其权值。这种均衡算法也是一种无状态调度算法,但可以解决服务器间性能不一的情况,能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。 (3)随机均衡调度(Random Scheduling)算法把来自网络的请求随机分配给各个服务器。 (4)加权随机均衡调度(Weighted Random Scheduling)算法此种均衡算法类似于加权轮转算法,不过在处理请求分担时是个随机选择的过程。 (5)最小连接调度(Least-Connection Scheduling)算法该算法是一种动态调度算法,通过服务器中当前所活跃的连接数来估计服务器的负载情况,把新的连接请求分配到当前连接数最小的服务器。但是,当各个服务器的处理能力不同时,该算法并不理想。 (6)加权最小连接调度(Weighted Least-Connection Scheduling)算法用相应的权值表示各个服务器的处理性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询服务器的负载情况,并动态地调整其权值。 (7)目标地址散列调度(Destination Hashing Scheduling)算法根据请求的目标 IP地址,将其作为散列键(Hash Key),通过散列(Hash)函数将这个目标IP地址映射到一台可用且未超载的服务器,将请求发送到该服务器,属于静态映射算法。 (8)源地址散列调度(Source Hashing Scheduling)算法与目标地址散列调度算法相反,根据请求的源 IP地址,作为散列键(HashKey),通过散列函数将请求的源IP地址映射到一台可用且未超的服务器,将请求发送到该服务器。除了将请求的目标IP地址换成请求的源IP地址,该算法采用的散列函数与目标地址散列调度算法相同,算法流程与目标地址散列调度算法的基本相似。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。 (9)基于局部性的最少链接调度(Locality-Based Least ConnectionsScheduling)算法找出请求的目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;否则用“最少链接”的原则选出一个可用的服务器。算法的设计目标是在服务器的负载基本平衡情况下将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率。 (10)带复制的基于局部性最少链接调度(Locality-Based Least Connectionswith Replication Scheduling)算法与基于局部性的最少链接调度算法的不同之处在于,它要维护从一个目标IP地址到一组服务器的映射,而不是从一个目标IP地址到一台服务器的映射。该算法找出请求的目标IP地址对应的服务器组,按“最少链接”原则从服务器组中选出一台服务器,若服务器可用且没有超载,将请求发送到该服务器;否则按“最少链接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,再将请求发送到该服务器。另外,若该服务器组有一段时间未被修改,则将最忙的服务器从服务器组中删除,以降低复制的程度。 (11)响应速度均衡调度(Response Time Scheduling)算法负载均衡设备对内部各服务器发出一个探测请求,然后由对探测请求响应最快的一台服务器来响应客户端的服务请求。 (12)处理能力均衡调度(Processing Capacity Scheduling)算法负载均衡设备记录集群内部处理负荷(根据服务器CPU型号、CPU数量、内存大小及当前连接数等换算而成),将服务请求分配给负荷最轻的服务器。由于考虑到了内部服务器的处理能力及当前网络运行状况等不同情形,因此这种均衡算法相对来说更加精确,尤其适合运用到第7层(应用层)负载均衡的情况,但附加开销也较大。 (13)DNS均衡调度(DNS Scheduling)算法分处在不同地理位置的负载均衡设备,收到同一个客户端的域名解析请求,并在同一时间内,把此域名解析成各自相对应服务器的IP地址,并返回给客户端,客户端将以最先收到的域名解析IP地址来继续请求服务,而忽略其他的IP地址响应。 |
|