CN111694663B - 服务器集群的负载均衡方法、装置及系统 - Google Patents

服务器集群的负载均衡方法、装置及系统 Download PDF

Info

Publication number
CN111694663B
CN111694663B CN202010487960.0A CN202010487960A CN111694663B CN 111694663 B CN111694663 B CN 111694663B CN 202010487960 A CN202010487960 A CN 202010487960A CN 111694663 B CN111694663 B CN 111694663B
Authority
CN
China
Prior art keywords
job
server node
server
information
node
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
CN202010487960.0A
Other languages
English (en)
Other versions
CN111694663A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010487960.0A priority Critical patent/CN111694663B/zh
Publication of CN111694663A publication Critical patent/CN111694663A/zh
Application granted granted Critical
Publication of CN111694663B publication Critical patent/CN111694663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Abstract

本发明公开了一种服务器集群的负载均衡方法、装置及系统,其中,该方法包括:接收作业调度请求,作业调度请求包括:作业信息;根据预定选择算法选择服务器集群中的服务器节点,并判断该服务器节点的当前负载信息是否大于服务器集群的平均负载信息;响应于判断结果为是,将服务器集群中当前负载最小的服务器节点确定为作业节点,以执行作业信息;根据作业信息的执行结果更新平均负载信息。通过本发明,可以提高负载均衡器的转发效率,防止服务器节点过载,从而可以提高服务器集群的总体效率。

Description

服务器集群的负载均衡方法、装置及系统
技术领域
本发明涉及计算机系统领域,具体涉及一种服务器集群的负载均衡方法、装置及系统。
背景技术
目前经典的负载均衡算法有轮循算法、加权轮循算法、随机分配算法和动态反馈调度算法等。当服务器请求增加到一定量时,响应时间的变化会出现抖动现象,表明服务器即将进入饱和状态,出现抖动现象到负载饱和状态这一负载区被称为临界区。为了保证负载均衡器具有较高的转发效率,分配器通过反馈服务器实际的工作负载状态,再结合设定的服务器固有处理能力,负载均衡器计算出每台服务器当前的负载率以及平均负载率。根据服务器应分配与之能力相匹配的负载的原则,在后续的分配中,对高于平均负载率的服务器减少分配给它的请求任务数量,对低于平均负载率的服务器增加分配给它的请求任务数量,以达到负载均衡的目的。
目前,分配器不对每个请求任务本身的负荷进行分析,而是动态监测请求任务被分配后对各个服务器工作负荷造成的影响。然而,作业请求任务对系统资源的消耗不仅与链接数量有关,还与链接类型、所需资源类型、请求内容等多方面因素有关,这些都影响了负载均衡器的转发效率,从而导致了服务器集群总体效率下降。
发明内容
有鉴于此,本发明提供一种服务器集群的负载均衡方法、装置及系统,以解决上述提及的至少一个问题。
根据本发明的第一方面,提供一种服务器集群的负载均衡方法,所述方法包括:
接收作业调度请求,所述作业调度请求包括:作业信息;
根据预定选择算法选择服务器集群中的服务器节点,并判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息;
响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息;
根据所述作业信息的执行结果更新所述平均负载信息。
根据本发明的第二方面,提供一种服务器集群的负载均衡装置,所述装置包括:
请求接收单元,用于接收作业调度请求,所述作业调度请求包括:作业信息;
服务器节点选择单元,用于根据预定选择算法选择服务器集群中的服务器节点;
判断单元,用于判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息;
作业节点确定单元,用于响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息;
更新单元,用于根据所述作业信息的执行结果更新所述平均负载信息。
根据本发明的第三方面,提供一种服务器集群的负载均衡系统,所述系统包括:包含多个服务器节点的服务器集群、以及上述的服务器集群的负载均衡装置。
根据本发明的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述服务器集群的负载均衡方法的步骤。
根据本发明的第五方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述服务器集群的负载均衡方法的步骤。
由上述技术方案可知,通过根据预定选择算法为作业调度请求选择服务器节点,并判断该服务器节点的当前负载信息是否大于平均负载信息,当判断结果为大于时,将服务器集群中当前负载最小的服务器节点确定为作业节点,执行作业信息,之后根据该作业信息的执行结果更新平均负载信息,以便于为后续作业调度请求分配服务器节点,本技术方案通过根据作业信息的执行结果来更新平均负载信息,并基于平均负载信息来分配服务器节点,可以提高负载均衡器的转发效率,防止服务器节点过载,从而可以提高服务器集群的总体效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的服务器集群的负载均衡方法的流程图;
图2是根据本发明实施例的哈希环算法的原理示意图;
图3是根据本发明实施例的服务器节点负载能力测试示意图;
图4是根据本发明实施例的基于TLBSA算法的负载均衡方法的性能测试示意图;
图5是根据本发明实施例的基于TLBSA算法的负载均衡方法的另一性能测试示意图;
图6是根据本发明实施例的服务器集群的负载均衡方法的详细流程图;
图7是根据本发明实施例的服务器集群的负载均衡系统的结构框图;
图8是根据本发明实施例的服务器集群的负载均衡装置的结构框图;
图9为本发明实施例的电子设备600的系统构成的示意框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于目前的分配器未对每个请求任务(或称为作业)本身的负荷进行分析,并且,负载均衡器都是在分配作业之前通过分析服务器的负载状况来负载调度,因而导致了负载均衡器的转发效率较低,从而导致了服务器集群总体效率较低的问题。基于此,本发明实施例提供一种基于TLBSA算法(Time-based Load Balancing Scheduling Algorithm,基于时间因素的负载均衡调度算法)的服务器集群负载均衡方案,该TLBSA算法采用了哈希算法,将调度作业请求均匀分配给各个ETL(Extract-Transform-Load,用来描述将数据从来源端经过抽取(extract)、交互转换(transform)、加载(load)至目的端的过程)调度服务器节点,通过该算法可以实时了解ETL调度服务器节点的负载情况,可以提高负载均衡器的转发效率,防止服务器节点过载,从而可以提高服务器集群的总体效率。以下结合附图来详细描述本发明实施例。
为了方便描述,本发明实施例以所有作业请求链接类型和所需资源类型完全一致来描述。
图1是根据本发明实施例的服务器集群负载均衡方法的流程图,如图1所示,该方法包括:
步骤101,接收作业调度请求(即,上述的作业请求),所述作业调度请求包括:作业信息。
步骤102,根据预定选择算法选择服务器集群中的服务器节点,并判断该服务器节点的当前负载信息(例如,当前负载率)是否大于所述服务器集群的平均负载信息(例如,平均负载率)。
步骤103,响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息。
当判断结果为否时,则将步骤102选择的服务器节点确定为作业节点。
步骤104,根据所述作业信息的执行结果更新所述平均负载信息。
通过根据预定选择算法为作业调度请求选择服务器节点,并判断该服务器节点的当前负载信息是否大于平均负载信息,当判断结果为大于时,将服务器集群中当前负载最小的服务器节点确定为作业节点,执行作业信息,之后根据该作业信息的执行结果更新平均负载信息,以便于为后续作业调度请求分配服务器节点,本发明实施例通过根据作业信息的执行结果来更新平均负载信息,并基于平均负载信息来分配服务器节点,可以提高负载均衡器的转发效率,防止服务器节点过载,从而可以提高服务器集群的总体效率。
在一个实施例中,作业调度请求还包括:作业标识。
对于步骤102,预定选择算法可以是哈希环算法,则可以根据作业调度请求中的作业标识,并基于哈希环算法来选择服务器集群中的服务器节点。
图2是哈希环算法的原理示意图,如图2所示,首先将服务器节点地址信息(包括IP信息+端口号)进行哈希,映射成环上的一个节点,在作业调度请求到来时,根据该请求的指定哈希键值(hash key)将该请求同样映射到环上,之后顺时针选择最近的一个服务器节点。
在本发明实施例中,hash key可以是userid(用户标识,即,作业标识,用于唯一标识作业),该作业标识也是作业运行时的进程号。
在实际操作中,可以根据作业标识、作业名称(即,以下表1中的作业名)、作业数据日期(即,以下表1中的数据日期)等结合作为hash key,如此,可以更准确地映射到哈希环上。
需要说明的是,当环上的服务器较少时,即使哈希算法选择得当,依旧会遇到大量请求落到同一个节点的问题,为避免这样的问题,大多数一致性哈希(MurmurHash)算法的实现都引入了虚拟节点,本发明实施例不考虑该情况。
以下详细描述步骤104的更新平均负载信息的流程。
具体而言,首先根据所述作业信息的执行结果更新所述服务器集群的历史作业信息,所述历史作业信息包括:多个历史作业的执行开始时间和执行完成时间;之后,根据所述历史作业信息、服务器节点的饱和状态时间点、临界饱和状态时间点来确定服务器节点的当前负载信息;随后,根据服务器节点的当前负载信息更新所述平均负载信息。
对于服务器节点i(i为大于等于1的正整数)的当前负载信息,具体可以通过如下方式确定:根据所述历史作业信息中的每个历史作业的执行开始时间和执行完成时间、以及历史作业数量确定每个历史作业的执行量化时间;之后,根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、以及当前时间点的所属所有历史作业的执行量化时间之和确定该服务器节点i的当前负载信息。
在一个实施例中,当所述服务器节点i处于临界饱和状态和饱和状态之间时,还需要结合加持因子来确定服务器节点i的当前负载信息。即,根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、当前时间点的所属所有历史作业的执行量化时间之和、以及加持因子来确定该服务器节点i的当前负载信息,其中,所述加持因子根据所述服务器节点i的临界饱和状态和饱和状态之间的历史作业执行量化差值来确定。
之后,根据服务器集群中的每个服务器节点的当前负载信息和服务器节点的数量来确定服务器集群的平均负载信息。
由以上面描述可知,一个作业请求到来时,先通过哈希算法计算出该作业所分配的服务器节点,然后判断分配的服务器节点的负载率是否超过集群的平均负载率,如果没有超过则把该请求分配给服务器节点,如果超过则执行负载转移操作,将该请求分配到集群中负载率最小的服务器节点,当请求返回时负载衡器通过TLBSA算法计算该服务器节点的负载率和集群的平均负载率。
为了更好地理解本发明实施例,以下给出一个实例来详细描述TLBSA算法的计算过程。
在实际操作中,历史作业信息可以是ETL调度知识库的作业历史信息表etl_job_log(ETL作业脚本运行信息),如下表1所示:
字段名 字段类型 是否为空 字段描述 值含义
ETL_System char N 系统名称
ETL_Job VARchar N 作业名
Batch_No INTEGER N 当前批次号
Batch_Sum INTEGER N 总批次数
JobSessionID INTEGER N 任务会话标识
ScriptFile VARchar N 运行脚本名
TXDate DATE N 数据日期
StartTime char Y 开始运行时间
EndTime char Y 结束运行时间
ReturnCode INTEGER Y 运行返回值
Seconds INTEGER Y Null
表1
根据表etl_job_log中的StartTime和EndTime字段分别计算出服务器集群中每个作业的运行时间,将最长运行时间和最短运行时间分别赋值给如下公式(1)中的Vmax和Vmin,Vi表示作业i的运行时间,从而可以根据表etl_job_log中对每个作业的运行时间进行归一化计算,然后将每个作业i的计算结果V(由公式(1)计算得到)乘以etl_job_log中的作业总数N,得到每个作业i(i为大于等于1的正整数)的最终时间量化结果TimeSlots(i),具体如公式(2)所示:
TimeSlots(i)=V×N (2)
在本发明实施例中,服务器节点的负载能力需要预先测试,以下结合图3来描述服务器节点的饱和状态时间点、临界饱和状态时间点。
在该实例中,服务器节点的负载测试配置为:线程数1000个,时间间隔7S,并让这1000个线程的连续循环9轮来模拟9K次请求,测试结果如图3所示。
图3中横坐标表示请求次数(request times),纵坐标“实线”表示请求响应时间(response time),从图3中可以看出,当请求达到8000个左右时,服务器请求成功率会突然降低(即,响应时间变长),并且持续一段时间,这是系统软件为防止死机而采取的一种措施,也称“假死”现象,“假死”会对服务器的性能产生严重影响,因此必须避免这种现象发生。一般认为,出现假死时服务器已经处于饱和状态,从图3可以看出,这台服务器“假死”时服务器的响应时间为4980ms(对应于曲线上的4.98),记该时间为Tmax,当服务器的响应时间超过Tmax时,服务器的可用资源为零。从图3还可以看出,服务器的最小响应时间为17ms(对应于曲线上的0.17),记这个时间为Tbas,就是系统维持运转的基本负载。从图3还可以明显看出,当请求达到一定量(如,图中的3250次)时,服务器的响应时间会出现“抖动”现象,出现“抖动”的临界时间为1900ms(对应于曲线上的1.9),记这个时间为Tcrt。其中,Tmax即为上述的饱和状态时间点,Tcrt即为上述的临界饱和状态时间点。
对于服务器节点i来说,其当前负载率LoadFactor(i),表示服务器资源的利用率,通过如下公式(3)来表示:
其中,固有负载能力MaxLoad(i)表示服务器节点i的固有资源数,即,达到饱和状态时的该服务器节点上的所有作业时间量化的总和此时响应时间为Tmax;服务器节点的当前负载CurrentLoad(i)表示服务器节点i的当前所有作业时间量化总和/>加持因子BlessingFactor(i),当服务器节点i的响应时间进入临界区间[Tcrt,Tmax]时,为避免服务器节点“假死”,此时根据当前服务器节点i自身剩余资源适当地加大服务器节点i的当前负载率,从而可以起到有效保护服务器的作用,加持因子的计算公式如下公式(4)所示:
对于服务器节点i,CRTLoad(i)表示服务器节点i刚好达到临界饱和状态时间点Tcrt时的所有作业量化总和服务器节点i的临界区间对应的作业量化总和之差为λi为MaxLoad(i)-CRTLoad(i),通过如下公式(5)将etl_job_log中所有作业的对应作业量化总和之差进行归一化操作:
如果服务器节点i的MaxLoad(i)-CRTLoad(i)越大,表示服务器节点i进入临界区间后承受负载能力越强,e就越小,加持因子BlessingFactor(i)就会越小,服务器节点i的当前负载率LoadFactor(i)就越小,从而服务器节点i的剩余资源越大。这里的表示服务器节点i的临界深度。
对每台服务器节点的当前负载率LoadFactor(i)计算完成后,就可以计算服务器集群的平均负载率,通过如下公式(6)计算平均负载率AveraLoadFactor,其中,n为服务器集群中的服务器节点数量:
图4和图5是基于TLBSA算法的负载均衡方案的性能测试示意图,测试环境为3台负载均衡器、后端9台服务器,均为内存4g,硬盘500g的Ubuntu18系统。
网络测试环境为高速局域网,将随机选取法(RSM)、用加权轮询算法(WRR)以及本发明实施例的TLBSA算法的性能进行比较。测试请求作业是hadoop(一种分布式系统基础架构)导入IMP作业(一种任务),分析了请求平均响应时间(图4,横坐标为请求次数,纵坐标为响应时间)和请求成功率(图5,横坐标为请求次数,纵坐标为请求成功次数)。
如图4、图5所示,柱状图从左至右均是RSM算法、WRR算法和本发明实施例的TLBSA算法。从图4可以看出,当并发请求大于5×5K=25000个时,TLBSA算法平均响应时间小于2s,并且随着并发请求个数的增加,TLBSA算法相对其他两种算法优势比较明显。从图5可以看出,当并发个数不断增加时,TLBSA算法的请求成功率明显要比前两种算法高,其中,RSM算法成功率最低。
测试结果表明,本发明实施例的TLBSA算法不管是在请求成功率还是平均响应时间上,都优于其他两种算法。
图6是根据本发明实施例的服务器集群负载均衡方法的详细流程图,如图6所示,该流程包括:
步骤601,ELT调度作业请求;
步骤602,负载均衡器通过哈希算法选择服务器节点s1;
步骤603,判断s1负载是否大于平均负载率,如果是,则执行步骤605,否则执行步骤604;
步骤604,s1处理作业请求;
步骤605,基于TLBSA算法,分配当前最小负载服务器节点,执行作业请求;
步骤606,请求完成并返回;
步骤607,根据请求结果更新ETL调度知识库;
步骤608,周期性更新每个作业i的时间量化值TimeSlots(i),所有服务器基于TLBSA算法更新当前负载。
通过本发明实施例的TLBSA算法,可以做到“能者多劳,均衡分配”,同时也不影响负载均衡器的分配效率。
基于相似的发明构思,本发明实施例还提供一种服务器集群的负载均衡系统,如图7所示,该系统包括:包含多个服务器节点的服务器集群1和服务器集群的负载均衡装置2,其中,该服务器集群的负载均衡装置2优选地可以用于实现上述方法实施例中的流程。以下结合附图详细描述服务器集群的负载均衡装置2。
图8是服务器集群的负载均衡装置2的结构框图,如图8所示,该服务器集群的负载均衡装置2包括:请求接收单元21、服务器节点选择单元22、判断单元23、作业节点确定单元24和更新单元25,其中:
请求接收单元21,用于接收作业调度请求,所述作业调度请求包括:作业信息;
服务器节点选择单元22,用于根据预定选择算法选择服务器集群中的服务器节点;
判断单元23,用于判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息;
作业节点确定单元24,用于响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息;
更新单元25,用于根据所述作业信息的执行结果更新所述平均负载信息。
通过服务器节点选择单元22根据预定选择算法为作业调度请求选择服务器节点,判断单元23判断该服务器节点的当前负载信息是否大于平均负载信息,当判断结果为大于时,作业节点确定单元24将服务器集群中当前负载最小的服务器节点确定为作业节点,执行作业信息,之后更新单元25根据该作业信息的执行结果更新平均负载信息,以便于为后续作业调度请求分配服务器节点,本发明实施例通过根据作业信息的执行结果来更新平均负载信息,并基于平均负载信息来分配服务器节点,可以提高负载均衡器的转发效率,防止服务器节点过载,从而可以提高服务器集群的总体效率。
在实际操作中,作业节点确定单元24还用于:响应于所述判断结果为否,将选择的服务器节点确定为作业节点。
优选地,作业调度请求还包括:作业标识,所述预定选择算法为哈希环算法,上述服务器节点选择单元22具体用于:根据所述作业标识,基于所述哈希环算法选择服务器集群中的服务器节点。
具体地,上述更新单元25包括:历史信息更新模块、当前负载确定模块和平均负载更新模块,其中:
历史信息更新模块,用于根据所述作业信息的执行结果更新所述服务器集群的历史作业信息,所述历史作业信息包括:多个历史作业的执行开始时间和执行完成时间;
当前负载确定模块,用于根据所述历史作业信息、服务器节点的饱和状态时间点、临界饱和状态时间点来确定服务器节点的当前负载信息;
平均负载更新模块,用于根据服务器节点的当前负载信息更新所述平均负载信息。
具体地,上述当前负载确定模块具体包括:作业量化时间确定子模块和当前负载确定子模块,其中:
作业量化时间确定子模块,用于根据所述历史作业信息中的每个历史作业的执行开始时间和执行完成时间、以及历史作业数量确定每个历史作业的执行量化时间;
当前负载确定子模块,用于根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、以及当前时间点的所属所有历史作业的执行量化时间之和确定该服务器节点i的当前负载信息。
优选地,当所述服务器节点i处于临界饱和状态和饱和状态之间时,上述当前负载确定子模块具体用于:根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、当前时间点的所属所有历史作业的执行量化时间之和、以及加持因子确定该服务器节点i的当前负载信息,其中,所述加持因子根据所述服务器节点i的临界饱和状态和饱和状态之间的历史作业执行量化差值来确定。
上述各单元、各模块、各子模块的具体执行过程,可以参见上述方法实施例中的描述,此处不再赘述。
在实际操作中,上述各单元、各模块、各子模块可以组合设置、也可以单一设置,本发明不限于此。
本实施例还提供一种电子设备,该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照上述方法实施例进行实施及服务器集群的负载均衡装置/系统的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图9为本发明实施例的电子设备600的系统构成的示意框图。如图9所示,该电子设备600可以包括中央处理器100和存储器140;存储器140耦合到中央处理器100。值得注意的是,该图是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,服务器集群的负载均衡功能可以被集成到中央处理器100中。其中,中央处理器100可以被配置为进行如下控制:
接收作业调度请求,所述作业调度请求包括:作业信息。
根据预定选择算法选择服务器集群中的服务器节点,并判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息。
响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息。
根据所述作业信息的执行结果更新所述平均负载信息。
从上述描述可知,本申请实施例提供的电子设备,通过根据预定选择算法为作业调度请求选择服务器节点,并判断该服务器节点的当前负载信息是否大于平均负载信息,当判断结果为大于时,将服务器集群中当前负载最小的服务器节点确定为作业节点,执行作业信息,之后根据该作业信息的执行结果更新平均负载信息,以便于为后续作业调度请求分配服务器节点,本发明实施例通过根据作业信息的执行结果来更新平均负载信息,并基于平均负载信息来分配服务器节点,可以提高负载均衡器的转发效率,从而可以提高服务器集群的总体效率。
在另一个实施方式中,服务器集群的负载均衡装置/系统可以与中央处理器100分开配置,例如可以将服务器集群的负载均衡装置/系统配置为与中央处理器100连接的芯片,通过中央处理器的控制来实现服务器集群的负载均衡功能。
如图9所示,该电子设备600还可以包括:通信模块110、输入单元120、音频处理单元130、显示器160、电源170。值得注意的是,电子设备600也并不是必须要包括图9中所示的所有部件;此外,电子设备600还可以包括图9中没有示出的部件,可以参考现有技术。
如图9所示,中央处理器100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器100接收输入并控制电子设备600的各个部件的操作。
其中,存储器140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器100可执行该存储器140存储的该程序,以实现信息存储或处理等。
输入单元120向中央处理器100提供输入。该输入单元120例如为按键或触摸输入装置。电源170用于向电子设备600提供电力。显示器160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器140还可以是某种其它类型的装置。存储器140包括缓冲存储器141(有时被称为缓冲器)。存储器140可以包括应用/功能存储部142,该应用/功能存储部142用于存储应用程序和功能程序或用于通过中央处理器100执行电子设备600的操作的流程。
存储器140还可以包括数据存储部143,该数据存储部143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器140的驱动程序存储部144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块110即为经由天线111发送和接收信号的发送机/接收机110。通信模块(发送机/接收机)110耦合到中央处理器100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)110还经由音频处理器130耦合到扬声器131和麦克风132,以经由扬声器131提供音频输出,并接收来自麦克风132的音频输入,从而实现通常的电信功能。音频处理器130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器130还耦合到中央处理器100,从而使得可以通过麦克风132能够在本机上录音,且使得可以通过扬声器131来播放本机上存储的声音。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现上述服务器集群的负载均衡方法的步骤。
综上所述,本发明实施例通过哈希算法分配后端服务器节点,确保所有请求被均匀地分配到每台服务器节点;通过作业时间量化算法可以实现动态请求负载分配算法,利用内存计算所有作业时间量化结果以及服务器负荷,大大提升了计算效率,避免了在负载均衡器分配时候才对当前服务器的负载状况进行分析再进行调度的情况,同时主动防止服务器节点进入“假死”状态。通过测试表明,本发明实施例的TLBSA算法在负载均衡性能上有明显的提高,TLBSA算法在数据湖加载的ETL调度服务器集群系统中具有非常广泛的应用前景。
以上参照附图描述了本发明的优选实施方式。这些实施方式的许多特征和优点根据该详细的说明书是清楚的,因此权利要求旨在覆盖这些实施方式的落入其真实精神和范围内的所有这些特征和优点。此外,由于本领域的技术人员容易想到很多修改和改变,因此不是要将本发明的实施方式限于所例示和描述的精确结构和操作,而是可以涵盖落入其范围内的所有合适修改和等同物。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (11)

1.一种服务器集群的负载均衡方法,其特征在于,所述方法包括:
接收作业调度请求,所述作业调度请求包括:作业信息;
根据预定选择算法选择服务器集群中的服务器节点,并判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息;
响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息;
根据所述作业信息的执行结果更新所述平均负载信息,以为后续作业调度请求分配服务器节点;
其中,根据所述作业信息的执行结果更新所述平均负载信息包括:根据所述作业信息的执行结果更新所述服务器集群的历史作业信息,所述历史作业信息包括:多个历史作业的执行开始时间和执行完成时间;根据所述历史作业信息、服务器节点的饱和状态时间点、临界饱和状态时间点来确定服务器节点的当前负载信息;根据服务器节点的当前负载信息更新所述平均负载信息;
其中,根据所述历史作业信息、服务器节点的饱和状态时间点、临界饱和状态时间点来确定服务器节点i的当前负载信息包括:根据所述历史作业信息中的每个历史作业的执行开始时间和执行完成时间、以及历史作业数量确定每个历史作业的执行量化时间;根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、以及当前时间点的所属所有历史作业的执行量化时间之和确定该服务器节点i的当前负载信息。
2.根据权利要求1所述的方法,其特征在于,所述作业调度请求还包括:作业标识,所述预定选择算法为哈希环算法,根据预定选择算法选择服务器集群中的服务器节点包括:
根据所述作业标识,基于所述哈希环算法选择服务器集群中的服务器节点。
3.根据权利要求1所述的方法,其特征在于,当所述服务器节点i处于临界饱和状态和饱和状态之间时,根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、以及当前时间点的所属所有历史作业的执行量化时间之和确定该服务器节点i的当前负载信息包括:
根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、当前时间点的所属所有历史作业的执行量化时间之和、以及加持因子确定该服务器节点i的当前负载信息,
其中,所述加持因子根据所述服务器节点i的临界饱和状态和饱和状态之间的历史作业执行量化差值来确定。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述判断结果为否,将选择的服务器节点确定为作业节点。
5.一种服务器集群的负载均衡装置,其特征在于,所述装置包括:
请求接收单元,用于接收作业调度请求,所述作业调度请求包括:作业信息;
服务器节点选择单元,用于根据预定选择算法选择服务器集群中的服务器节点;
判断单元,用于判断该服务器节点的当前负载信息是否大于所述服务器集群的平均负载信息;
作业节点确定单元,用于响应于判断结果为是,将所述服务器集群中当前负载最小的服务器节点确定为作业节点,以执行所述作业信息;
更新单元,用于根据所述作业信息的执行结果更新所述平均负载信息,以为后续作业调度请求分配服务器节点;
其中,所述更新单元包括:
历史信息更新模块,用于根据所述作业信息的执行结果更新所述服务器集群的历史作业信息,所述历史作业信息包括:多个历史作业的执行开始时间和执行完成时间;
当前负载确定模块,用于根据所述历史作业信息、服务器节点的饱和状态时间点、临界饱和状态时间点来确定服务器节点的当前负载信息;
平均负载更新模块,用于根据服务器节点的当前负载信息更新所述平均负载信息;
其中,所述当前负载确定模块包括:
作业量化时间确定子模块,用于根据所述历史作业信息中的每个历史作业的执行开始时间和执行完成时间、以及历史作业数量确定每个历史作业的执行量化时间;
当前负载确定子模块,用于根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、以及当前时间点的所属所有历史作业的执行量化时间之和确定该服务器节点i的当前负载信息。
6.根据权利要求5所述的装置,其特征在于,所述作业调度请求还包括:作业标识,所述预定选择算法为哈希环算法,所述服务器节点选择单元具体用于:
根据所述作业标识,基于所述哈希环算法选择服务器集群中的服务器节点。
7.根据权利要求5所述的装置,其特征在于,当所述服务器节点i处于临界饱和状态和饱和状态之间时,所述当前负载确定子模块具体用于:
根据所述服务器节点i达到饱和状态时间点时的所属所有历史作业的执行量化时间之和、当前时间点的所属所有历史作业的执行量化时间之和、以及加持因子确定该服务器节点i的当前负载信息,
其中,所述加持因子根据所述服务器节点i的临界饱和状态和饱和状态之间的历史作业执行量化差值来确定。
8.根据权利要求5所述的装置,其特征在于,所述作业节点确定单元还用于:
响应于所述判断结果为否,将选择的服务器节点确定为作业节点。
9.一种服务器集群的负载均衡系统,其特征在于,所述系统包括:包含多个服务器节点的服务器集群、以及权利要求5至7中任一项所述的服务器集群的负载均衡装置。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至4中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至4中任一项所述方法的步骤。
CN202010487960.0A 2020-06-02 2020-06-02 服务器集群的负载均衡方法、装置及系统 Active CN111694663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010487960.0A CN111694663B (zh) 2020-06-02 2020-06-02 服务器集群的负载均衡方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010487960.0A CN111694663B (zh) 2020-06-02 2020-06-02 服务器集群的负载均衡方法、装置及系统

Publications (2)

Publication Number Publication Date
CN111694663A CN111694663A (zh) 2020-09-22
CN111694663B true CN111694663B (zh) 2023-11-03

Family

ID=72479246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010487960.0A Active CN111694663B (zh) 2020-06-02 2020-06-02 服务器集群的负载均衡方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111694663B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112380024B (zh) * 2021-01-18 2021-05-25 天道金科股份有限公司 一种基于分布式计数的线程调度方法
CN112835717A (zh) * 2021-02-05 2021-05-25 远光软件股份有限公司 一种用于集群的集成应用处理方法和装置
CN112925721A (zh) * 2021-03-29 2021-06-08 建信金融科技有限责任公司 一种分布式系统的测试方法及装置
CN113347249B (zh) * 2021-05-31 2022-11-29 中国工商银行股份有限公司 一种作业加载方法、装置及设备
CN115604273A (zh) * 2021-06-28 2023-01-13 伊姆西Ip控股有限责任公司(Us) 用于管理计算系统的方法、设备和程序产品
CN113840007B (zh) * 2021-09-28 2022-10-18 中国工商银行股份有限公司 负载均衡方法及装置
CN116055499A (zh) * 2023-04-03 2023-05-02 成都四方伟业软件股份有限公司 基于redis的集群任务智能化调度方法、设备、介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798517A (zh) * 2019-10-22 2020-02-14 雅马哈发动机(厦门)信息系统有限公司 去中心化集群负载均衡方法、系统、移动终端及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069903B2 (en) * 2013-04-16 2018-09-04 Amazon Technologies, Inc. Distributed load balancer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110798517A (zh) * 2019-10-22 2020-02-14 雅马哈发动机(厦门)信息系统有限公司 去中心化集群负载均衡方法、系统、移动终端及存储介质

Also Published As

Publication number Publication date
CN111694663A (zh) 2020-09-22

Similar Documents

Publication Publication Date Title
CN111694663B (zh) 服务器集群的负载均衡方法、装置及系统
CN109218355B (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
US11888756B2 (en) Software load balancer to maximize utilization
CN108628674A (zh) 基于云平台的任务调度方法、云平台及计算机存储介质
CN107734558A (zh) 一种基于多服务器的移动边缘计算控制及资源调度方法
CN103401947A (zh) 多个服务器的任务分配方法和装置
CN109246229A (zh) 一种分发资源获取请求的方法和装置
CN104796422A (zh) 一种在线客服均衡分配的方法及装置
CN111131486B (zh) 执行节点的负载调节方法、装置、服务器及存储介质
CN109327540A (zh) 电子装置、服务器负载均衡方法及存储介质
CN108551489A (zh) 一种应用服务器负载均衡方法、系统、装置及存储介质
CN108055701B (zh) 一种资源调度方法及基站
CN106998340B (zh) 一种板卡资源的负载均衡方法及装置
CN112888005B (zh) 一种面向mec的分布式业务调度方法
CN108647092A (zh) 云存储方法、云平台及计算机可读存储介质
CN111796770B (zh) 日志路由负载均衡实现方法及装置
CN113055479A (zh) 分布式服务集群负载自适应处理方法、装置及系统
CN111078391A (zh) 一种业务请求处理方法、装置及设备
CN109960586A (zh) 一种服务器状态可感知的四层负载均衡器及均衡方法
CN110167031B (zh) 一种面向集中式基站的资源分配方法、设备及存储介质
CN111796935B (zh) 调用日志信息的消费实例分配方法及系统
CN110515728A (zh) 服务器调度方法、装置、电子设备及机器可读存储介质
CN109600402A (zh) 服务器负载均衡方法及装置、存储介质、服务器、服务系统
CN102647362B (zh) 一种多控制器存储系统负载均衡的方法
CN114024968B (zh) 一种基于中间设备的报文发送方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant