`

负载均衡算法

 
阅读更多

分类:

 

 平衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡。一般的平衡算法主要任务是决定如何选择下一个集群节点,然后将新的服务请求转发给它。有些简单平衡方法可以独立使用,有些必须和其它简单或高级方法组合使用。而一个好的负载均衡算法也并不是万能的,它一般只在某些特殊的应用环境下才能发挥最大效用。因此在考察负载均衡算法的同时,也要注意算法本身的适用面,并在采取集群部署的时候根据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用。

3.1 轮转法:

    轮转算法是所有调度算法中最简单也最容易实现的一种方法。在一个任务队列里,队列的每个成员(节点)都具有相同的地位,轮转法简单的在这组成员中顺序轮转选择。在负载平衡环境中,均衡器将新的请求轮流发给节点队列中的下一节点,如此连续、周而复始,每个集群的节点都在相等的地位下被轮流选择。这个算法在DNS域名轮询中被广泛使用。

    轮转法的活动是可预知的,每个节点被选择的机会是1/N,因此很容易计算出节点的负载分布。轮转法典型的适用于集群中所有节点的处理能力和性能均相同的情况,在实际应用中,一般将它与其他简单方法联合使用时比较有效。

3.2 散列法

    散列法也叫哈希法(HASH),通过单射不可逆的HASH函数,按照某种规则将网络请求发往集群节点。哈希法在其他几类平衡算法不是很有效时会显示出特别的威力。例如,在前面提到的UDP会话的情况下,由于轮转法和其他几类基于连接信息的算法,无法识别出会话的起止标记,会引起应用混乱。

    而采取基于数据包源地址的哈希映射可以在一定程度上解决这个问题:将具有相同源地址的数据包发给同一服务器节点,这使得基于高层会话的事务可以以适当的方式运行。相对称的是,基于目的地址的哈希调度算法可以用在Web Cache集群中,指向同一个目标站点的访问请求都被负载平衡器发送到同一个Cache服务节点上,以避免页面缺失而带来的更新Cache问题。

3.3 最少连接法

    在最少连接法中,平衡器纪录目前所有活跃连接,把下一个新的请求发给当前含有最少连接数的节点。这种算法针对TCP连接进行,但由于不同应用对系统资源的消耗可能差异很大,而连接数无法反映出真实的应用负载,因此在使用重型Web服务器作为集群节点服务时(例如Apache服务器),该算法在平衡负载的效果上要打个折扣。为了减少这个不利的影响,可以对每个节点设置最大的连接数上限(通过阈值设定体现)。

3.4 最低缺失法

    在最低缺失法中,平衡器长期纪录到各节点的请求情况,把下个请求发给历史上处理请求最少的节点。与最少连接法不同的是,最低缺失记录过去的连接数而不是当前的连接数。

3.5 最快响应法

    平衡器记录自身到每一个集群节点的网络响应时间,并将下一个到达的连接请求分配给响应时间最短的节点,这种方法要求使用ICMP包或基于UDP包的专用技术来主动探测各节点。

    在大多数基于LAN的集群中,最快响应算法工作的并不是很好,因为LAN中的ICMP包基本上都在10ms内完成回应,体现不出节点之间的差异;如果在 WAN上进行平衡的话,响应时间对于用户就近选择服务器而言还是具有现实意义的;而且集群的拓扑越分散这种方法越能体现出效果来。这种方法是高级平衡基于拓扑结构重定向用到的主要方法。

3.6 加权法

    加权方法只能与其他方法合用,是它们的一个很好的补充。加权算法根据节点的优先级或当前的负载状况(即权值)来构成负载平衡的多优先级队列,队列中的每个等待处理的连接都具有相同处理等级,这样在同一个队列里可以按照前面的轮转法或者最少连接法进行均衡,而队列之间按照优先级的先后顺序进行均衡处理。在这里权值是基于各节点能力的一个估计值。

分享到:
评论

相关推荐

    hbase负载均衡算法分析

    HBase 负载均衡算法分析 HBase 作为一个非关系型列式数据库,对其负载均衡算法进行深入分析是非常重要的。本文将详细介绍 HBase 负载均衡算法的实现原理和工作流程。 Region 初始分配策略 在 HBase 中,Region 的...

    几种典型的负载均衡算法

    负载均衡算法 负载均衡是指将网络流量分布到多个服务器上,以提高系统的可扩展性、可用性和性能。常见的负载均衡算法有很多,下面将对几种典型的负载均衡算法进行介绍。 一、HASH 算法 HASH 算法是一种简单的负载...

    基于CPU和内存利用率的负载均衡算法的研究.pdf

    "基于CPU和内存利用率的负载均衡算法的研究" 基于CPU和内存利用率的负载均衡算法的研究.pdf文章旨在解决当前采用的最少连接数算法无法解决因不同业务请求消耗资源差异大而导致的平均响应时间长的问题。作者提出了CM...

    MMOG中的一种负载均衡算法

    ### MMOG中的一种负载均衡算法:综合分析与探讨 #### 引言 大规模多人在线角色扮演游戏(MMORPG)因其提供给玩家广阔的互动平台而受到广泛关注。这类游戏的特点在于支持成千上万的玩家同时在线,这无疑对服务器的...

    一种改进的Linux集群系统负载均衡算法.pdf

    一种改进的Linux集群系统负载均衡算法 在Linux集群系统中,负载均衡是关键技术之一。负载均衡算法的选择对系统的性能有着极大的影响。本文提出了一种改进的Linux集群系统负载均衡算法,该算法通过修改负载权值计算...

    一种基于服务类型的web集群负载均衡算法

    ### 一种基于服务类型的Web集群负载均衡算法 #### 摘要 在电信增值业务系统开发过程中,大量的用户和多样化的服务导致服务器集群中的负载均衡问题变得尤为突出,成为电信业务系统开发成功的关键因素之一。本文针对...

    F5负载均衡算法标准详解

    【F5负载均衡算法标准详解】 在IT领域,负载均衡是一种关键的技术,它确保网络流量在多台服务器间均匀分布,提高系统可用性和性能。F5作为业界领先的应用交付控制器(ADC)提供商,其负载均衡解决方案以其高效和...

    任务分配负载均衡算法

    结合上述文章内容和负载均衡算法的一般知识,我们可以认识到,高效的负载均衡算法能够大幅提升系统性能,并且实现节能效果。对于5G移动网络这样的系统,尤其是在采用虚拟基站架构的情况下,如何设计出既能够满足延迟...

    基于P2P的MMOG中动态负载均衡算法

    ### 基于P2P的MMOG中动态负载均衡算法 #### 摘要与背景 在巨量多玩家在线游戏(MMOG)中,传统的客户端/服务器(C/S)架构面临着诸多挑战,其中最主要的两个问题是服务器瓶颈以及对玩家数量的限制。近年来,随着点...

    基于排队论综合指标评估的动态负载均衡算法.pdf

    "基于排队论综合指标评估的动态负载均衡算法" 这个动态负载均衡算法基于排队论综合指标评估,旨在解决互联网通信、计算机集群和云环境中的负载失衡问题。该算法的提出是为了解决传统负载均衡策略的缺陷,即以 CPU、...

    几种负载均衡算法

    负载均衡算法是网络架构中用于优化资源分配的关键技术,它旨在通过智能地分配网络请求到多个服务器上来提高系统的效率、可靠性和响应速度。在给定的文件中,详细介绍了多种负载均衡算法,包括静态和动态两种类型。接...

    面向云服务平台的弹性负载均衡算法.pdf

    如果负载均衡算法不能适应这种动态和突发的环境变化,将无法有效应对资源需求估计的不准确性和随机性特征资源需求预测的问题。 针对这种情况,本文提出了一种新的弹性负载均衡算法。通过跟踪观测虚拟机资源需求,并...

    计算机集群技术分析和负载均衡算法

    ### 计算机集群技术分析和负载均衡算法 随着信息技术的迅速发展,特别是网络技术的广泛应用,用户对计算机系统的性能提出了更高的要求。传统的通过提升单个处理器的能力来增强服务器性能的方式逐渐显得力不从心。...

    转:典型的几个负载均衡算法---SLB

    在本文中,我们将深入探讨几种典型的负载均衡算法,特别是在SLB(Software Load Balancer,软件负载均衡器)中的应用。 1. **轮询(Round Robin)**: 轮询是最简单的负载均衡算法,它将接收到的请求依次分配给...

    F5负载均衡算法详解

    F5负载均衡算法详解 F5负载均衡算法是应用交换技术中四个主要技术之一,它相对其它三个技术来说,更为重要些,在应用交换领域里,主要的技术是负载均衡的算法,完整的、完善的、可控的、灵活的负载均衡算法无疑决定...

    Web集群系统的负载均衡算法

    ### Web集群系统的负载均衡算法 #### 摘要与引言 随着互联网技术的发展和用户需求的提升,传统的单一服务器架构越来越难以满足高并发、低延迟的服务需求。为了解决这一问题,人们开始广泛采用集群技术来构建高性能...

Global site tag (gtag.js) - Google Analytics