CN103944997B - 结合随机抽样和虚拟化技术的负载均衡方法 - Google Patents

结合随机抽样和虚拟化技术的负载均衡方法 Download PDF

Info

Publication number
CN103944997B
CN103944997B CN201410178070.6A CN201410178070A CN103944997B CN 103944997 B CN103944997 B CN 103944997B CN 201410178070 A CN201410178070 A CN 201410178070A CN 103944997 B CN103944997 B CN 103944997B
Authority
CN
China
Prior art keywords
load
resource pool
virtual machine
task
queue
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410178070.6A
Other languages
English (en)
Other versions
CN103944997A (zh
Inventor
唐飞龙
栾志坤
张健桐
张杨
袁博
过敏意
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201410178070.6A priority Critical patent/CN103944997B/zh
Publication of CN103944997A publication Critical patent/CN103944997A/zh
Application granted granted Critical
Publication of CN103944997B publication Critical patent/CN103944997B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明提供了一种结合随机抽样和虚拟化技术的负载均衡方法,包括随机抽样步骤和虚拟化步骤。本发明通过结合随机抽样和虚拟化技术,做出全局负载(网络带宽)的均衡选择,也能够保证局部负载(CPU、内存)的均衡选择,从而可以显著提高整个分布式系统(云计算)的所有资源(网络带宽、CPU、内存)的利用率。使得用户的满意度最大化,减少响应时间,增加资源的利用率,减少任务被驳回的数量,提高整个分布式系统的性能。全局管控和局部管控的分离使得整个系统节省能源、更易于扩展和维护,从而使得这样的负载均衡方法更有实际应用价值。

Description

结合随机抽样和虚拟化技术的负载均衡方法
技术领域
本发明属于计算机技术领域,尤其是应用于分布式系统(比如云计算)中让所有的结点的资源都能够充分被应用,具体涉及一种结合随机抽样和虚拟化技术的负载均衡方法。
背景技术
从1961年图灵奖得主约翰·麦卡锡提出“效用计算”让计算能力将像水和电一样提供给用户使用开始,人们就一直希望能够更容易地获得IT服务,但是当时并未得到实际应用。直到2004年,Amazon推出EC2服务(弹性计算云,Elastic ComputeCloud),云计算作为一种简单的、直观的IT资源提供模式才开始走进不同用户的视野。随后的2006年,Google首席执行官埃里克.施密特在搜索引擎大会上首次提出了“云计算”(Cloud Computing)的概念。自此之后,云计算作为一种新的IT服务名词被广泛传播。
目前普遍认同的云计算概念是:云计算是一种由大规模商业利益驱动的计算模式,它能够满足用户的需求,通过Internet从一个抽象的可动态扩展的虚拟化资源池中提供计算能力存储资源以及平台服务。
云计算中一个重要的问题就是负载均衡,这是云计算调度的一个重要目标和指标。
负载均衡(Load balancing)是一种计算机技术,用来在多个计算机(虚拟机、计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到优化资源使用、最大化吞吐率、最小化响应时间,同时避免过载的目的。使用带有负载均衡的多个服务组件,取代单一的组件,可以通过冗余提高可靠性。
负载均衡的起源是随着互联网信息的日益普及,无论在局域网、广域网还是在以太网上,业务量和用户访问次数都呈现指数级增长,面对应用或工作负载的突发状况,单一的服务器节点会出现热点问题,无法承担突发的工作流,出现节点过载问题。目前针对节点过载问题的研究中,主要存在两种解决办法:其一是对服务器进行更新换代,淘汰掉功能较弱的服务器,添置新型的更高性能的服务器来应对增长的工作负载,这是一种纵向处理方法;第二种方法是进行横向处理,将多个服务性能一般的服务器组合起来构成一个集群,多台并行执行,使其处理能力相当于一台高性能的处理机。然而这两种方法都具有各自的局限性:
第一种方案一方面比较浪费,被淘汰掉的服务器一般都不能再利用,并且在进行这种更替的过程中,必须要停掉服务,会形成业务中断,从而影响正常的工作。另一方面,这种解决方式的扩展性并不好,每次更新都淘汰旧的服务器,重新换上更好的服务器。
第二种方案则是通过增加新的服务器来提高处理能力,不仅不丢弃旧的服务器,而且也不需要在部署系统时停掉服务,和第一种相比,该方法有很大的优越性。但是它同时也带来了新的问题:由原来的单个服务器变成了集群结构,而其不足之处在于这些服务器之间都是相互独立的,它们可以同时对多个用户的请求而进行并行工作。但是对于大规模业务突发状况来说,可能仍会出现某些服务器过忙,而另一些又过闲,集群资源未能充分利用,出现负载不均衡的状况。
负载均衡算法以及机制的产生,很好地解决了集群环境下负载不均衡的问题,集群环境有一个管理节点,采用负载均衡算法将资源按照某种规则进行合理分配,同时又能很好的为用户提供服务。因此负载均衡需要完成的主要任务如下:解决服务器过载问题,为多个并行用户提供更好的服务质量,提高任务的响应时间,消除业务突发导致的热点问题,提高服务器的利用率,实现集群资源的合理分配。
目前负载均衡的算法主要有如下几种,他们各有优缺点。
带有偏好的随机抽样算法:带有偏好的随机抽样(Biased Random Sampling)算法是一种分布式和可伸缩的负载平衡方法,该方法通过对系统域进行随机取样来实现自组织,从而平衡负载系统的所有节点。算法构造了一个虚拟网络拓扑图,图中的各节点的连通关系(服务器视为一个节点)代表了服务器上的负载。每个服务器节点的入度表示分派到该服务器的资源。这种负载均衡模式是非集中式的,这样就更能适应像云计算那样的大规模网络环境。但是随着节点规模的提高和多样性增加,性能会有所降低,而且不一定能达到最优解。
Sufferage算法:在Sufferage算法中,第一步计算出所有任务分配到不同机器上的最短和次短完成时间,将两者作差得到sufferage值,在第二步中选取sufferage值最大的任务分配到所对应的完成时间最短的机器上执行。Sufferage算法在批模式下能使得任务的makespan最短,但是忽略了任务的QoS需求而且负载均衡效果不佳。
投机负载均衡算法:投机负载均衡(Opportunistic Load Balancing,OLB)算法按照任意的顺序指派任务到空闲的虚拟机上,算法忽略任务的执行时间,主要目的在于使所有的机器都保持繁忙状态而不关心结果的最优化。其优点是简单易实现,但是无法保证完成时间最短。
Min-Min调度算法:算法从一些未分配的任务集合开始。首先,从映射方案集中找出预计完成时间最短的任务集合。然后,在这些任务集合中再选出执行时间最小的分配方案。基于这个方案,任务被指派到对应的机器上执行。接着这台虚拟机上运行的所有任务的执行时间加上该任务的执行时间,随后从任务队列中移除该任务。最后,算法继续按照上述流程执行,直到所有任务都被分配完毕。这种算法的主要缺点是容易造成饥饿效应。
发明内容
分布式系统必须根据动态的网络状况、不同结点的资源池使用情况来自适应地选择把任务分配给哪一个结点,以此来提高用户的满意度和资源利用率。因此,为了在最短时间内增加整个分布式系统的吞吐量,必须基于负载均衡的目标来结合基于特征策略的随机抽样方法和虚拟化技术,让整个系统的资源充分被调用起来,且节约能源,易扩展和维护。
基于以上理解及针对现有技术中的不足之处,本发明的目的在于既可以在局部范围内达到负载均衡,又可以在整个系统中达到负载均衡,并且尽可能的节省资源(电费),还可以达到网络、CPU、内存这三个主要的指标全部负载均衡。从而让这个系统易于扩展(需要使用的时候开通新的结点),便于维护(出现问题的结点可以暂时不用,待修理好之后再接入系统中使用),节省能源,提高整个系统的性能。即,通过随机抽样和虚拟化步骤,将整个分布式系统中的所有资源,包括网络带宽、CPU、内存全部用到最大限度,并在最大限度的情况下能够将任务进行完美的处理;随机抽样步骤的特征在于将整个分布式系统的网络带宽用到最好;虚拟化步骤的特征在于将局部分布式系统的所有机器的CPU、内存尽可能的发挥到最佳的状态且保证系统的负载均衡。
根据本发明提供的一种结合随机抽样和虚拟化技术的负载均衡方法,包括如下步骤:
步骤一:随机抽样步骤,所述随机抽样步骤用于根据不同地理位置的服务器和不同网络分布,将批量的任务从全局主控结点分配到局部控制服务器(针对不同地理位置分布的服务器[比如微博的北京、上海的服务器]和不同网络分布[比如使用移动联通电信教育网]的服务器);
步骤二:虚拟化步骤,所述虚拟化步骤用于将局部控制服务器上面的批量任务分配到资源池对应的虚拟机上面来处理。
优选地,在步骤一中采用通信延迟策略和计算能力策略,以控制全局的负载均衡;
所述通信延迟策略,用于根据当前整个系统的负载均衡较低时,在随机抽样步骤进行最后一个结点的选择的时候,优先选择通信延迟较低的结点;
所述计算能力策略,用于根据当前整个系统的负载均衡较高时,在随机抽样步骤进行结点选择的时候,尽量选择计算能力较强的结点。
优选地,所述虚拟化步骤采用基于资源池分配的负载均衡算法和基于预测的弹性负载均衡算法,以负责局部的负载均衡;
所述基于资源池分配的负载均衡算法,根据当前局部分布式系统的资源池的负载情况来分配任务,以保证系统的所有资源池的虚拟机都能够保证高质量的负载均衡状态;
所述基于预测的弹性分配负载均衡算法,是当任务分配到具体的资源池之后,针对资源池内部的处理机制,以让系统的资源池发挥到较高质量的利用,或者让空闲的虚拟机较少被利用,增加整个系统的性能,降低开销。
优选地,所述基于资源池分配的负载均衡算法,具体为:
输入:待处理的任务T0,T1……Tn以及可用的资源池P0,P1……Pn
输出:一个任务分配方案,使得每一个待处理的任务均被分配到当前负载最小的资源池中
数据结构:通过负载均衡器维护一张任务与资源池的映射表,用以保存已分配任务的情况
初始状态:所有资源池均未分配任务,任务与资源池的映射表为空
数据中心每接收到一个请求执行如下步骤:
步骤A1:数据中心接收到请求后交由负载均衡器进行处理;
步骤A2:解析任务与资源池的映射表,寻找当前负载最小的资源池Ps
如果Ps在上一轮迭代中已被选中,那么继续寻找负载次小的资源池Ps’作为目标资源池;否则Ps即为本次迭代的目标资源池;
步骤A3:负载均衡器将目标资源池返回给数据中心,数据中心将该次请求分配给目标资源池;
步骤A4:数据中心通知负载均衡器更新任务与资源池的映射表;
步骤A5:返回步骤A1继续处理下一个请求;
虚拟机每处理完一个请求执行如下步骤:
步骤B1:资源池处理完请求后将消息反馈给数据中心;
步骤B2:数据中心通知负载均衡器释放该任务并更新任务与资源池的映射表。
优选地,所述基于预测的弹性分配负载均衡算法,具体为:
数据结构:负载均衡器负责维护三种队列:
①于每一台虚拟机S维护一个长度为的队列Q,用以记录S最近的负载状况,其中,T表示对资源池进行调整的时间间隔,t表示负载均衡器向处于运行状态的虚拟机获取负载数据的时间间隔;②对于每一个资源池P,维护长度为|P|的队列i_queue,用以记录P中处于空闲状态的虚拟机;③在全局维护表schedule_list中,记录需要进行调整的资源池
初始状态:Q以及schedule_list均为空,资源池P中的虚拟机均处于空闲状态
每隔时间t:负载均衡器向处于运行状态的虚拟机获取负载数据
对于每一台虚拟机Si,本次获取的负载数据L,将被添加到相应队列Qi中;
每隔时间T:对资源池进行一次调整
步骤C1:对于每一台虚拟机Si,根据相应负载队列Qi中的负载数据Lj,按如下公式计算出它的负载均值MSi
C2:对于每一个满足的资源池Pi,将它添加到schedule_list中;
C3:对于每一个资源池Pi,根据其中每一台虚拟机的负载均值MSj,按如下公式计算出它的负载均值MPi
MP i = Σ MS j ∈ P i MS j / | P i |
其中,|Pi|代表资源池Pi中虚拟机的数量
C4:如果MPi超过了资源池P当前处理能力的高阈值
对于P中处于运行状态的每一台虚拟机Si,清空相应的负载数据队列Qi;假定P对应的|i_queue|=n,为保持MPi处于正常值需要增加的虚拟机数量为SAN;若n≥SAN,则开启处于i_queue中的SAN台虚拟机,否则开启i_queue中的全部虚拟机,剩余任务量进入FIFO队列中等待;
如果MPi低于资源池P当前处理能力的低阈值
对于P中处于运行状态的每一台虚拟机Si,清空相应的负载数据队列Qi;假定保持MPi处于正常值需要减少的虚拟机数量为SDN;选定SDN台虚拟机,等待它们的任务执行完成后加入i_queue中。
与现有技术相比,本发明具有如下的有益效果:
本发明既可以在局部范围内达到负载均衡,又可以在整个系统中达到负载均衡,并且尽可能的节省资源(电费),还可以达到网络、CPU、内存这三个主要的指标全部负载均衡。从而让这个系统最大限度的提高用户的满意度,降低响应时间,增加资源的利用率,减少任务被驳回的数量,易于扩展(需要使用的时候开通新的结点),便于维护(出现问题的结点可以暂时不用,待修理好之后再接入系统中使用),节省能源,提高整个系统的性能。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为利用带有特征策略的抽样方法进行任务分配示意图。
图2为利用虚拟化技术对局部的机器进行管理示意图。
图3为整个分布式系统的分配管理结构示意图。
图4为基于资源池分配的负载均衡算法的流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明提供一种结合随机抽样和虚拟化技术的负载均衡方法,包括带有特征策略(计算能力策略和通信延迟策略)的抽样方法、虚拟化技术(基于资源池分配的负载均衡算法和基于预测的弹性负载均衡算法)。其中:抽样方法用于全局主控结点将批量任务分配到局部主控服务器,带有特征策略的抽样方法可以使用通信延迟策略处理整体负载低的情况,也可以使用计算能力策略处理整体负载高的情况。虚拟化技术用于将局部主控服务器将任务分配到具体的资源池。基于资源池分配的负载均衡算法用来确保资源池的负载均衡,基于预测的弹性负载均衡算法是针对资源池内部的处理机制。本发明通过结合随机抽样和虚拟化技术,做出全局负载(网络带宽)的均衡选择,也能够保证局部负载(CPU、内存)的均衡选择,从而可以显著提高整个分布式系统的所有资源(网络带宽、CPU、内存)的利用率。使得用户的满意度最大化,减少响应时间,增加资源的利用率,减少任务被驳回的数量,提高整个分布式系统的性能。全局管控和局部管控的分离使得整个系统节省能源、更易于扩展和维护,从而使得这样的负载均衡方法更有实际应用价值。
进一步地,结合随机抽样和虚拟化技术的负载均衡方法具体分为三个阶段:
阶段(1),使用带有特征策略的抽样方法将批任务从全局主控结点智能地分配到局部主控服务器;
阶段(2),使用基于资源池分配的动态均衡算法将任务分配给具体的资源池;
阶段(3),使用基于预测的弹性负载均衡算法将资源池内部的任务进行处理。
以下结合具体的实施例对本发明的技术方案作进一步详细阐述。整个发明实现过程如下:
1、将批任务从全局主控结点智能地分配到局部主控服务器(如图4所示)
(1)随机抽样:
在这个负载平衡方法中,服务器上的负载是通过在一个虚拟图的连通性来表示的。对这种机制有一个完整的分析,本节只提供一个简短的概述。最初的网络构造中每个虚拟节点表示每个服务器节点,每个入度对应为服务器的可用资源或其他可取的度量。这样,一些(符合其现有资源)的入边被创建,同随机选择的节点相连。这种方法创建了一个网络系统,提供了一个衡量初始可用性的状态,随着它的运行,进行工作分配和动态使用。
动态的边用来管理平衡系统所需的负载分配程序的平衡方案要求。当一个节点执行一个新的工作,它删除一个入边;降低的入度以指示可用资源的减少。相反,当节点完成一项工作,它遵循一个过程来创建一个入边;指示可用资源又增加了。在一个稳定的状态,工作到达率等于这个节点的工作完成率;整个网络会维持一个不变的平均边数。
在理想的平衡条件,度的分布保持接近一个ER的图度数的随机分布。增加和减少的过程通过随机抽样进行。采样从一个特定的节点开始;每一步移动到一个随机选择的邻居节点。在最后一个采样行走选定了负载分配。负载分布的有效性被认为随着步长(在这记为W)增长儿增加。然而,实验证明有效的W阈值在log(n)的步附近,其中n是网络规模。
因此,W是用来控制一个节点接收工作的行为。当一个节点接收到一个工作时,如果这个工作现有的步数大于等于阈值,它会执行这个任务。这个节点被称为执行节点。另外,如果步行长度小于阈值时,工作的W值递增,它被发给一个随机的邻居,这样持续随机抽样方法。当工作达到执行节点,在图中将反应为删除这个执行节点的一个入边。一旦工作完成,在图中将反应为增加一个从起始节点到执行节点的一条边。
总的来说,平衡图在工作的执行和完成时以以下方式修改:
-执行节点的入度(可用资源)在执行工作时减少,接着:
-分配节点的出度(即分配的工作)和执行节点的入度(可执行节点资源)在工作完成后增加,从而管理未来的负载分配。
其结果生成一个有向图,其中边的方向导致随机抽样的传播。这个负载均衡方案既是分步的又很容易使用标准的网络协议实现。因为方案是分散的,这使得它适合于许多大型网络系统,例如一些云计算平台所需的系统。
需要指出的是,负载均衡技术的性能可以进一步通过随机抽样对特定的节点的偏移。因此,节点选择将根据事先定义的标准(例如计算能力和通信延迟)而不是由最后的节点选择。例如,在随机抽样行走可以向未访问过的节点或具有某些性质的节点。相应的,这个负载均衡技术可以通过向行走中工作负载最小的(最高入度)节点分配,而不是最后一个节点。因此,其可扩展性同标准的随机抽样一致,但平衡性能大为改善。
(2)特征策略:(如图1所示)
根据历史的执行情况,决定主控结点和哪些结点直接相连,然后这些主控结点往往最先得到调用。然后将W调为1,待这些节点使用完之后,W开始增加,新的结点开始慢慢开启。然后向新的结点迈进。根据执行情况不断调整策略库,因为网络的通常情况也是不断变化的。
由抽样方法向各个局部主控服务器分配批量任务的时候,记录批任务由全局主控结点到达各局部主控结点的传输时间Tt成批任务的计算时间Tc,然后根据整体负载的高低程度和之前的历史记录来决定调用哪种策略。
策略1:通信延迟策略。
即主控结点根据历史记录中的Tt值来选择最后的结点(仍然是使用抽样方法),Tt值越小的优先得到选择。
策略2:计算能力策略。
即主控结点根据历史记录中的Tc值来选择最后的结点(仍然使用抽样方法),Tt值越小的优先得到选择。
当整体低负载的时候,所有的机器的计算能力都很强,此时影响处理任务的时间的是传输时间,因此运用通信延迟策略来解决负载均衡问题。
当整体高负载的时候,所有的机器都处于高负荷的情况下运行任务,此时影响任务的处理时间的主要因素变为计算时间(比如处理30个任务,传输可能是1、2分钟的差异,但是计算的时间可能是半小时、一小时来记),所以为了降低全局任务总的处理时间,将调用计算能力策略来解决负载均衡问题。
2、根据如下算法选定执行该批任务的资源池(如图4所示)
算法描述:基于资源池分配的负载均衡算法
输入:待处理的任务T0,T1……Tn以及可用的资源池P0,P1……Pn
输出:一个任务分配方案,使得每一个待处理的任务均被分配到当前负载最小的资源池中
数据结构:负载均衡器维护一张“任务-资源池”的映射表,用以保存已分配任务的情况
初始状态:所有资源池均未分配任务,映射表为空
数据中心每接收到一个请求:
A1:数据中心接收到请求后交由负载均衡器进行处理
A2:解析映射表,寻找当前负载最小的资源池Ps
如果Ps在上一轮迭代中已被选中,那么继续寻找负载次小的资源池Ps’作为目标资源池
否则Ps即为本次迭代的目标资源池
A3:负载均衡器将目标资源池返回给数据中心,数据中心将该次请求分配给目标资源池
A4:数据中心通知负载均衡器更新映射表
A5:返回步骤A1继续处理下一个请求
虚拟机每处理完一个请求:
B1:资源池处理完请求后将消息反馈给数据中心
B2:数据中心通知负载均衡器释放该任务并更新映射表
B3、对于资源池内部,为达到资源的有效利用,按照如下算法进行调整
算法描述:弹性资源管理算法
数据结构:负载均衡器负责维护三种队列,①对于每一台虚拟机S维护一个长度为的队列Q,用以记录S最近的负载状况,其中,T表示对资源池进行调整的时间间隔,t表示负载均衡器向处于运行状态的虚拟机获取负载数据的时间间隔;②对于每一个资源池P,维护长度为|P|的队列i_queue,用以记录P中处于空闲状态的虚拟机;③在全局维护表schedule_list,用以记录需要进行调整的资源池
初始状态:Q以及schedule_list均为空,资源池P中的虚拟机均处于空闲状态
每t时间:负载均衡器向处于运行状态的虚拟机获取负载数据
对于每一台虚拟机Si,本次获取的负载数据L,将被添加到相应队列Qi中。
每T时间:对资源池进行一次调整
C1:对于每一台虚拟机Si,根据相应负载队列Qi中的负载数据Lj,按如下公式计算出它的负载均值MSi
C2:对于每一个满足的资源池Pi,将它添加到schedule_list中
C3:对于每一个资源池Pi,按如下公式计算出它的负载均值MPi
MP i = Σ MS j ∈ P i MS j / | P i |
C4:如果MP超过了资源池P当前处理能力的高阈值
对于P中处于运行状态的每一台虚拟机S,清空相应的负载数据队列Q。假定P对应的|i_queue|=n,为保持MP处于正常值需要增加的虚拟机数量为SAN。若n≥SAN,则开启处于i_queue中的SAN台虚拟机,否则开启i_queue中的全部虚拟机,剩余任务量进入FIFO队列中等待。
如果MP低于资源池P当前处理能力的低阈值
对于P中处于运行状态的每一台虚拟机S,清空相应的负载数据队列Q。假定保持MP处于正常值需要减少的虚拟机数量为SDN。选定SDN台虚拟机,等待它们的任务执行完成后加入i_queue中。
其他情况下不进行资源调整
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

Claims (3)

1.一种结合随机抽样和虚拟化技术的负载均衡方法,其特征在于,包括如下步骤:
步骤一:随机抽样步骤,所述随机抽样步骤用于根据不同地理位置的服务器和不同网络分布,将批量的任务从全局主控结点分配到局部控制服务器;
步骤二:虚拟化步骤,所述虚拟化步骤用于将局部控制服务器上面的批量任务分配到资源池对应的虚拟机上面来处理;
在步骤一中采用通信延迟策略和计算能力策略,以控制全局的负载均衡;
所述通信延迟策略,用于根据当前整个系统的负载均衡较低时,在随机抽样步骤进行最后一个结点的选择的时候,优先选择通信延迟较低的结点;
所述计算能力策略,用于根据当前整个系统的负载均衡较高时,在随机抽样步骤进行结点选择的时候,尽量选择计算能力较强的结点;
所述虚拟化步骤采用基于资源池分配的负载均衡算法和基于预测的弹性负载均衡算法,以负责局部的负载均衡;
所述基于资源池分配的负载均衡算法,根据当前局部分布式系统的资源池的负载情况来分配任务,以保证系统的所有资源池的虚拟机都能够保证高质量的负载均衡状态;
所述基于预测的弹性分配负载均衡算法,是当任务分配到具体的资源池之后,针对资源池内部的处理机制,以让系统的资源池发挥到较高质量的利用,或者让空闲的虚拟机较少被利用,增加整个系统的性能,降低开销。
2.根据权利要求1所述结合随机抽样和虚拟化技术的负载均衡方法,其特征在于,所述基于资源池分配的负载均衡算法,具体为:
输入:待处理的任务T0,T1……Tn以及可用的资源池P0,P1……Pn
输出:一个任务分配方案,使得每一个待处理的任务均被分配到当前负载最小的资源池中
数据结构:通过负载均衡器维护一张任务与资源池的映射表,用以保存已分配任务的情况
初始状态:所有资源池均未分配任务,任务与资源池的映射表为空
数据中心每接收到一个请求执行如下步骤:
步骤A1:数据中心接收到请求后交由负载均衡器进行处理;
步骤A2:解析任务与资源池的映射表,寻找当前负载最小的资源池Ps
如果Ps在上一轮迭代中已被选中,那么继续寻找负载次小的资源池Ps 作为目标资源池;否则Ps即为本次迭代的目标资源池;
步骤A3:负载均衡器将目标资源池返回给数据中心,数据中心将该次请求分配给目标资源池;
步骤A4:数据中心通知负载均衡器更新任务与资源池的映射表;
步骤A5:返回步骤A1继续处理下一个请求;
虚拟机每处理完一个请求执行如下步骤:
步骤B1:资源池处理完请求后将消息反馈给数据中心;
步骤B2:数据中心通知负载均衡器释放该任务并更新任务与资源池的映射表。
3.根据权利要求2所述结合随机抽样和虚拟化技术的负载均衡方法,其特征在于,所述基于预测的弹性分配负载均衡算法,具体为:
数据结构:负载均衡器负责维护三种队列:
①于每一台虚拟机S维护一个长度为[T/t]的队列Q,用以记录S最近的负载状况,其中,T表示对资源池进行调整的时间间隔,t表示负载均衡器向处于运行状态的虚拟机获取负载数据的时间间隔;②对于每一个资源池P,维护长度为|P|的队列i_queue,用以记录P中处于空闲状态的虚拟机;③在全局维护表schedule_list中,记录需要进行调整的资源池
初始状态:Q以及schedule_list均为空,资源池P中的虚拟机均处于空闲状态
每隔时间t:负载均衡器向处于运行状态的虚拟机获取负载数据
对于每一台虚拟机Si,本次获取的负载数据L将被添加到相应队列Qi中;
每隔时间T:对资源池进行一次调整
步骤C1:对于每一台虚拟机Si,根据相应负载队列Qi中的负载数据Lj,按如下公式计算出它的负载均值MSi
C2:对于每一个满足的资源池Pi,将它添加到schedule_list中;
C3:对于每一个资源池Pi,根据其中每一台虚拟机的负载均值MSj,按如下公式计算出它的负载均值MPi
MP i = Σ MS j ∈ P i MS j / | P i |
其中,|Pi|代表资源池Pi中虚拟机的数量
C4:如果MPi超过了资源池P当前处理能力的高阈值
对于P中处于运行状态的每一台虚拟机Si,清空相应的负载数据队列Qi;假定P对应的|i_queue|=n,为保持MPi处于正常值需要增加的虚拟机数量为SAN;若n≥SAN,则开启处于i_queue中的SAN台虚拟机,否则开启i_queue中的全部虚拟机,剩余任务量进入FIFO队列中等待;
如果MPi低于资源池P当前处理能力的低阈值
对于P中处于运行状态的每一台虚拟机Si,清空相应的负载数据队列Qi;假定保持MPi处于正常值需要减少的虚拟机数量为SDN;选定SDN台虚拟机,等待它们的任务执行完成后加入i_queue中。
CN201410178070.6A 2014-04-29 2014-04-29 结合随机抽样和虚拟化技术的负载均衡方法 Active CN103944997B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410178070.6A CN103944997B (zh) 2014-04-29 2014-04-29 结合随机抽样和虚拟化技术的负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410178070.6A CN103944997B (zh) 2014-04-29 2014-04-29 结合随机抽样和虚拟化技术的负载均衡方法

Publications (2)

Publication Number Publication Date
CN103944997A CN103944997A (zh) 2014-07-23
CN103944997B true CN103944997B (zh) 2015-10-07

Family

ID=51192478

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410178070.6A Active CN103944997B (zh) 2014-04-29 2014-04-29 结合随机抽样和虚拟化技术的负载均衡方法

Country Status (1)

Country Link
CN (1) CN103944997B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302649A (zh) * 2015-12-03 2016-02-03 中国联合网络通信集团有限公司 一种容灾备份方法和系统
CN105677475A (zh) * 2015-12-28 2016-06-15 北京邮电大学 一种基于sdn架构的数据中心内存能耗优化方法
EP3226134B1 (en) * 2016-04-01 2021-02-24 Alcatel Lucent A method and system for scaling resources, and a computer program product
CN106850726B (zh) * 2016-06-20 2019-11-15 北京交通大学 基于sdn的云数据中心负载可感知的请求路由方法
CN106598717B (zh) * 2016-12-07 2019-06-11 陕西尚品信息科技有限公司 一种基于时间片段的任务调度方法
US11126927B2 (en) * 2017-11-24 2021-09-21 Amazon Technologies, Inc. Auto-scaling hosted machine learning models for production inference
CN110943877B (zh) * 2018-09-21 2022-02-22 华为技术有限公司 网络状态测量方法、设备及系统
CN109271569B (zh) * 2018-09-30 2021-10-22 联想(北京)有限公司 输出方法、装置、系统和介质
CN111010712B (zh) * 2019-12-16 2022-11-25 烽火通信科技股份有限公司 一种集中式资源管理系统及方法
CN111556173B (zh) * 2020-06-24 2022-03-22 中国电子科技集团公司第五十四研究所 一种基于强化学习的服务链映射方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523258A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种面向云操作系统的数据存储架构及其负载均衡方法
CN102546379A (zh) * 2010-12-27 2012-07-04 中国移动通信集团公司 一种虚拟化资源调度的方法及虚拟化资源调度系统
JP2013168934A (ja) * 2012-02-15 2013-08-29 Hitachi Ltd 負荷均衡装置及び負荷均衡方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102546379A (zh) * 2010-12-27 2012-07-04 中国移动通信集团公司 一种虚拟化资源调度的方法及虚拟化资源调度系统
CN102523258A (zh) * 2011-11-30 2012-06-27 广东电子工业研究院有限公司 一种面向云操作系统的数据存储架构及其负载均衡方法
JP2013168934A (ja) * 2012-02-15 2013-08-29 Hitachi Ltd 負荷均衡装置及び負荷均衡方法

Also Published As

Publication number Publication date
CN103944997A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN103944997B (zh) 结合随机抽样和虚拟化技术的负载均衡方法
Kumar et al. Dynamic load balancing algorithm for balancing the workload among virtual machine in cloud computing
Masri et al. Minimizing delay in IoT systems through collaborative fog-to-fog (F2F) communication
US8468246B2 (en) System and method for allocating resources in a distributed computing system
CN103812949B (zh) 一种面向实时云平台的任务调度与资源分配方法及系统
Semmoud et al. Load balancing in cloud computing environments based on adaptive starvation threshold
CN109788046B (zh) 一种基于改进蜂群算法的多策略边缘计算资源调度方法
CN113064712B (zh) 基于云边环境的微服务优化部署控制方法、系统及集群
CN104657221A (zh) 一种云计算中基于任务分类的多队列错峰调度模型及方法
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN112559182A (zh) 资源分配方法、装置、设备及存储介质
CN108282526B (zh) 双集群间服务器动态分配方法及系统
Gabi et al. Systematic review on existing load balancing techniques in cloud computing
CN111835849A (zh) 增强接入网服务能力的方法和装置
CN104378412A (zh) 云环境下意识到用户周期性资源需求的动态负载均衡方法
CN114090251A (zh) 一种边缘计算资源自适应动态调度方法及系统
CN103744735A (zh) 一种多核资源的调度方法及装置
Stavrinides et al. Orchestrating bag-of-tasks applications with dynamically spawned tasks in a distributed environment
Jain et al. An algorithm for dynamic load balancing in distributed systems with multiple supporting nodes by exploiting the interrupt service
CN113742075A (zh) 基于云端分布式系统的任务处理方法、装置及系统
Naik et al. Scheduling tasks on most suitable fault tolerant resource for execution in computational grid
CN114301911B (zh) 一种基于边边协同的任务管理方法和系统
CN115225496A (zh) 一种基于边缘计算环境的移动感知服务卸载容错方法
Naaz et al. Load balancing algorithms for peer to peer and client server distributed environments
Jayasinghe et al. A scalable multi-tier task assignment policy with minimum excess load

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant