`

负载均衡算法

阅读更多

 

负载均衡算法

 

据目前的知识水平,并行可以分为数据并行与任务并行。
数据并行是将数据分发,按块或者不同的流在每个进程或者每个线程中进行处理,
这种并行对数据的独立性要求比较明显。任务并行则是将一个任务分为可以同时
进行的几个子任务,进行处理。
让人头疼的是如何在不同的机器或者核中使其任务平均。这就引入了负载均衡相关的算法。
负载均衡算法主要分为两种,持续性和非持续性的负载均衡。
持续性是指特定客户端发出的请求将由同一服务器服务。
非持续性相比于持续性的区别是客户端发出的请求由不用的服务器提供服务。

 

1. 无需调用各个服务器信息的均衡方法
随机(Random):
负载均衡方法随机的把负载分配到各个可用的服务器上,
通过随机数生成算法选取一个服务器,然后把连接发送给它。

散列法(Hash):通过单射不可逆的HASH函数,按照某种规则将网络请求发往集群节点。


2. 需要各个服务器信息的均衡方法
 循环询(Round Robin):
轮询算法按顺序把每个新的连接请求分配给下一个服务器,
最终把所有请求平分给所有的服务器。如果负载均衡的设备在处理速度、连接速度
和内存等方面是完全均等的,那么效果会更好。

加权轮询(Weighted Round Robin):每个机器接受的连接数量是按权重比例分配的。
这是对普通lun询算法的改进,比如你可以设定:第三台机器的处理能力是第一台机器的两倍,
那么负载均衡器会把两倍的连接数量分配给第3台机器。

 

动态轮询(Dynamic Round Robin):类似于加权轮询,但是,权重值基于对各个服务器的
持续监控,并且不断更新。这是一个动态负载均衡算法,基于服务器的实时性能分析分配连接,
比如每个节点的当前连接数或者节点的最快响应时间等。

最快算法(Fastest):最快算法基于所有服务器中的最快响应时间分配连接。
该算法在服务器跨不同网络的环境中特别有用。

 

最少连接(Least Connections):系统把新连接分配给当前连接数目最少的服务器。
该算法在各个服务器运算能力基本相似的环境中非常有效。

观察算法(Observed):
该算法同时利用最小连接算法和最快算法来实施负载均衡。
服务器根据当前的连接数和响应时间得到一个分数,分数较高代表性能较好,会得到
更多的连接。

 

预判算法(Predictive):
该算法使用观察算法来计算分数,但是预判算法会分析分数的
变化趋势来判断某台服务器的性能正在改善还是降低。具有改善趋势的服务器会得到更多的连接。
该算法适用于大多数环境。

 

最少连接数慢启动时间(Least Connection Slow Start Time):
对最少连接数和带权重的
最小连接数调度方法来说,当一个服务器刚加入线上环境时,可以为其配置一个时间段,
在这段时间内连接数是有限制的而且是缓慢增加的。这为服务器提供了一个‘过渡时间’
以保证这个服务器不会因为刚启动后因为分配的连接数过多而超载。

基于代理的自适应负载均衡(Agent Based Adaptive Balancing):
负载主机包含一个自适用逻辑用来定时监测服务器状态和该服务器的权重。
对于非常强大的“基于代理的自适应负载均衡”方法来说,负载主机以这种方式来定时
检测所有服务器负载情况:每台服务器都必须提供一个包含文件,这个文件包含一个0~99
的数字用来标明改服务器的实际负载情况(0=空前,99=超载,101=失败,102=管理员禁用),
而服务器通过http get方法来获取这个文件;同时对集群中服务器来说,以二进制文件形式
提供自身负载情况也是该服务器工作之一,然而,并没有限制服务器如何计算自身的负载
情况。根据服务器整体负载情况,有两种策略可以选择:在常规的操作中,调度算法通过
收集的服务器负载值和分配给该服务器的连接数的比例计算出一个权重比例。因此,如果
一个服务器负载过大,权重会通过系统透明的作重新调整。和加权轮循调度方法一样,不
正确的分配可以被记录下来使得可以有效的为不同服务器分配不同的权重。然而,在流量
非常低的环境下,服务器报上来的负载值将不能建立一个有代表性的样本;那么基于这些值
来分配负载的话将导致失控以及指令震荡。因此,在这种情况下更合理的做法是基于静态的
权重比来计算负载分配。当所有服务器的负载低于管理员定义的下限时,负载主机就会自动
切换为加权轮循方式来分配请求;如果负载大于管理员定义的下限,那么负载主机又会切换
回自适应方式。

分享到:
评论

相关推荐

    hbase负载均衡算法分析

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

    几种典型的负载均衡算法

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

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

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

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

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

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

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

    F5负载均衡算法标准详解

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

    MMOG中的一种负载均衡算法

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

    任务分配负载均衡算法

    结合上述文章内容和负载均衡算法的一般知识,我们可以认识到,高效的负载均衡算法能够大幅提升系统性能,并且实现节能效果。对于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