CN109995818A - 一种服务器负载均衡的方法及装置 - Google Patents
一种服务器负载均衡的方法及装置 Download PDFInfo
- Publication number
- CN109995818A CN109995818A CN201711485124.3A CN201711485124A CN109995818A CN 109995818 A CN109995818 A CN 109995818A CN 201711485124 A CN201711485124 A CN 201711485124A CN 109995818 A CN109995818 A CN 109995818A
- Authority
- CN
- China
- Prior art keywords
- server
- load
- value
- weight
- servers
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000011156 evaluation Methods 0.000 claims abstract description 97
- 238000012937 correction Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 28
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种服务器负载均衡的方法及装置。所述方法包括:根据获取到的服务器集群中多个服务器在预设周期内的性能评估值和负载评估值,确定每个服务器的负载状态,并根据服务器的负载状态相应地调整服务器的权值,进而根据调整后服务器的权值和服务器的连接数进行负载均衡。本发明实施例中,通过评估服务器的负载,以及服务器的性能差异来判断服务器的负载状态,能够更加准确地确定负载状态;进一步地,通过确定出的负载状态,灵活地调整每个服务器的权值,避免服务器的权值无法动态调整的问题,从而提高负载均衡的合理性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种服务器负载均衡的方法及装置。
背景技术
随着互联网技术的迅速发展,互联网用户急剧增加,单个服务器的负载能力已经无法满足日益增加的用户访问数量和访问流量,因此,通常需要采用多个服务器构成服务器集群共同分担系统负载。然而,服务器集群中各个服务器的性能不同,所能分担的系统负载量也不同,这就需要采用负载均衡方法来控制负载的分配,使得服务器集群的负载分配尽量达到均衡。
现有技术中负载均衡算法主要以加权最小连接数(Weighted LeastConnections,WLC)算法为主,WLC算法是在最小连接(Least Connections,LC)算法的基础上,使用权值来描述服务器的性能。当负载均衡器收到新的任务请求时,通过选择服务器集群中服务器的连接数与权值之比的比值最小的服务器来响应任务请求。这种算法虽然适用于服务器性能不同的情况,但是仍然存在以下不足:(1)对服务器权值的设置不能准确地反映服务器的真实处理能力。由于权值是事先根据服务器节点的配置情况和管理员的经验设定的,随着运行时间的增加,有些服务器负载已经很重,但仍不断收到连接请求,而有些服务器却处于空闲状态,使得这些事先设定的权值已不再能准确反映出服务器的真实处理能力,从而造成各个服务器之间负载不均衡的情况,影响服务器集群性能的发挥;(2)仅以连接数来表示服务器负载,并不能很准确的表示每个服务器的实时负载情况。例如在某个服务中,假设两个服务器在某一时刻保持着相同的连接数,但是一个服务器处理的是多媒体视频的传送请求,而另一个服务器只是负责处理传送纯文本的网页信息。由于处理不同的请求所耗费的时间和系统资源是不同的,两个服务器此时的负载显然是存在差异的,因此仅以连接数来衡量负载是不全面的。
基于此,目前亟需一种服务器负载均衡的方法,用于解决现有技术中WLC算法无法准确反映服务器的处理能力和实时负载的问题。
发明内容
本发明实施例提供一种服务器负载均衡的方法及装置,以解决现有技术中WLC算法无法准确反映服务器的处理能力和实时负载的技术问题。
本发明实施例提供一种服务器负载均衡的方法,所述方法包括:
获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值;
针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值;所述第一服务器对应的权值修正变量为所述第一服务器在所述预设周期内的权值变化量;所述第一服务器为所述多个服务器中任意一个服务器;所述第一服务器的负载理想值根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到;
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
可选地,所述负载评估值通过以下方式得到:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的中央处理器(Central Processing Unit,CPU)使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘输入/输出端口(input/output,I/O)使用率对应的系数;i为大于等于1的整数且,λu、λm、λp、λb、λd均大于等于0。
可选地,针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态,包括:
若所述第一服务器的负载评估值大于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为高负载状态;
若所述第一服务器的负载评估值小于等于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为低负载状态;
根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值,包括:
若所述第一服务器的负载状态为高负载状态,则将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值;
若所述第一服务器的负载状态为低负载状态,则将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
可选地,所述权值修正变量通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
可选地,根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡,包括:
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;所述第一比例值为服务器的连接数与服务器调整后的权值的比值;
将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
本发明实施例提供一种服务器负载均衡的装置,所述装置包括:
获取单元,用于获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值;
处理单元,用于针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;以及根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值;所述第一服务器对应的权值修正变量为所述第一服务器在所述预设周期内的权值变化量;所述第一服务器为所述多个服务器中任意一个服务器;所述第一服务器的负载理想值根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到;
所述处理单元,还用于根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
可选地,所述负载评估值通过以下方式得到:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数且,λu、λm、λp、λb、λd均大于等于0。
可选地,所述处理单元具体用于:
若所述第一服务器的负载评估值大于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为高负载状态,并将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值;
若所述第一服务器的负载评估值小于等于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为低负载状态,并将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
可选地,所述权值修正变量通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
可选地,所述处理单元具体用于:
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;所述第一比例值为服务器的连接数与服务器调整后的权值的比值;
将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
本发明实施例中,根据获取到的服务器集群中多个服务器在预设周期内的性能评估值和负载评估值,确定每个服务器的负载状态,并根据服务器的负载状态相应地调整服务器的权值,进而根据调整后服务器的权值和服务器的连接数进行负载均衡。本发明实施例中,一方面,通过比较服务器的负载评估值与负载理想值,确定服务器的负载状态,相比于现有技术中仅以连接数表示服务器的负载状态而言,本发明通过评估服务器的负载,以及服务器的性能差异来判断服务器的负载状态,能够更加准确地确定负载状态;另一方面,通过确定出的负载状态,灵活地调整每个服务器的权值,避免服务器的权值无法动态调整的问题,从而提高负载均衡的合理性;进一步地,本发明能够周期性的轮询上述流程,从而能够提高负载均衡的效果,增强服务器集群的可靠性和稳定性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种负载均衡系统架构示意图;
图2为本发明实施例提供的一种服务器负载均衡的方法所对应的流程示意图;
图3为本发明实施例提供的一种负载均衡整体的实现过程流程示意图;
图4本发明实施例中所涉及到的整体性流程的示意图;
图5为本发明实施例提供的一种服务器负载均衡的装置对应的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性示出了本发明实施例适用的一种负载均衡系统架构示意图,如图1所示,本发明实施例适用的负载均衡系统架构可包括:客户端设备101、负载均衡器102、服务器集群103;如图1中所示出的,服务器集群103包括服务器1031、服务器1032、服务器1033。
具体来说,客户端设备101可以通过网络发送请求消息,并接收服务器集群103中任意一个服务器通过网络发送的响应信息。负载均衡器102实时监测服务器集群103中各个服务器的运行状态参数,并在接收到客户端设备101发送的请求消息后,根据各个服务器的运行状态参数,确定出目标服务器,并将请求消息分配给目标服务器。
本发明实施例中,客户端设备可以为多种类型的设备,例如笔记本电脑、智能手机、平板电脑、智能电视等。
基于图1所示的系统架构,图2为本发明实施例提供的一种服务器负载均衡的方法所对应的流程示意图,如图2所示,具体包括如下步骤:
步骤201,获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值。
步骤202,针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;所述第一服务器为所述多个服务器中任意一个服务器。
步骤203,根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值。
步骤204,根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
本发明实施例中,一方面,通过比较服务器的负载评估值与负载理想值,确定服务器的负载状态,相比于现有技术中仅以连接数表示服务器的负载状态而言,本发明实施例通过评估服务器的负载,以及服务器的性能差异来判断服务器的负载状态,能够更加准确地确定负载状态;另一方面,通过确定出的负载状态,灵活地调整每个服务器的权值,避免服务器的权值无法动态调整的问题,从而提高负载均衡的合理性;进一步地,本发明实施例能够周期性的轮询上述流程,从而能够提高负载均衡的效果,增强服务器集群的可靠性和稳定性。
具体来说,步骤201中,预设周期为本领域技术人员根据经验和实际情况预先设置的时间段,具体不做限定。
本发明实施例中,服务器集群中的多个服务器往往是异构的,每个服务器的硬件配置区别很大,导致服务器的处理能力差别很大,因此,需要通过定义服务器的性能来区分不同服务器的处理能力,如此,在进行负载均衡时,能够根据不同服务器的性能区别对待,以达到性能高的服务器多分配负载,性能低的服务器少分配负载,从而实现负载均衡。服务器的性能评估值的计算方式有多种,一种可能的实现方式为,根据不同服务器运行相同任务所需的时间,确定服务器的性能评估值,采用这种方法,针对性较强,能够提高服务器的性能评估值的准确性。
另一种可能的实现方式为,根据服务器的硬件配置参数,确定服务器的性能评估值。由于服务器中不同的硬件参数对性能的影响也不同,因此,本领域技术人员可以根据经验和实际情况选择硬件配置参数,例如,可以根据服务器的CPU频率、内存容量、磁盘I/O速率、网络吞吐量等硬件配置参数作为评价指标来确定服务器的性能评估值,具体的计算方式如下:
Q(Si)=kc·Q(Ci)+km·Q(Mi)+kd·Q(Di)+kn·Q(Ni)
其中,Si为第i个服务器;Q(Si)为第i个服务器的性能评估值;kc为CPU频率对应的权值;Q(Ci)为第i个服务器的CPU频率;km为内存容量对应的权值;Q(Mi)为第i个服务器的内存容量;kd为磁盘I/O速率对应的权值;Q(Di)为第i个服务器的磁盘I/O速率;kn为网络吞吐量对应的权值;Q(Ni)为第i个服务器的网络吞吐量;i为大于等于1的整数。
进一步地,kc、km、kd、kn表示各个硬件配置参数对服务器的性能的影响程度,本领域技术人员可以根据经验和实际情况进行取值,例如,考虑到kc、km、kd、kn的取值与服务器提供的服务有关,当服务器提供的服务为HTTP服务时,主要依赖于CPU频率和内存容量,因此,可适当提高的kc、km取值;当服务器提供的服务为FTP服务时,主要依赖于磁盘I/O速率和网络吞吐量,因此,可适当提高kd、kn的取值,从而使得服务器的性能评估值的结果根据准确。
更进一步地,可对Q(Ci)、Q(Mi)、Q(Di)、Q(Ni)进行归一化处理,例如,设定Q(Ci)为第i个服务器的CPU频率与多个服务器中最大的CPU频率的比值,从而能够便于数据处理,提高数据处理的速度。
本发明实施例中,由于服务器集群中每个服务器的性能不同,而且不同的网络服务占有各个资源的程度也不同,因此,服务器的负载是随着客户端设备的请求消息的类型的不同而变化的。服务器的负载评估值的计算方式有多种,例如,可以根据服务器的CPU使用率确定服务器的负载;或者,也可以根据对服务器的性能影响较大的硬件配置参数来确定服务器的负载评估值,例如,可以综合考虑器的CPU频率、内存容量、连接数使用率、磁盘I/O速率、网络吞吐量等评价指标来确定服务器的负载评估值,一个示例中,可以通过以下方式计算得到服务器的负载评估值:
L(Si)=λu·U(Si)+λm·M(Si)+λp·P(Si)+λb·B(Si)+λdD(Si),且,λu+λm+λp+λb+λd=1;
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数。
另一个示例中,也可以通过以下方式计算得到服务器的负载评估值:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数,且,λu、λm、λp、λb、λd均大于等于0。
采用这种计算方式,一方面,通过乘积平均法来确定服务器的负载,能够更加清晰地描述不同的网络服务对评价指标的影响,若某项网络服务对其中一个或多个评价指标的影响较大,则可相应提高对应的系数;另一方面,所有系数之和不再有等于1的限制,从而能够使得服务器的负载评估值更加客观、准确。
步骤202中,第一服务器的负载理想值的确定方式有多种,例如,可以是本领域技术人员根据经验和实际情况确定的;或者,也可以是根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到,具体可以通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器的负载理想值;Q(Si)为第i个服务器的性能评估值;∑Q(Si)为所述服务器集群中多个服务器的性能评估值之和;∑L(Si)为所述服务器集群中多个服务器的负载评估值之和;i为大于等于1的整数。
进一步地,若第一服务器的负载评估值大于第一服务器的负载理想值,则确定第一服务器的负载状态为高负载状态;若第一服务器的负载评估值小于等于第一服务器的负载理想值,则确定第一服务器的负载状态为低负载状态。
步骤203中,考虑到随着服务器运行时间的增加,有些服务器的负载已经很重,但仍不断收到连接请求,而有些服务器却处于空闲状态,因此,需要对服务器的权值进行调整,从而使得调整后的权值能够准确反映出服务器的真实处理能力。本发明实施例提供一种第一服务器的权值的调整方法,具体包括如下步骤:
步骤301,确定第一服务器的负载状态。
其中,负载状态可以根据上述所描述的内容确定,具体包括高负载状态和低负载状态。
步骤302,判断第一服务器的负载是否为高负载状态,若为高负载状态,则执行步骤303;若为低负载状态,则执行步骤304。
步骤303,将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
具体来说,服务器的初始权值为在预设周期内能够初步反映服务器的负载状态的系数,初始权值越大,说明在预设周期内,服务器的负载越大。第一服务器的初始权值的确定方式有多种,一种可能的实现方式为,根据第一服务器的性能评估值确定第一服务器的初始权值,可以通过一下方式得到:
其中,Si为第i个服务器;W(Si)为第i个服务器在所述预设周期内的初始权值;Q(Si)为第i个服务器的性能评估值;∑Q(Si)为所述服务器集群中多个服务器的性能评估值之和。
在其他可能的实现方式中,第一服务器的初始权值可以为本领域技术人员根据经验和实际情况预先设定的,具体不做限定。
服务器对应的权值修正变量为第一服务器在预设周期内的权值变化量,该权值修正变量的确定方式有多种,例如,可以是由本领域技术人员根据经验和实际情况预先设定的;或者,也可以是根据服务器的连接数和服务器的初始权值确定,具体计算方式如下:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
步骤304,将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
需要说明的是,上述步骤301至步骤304所描述的方法仅为调整服务器的权值的一种示例,本领域技术人员也可以采用其它方式调整服务器的权值,例如,通过比例系数调整服务器的权值,具体不做限定。
步骤204中,具体实施时,可以根据服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;其中,第一比例值为服务器的连接数与服务器调整后的权值的比值。
进一步地,将第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器,即目标服务器满足以下条件:
其中,Sm为目标服务器;Si为第i个服务器;C(Sm)为目标服务器的连接数;W′(Sm)为目标服务器调整后的权值;C(Si)为第i个服务器的连接数;W′(Si)为第i个服务器调整后的权值;i为大于等于1的整数,m为大于等于1且小于等于i的整数。
基于上述所描述的内容,图3为本发明实施例提供的一种负载均衡整体的实现过程流程示意图,具体可结合上述描述,此处不再赘述。
为了更清楚地介绍上述图3中示出的实现过程,下面结合图4,对本发明实施例中所涉及到的流程进行整体性说明。如图4所示,可以包括以下步骤:
步骤401,获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值。
步骤402,确定服务器集群中多个服务器的初始权值。
步骤403,确定第一服务器的负载理想值。
步骤404,确定第一服务器对应的权值修正变量。
步骤405,根据第一服务器的负载评估值和第一服务器的负载理想值,确定第一服务器的负载状态。
步骤406,第一服务器的负载状态是否为高负载状态,若为高负载状态,则执行步骤407;若为低负载状态,则执行步骤408。
步骤407,将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
步骤408,将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
步骤409,根据服务器集群中多个服务器调整后的权值和多个服务器的连接数,获取每个服务器对应的第一比例值。
步骤410,将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
需要说明的是,上述步骤编号仅为一种执行流程的示例性表示,本申请对各个步骤的先后顺序不做具体限定,例如,上述步骤403和步骤404,也可以是先确定第一服务器对应的权值修正变量,再确定第一服务器的负载理想值。
基于同样的发明构思,图5示例性示出了本发明实施例提供的一种服务器负载均衡的装置对应的结构示意图,如图5所示,包括获取单元501、处理单元502;其中,
获取单元501,用于获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值;
处理单元502,用于针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;以及根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值;所述第一服务器为所述多个服务器中任意一个服务器;所述第一服务器的负载理想值根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到;所述第一服务器对应的权值修正变量为所述第一服务器在所述预设周期内的权值变化量;
所述处理单元502,还用于根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
可选地,所述负载评估值通过以下方式得到:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数且,λu、λm、λp、λb、λd均大于等于0。
可选地,所述处理单元502具体用于:
若所述第一服务器的负载评估值大于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为高负载状态,并将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值;
若所述第一服务器的负载评估值小于等于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为低负载状态,并将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
可选地,所述权值修正变量通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
可选地,所述处理单元502具体用于:
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;所述第一比例值为服务器的连接数与服务器调整后的权值的比值;
将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
本发明实施例中,根据获取到的服务器集群中多个服务器在预设周期内的性能评估值和负载评估值,确定每个服务器的负载状态,并根据服务器的负载状态相应地调整服务器的权值,进而根据调整后服务器的权值和服务器的连接数进行负载均衡。本发明实施例中,一方面,通过比较服务器的负载评估值与负载理想值,确定服务器的负载状态,相比于现有技术中仅以连接数表示服务器的负载状态而言,本发明实施例通过评估服务器的负载,以及服务器的性能差异来判断服务器的负载状态,能够更加准确地确定负载状态;另一方面,通过确定出的负载状态,灵活地调整每个服务器的权值,避免服务器的权值无法动态调整的问题,从而提高负载均衡的合理性;进一步地,本发明实施例能够周期性的轮询上述流程,从而能够提高负载均衡的效果,增强服务器集群的可靠性和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种服务器负载均衡的方法,其特征在于,所述方法包括:
获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值;
针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;以及根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值;所述第一服务器对应的权值修正变量为所述第一服务器在所述预设周期内的权值变化量;所述第一服务器为所述多个服务器中任意一个服务器;所述第一服务器的负载理想值根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到;
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
2.根据权利要求1所述的方法,其特征在于,所述负载评估值通过以下方式得到:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的中央处理器CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘输入/输出端口I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数且,λu、λm、λp、λb、λd均大于等于0。
3.根据权利要求1所述的方法,其特征在于,针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态,包括:
若所述第一服务器的负载评估值大于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为高负载状态;
若所述第一服务器的负载评估值小于等于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为低负载状态;
根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值,包括:
若所述第一服务器的负载状态为高负载状态,则将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值;
若所述第一服务器的负载状态为低负载状态,则将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
4.根据权利要求3所述的方法,其特征在于,所述权值修正变量通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
5.根据权利要求1至3中任一项所述的方法,其特征在于,根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡,包括:
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;所述第一比例值为服务器的连接数与服务器调整后的权值的比值;
将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
6.一种服务器负载均衡的装置,其特征在于,所述装置包括:
获取单元,用于获取服务器集群中多个服务器在预设周期内的性能评估值和负载评估值;
处理单元,用于针对于第一服务器,根据所述第一服务器的负载评估值和所述第一服务器的负载理想值,确定所述第一服务器的负载状态;以及根据所述第一服务器的负载状态和所述第一服务器对应的权值修正变量,调整所述第一服务器的权值;所述第一服务器对应的权值修正变量为所述第一服务器在所述预设周期内的权值变化量;所述第一服务器为所述多个服务器中任意一个服务器;所述第一服务器的负载理想值根据所述第一服务器的性能评估值、所述多个服务器的性能评估值和所述多个服务器的负载评估值得到;
所述处理单元,还用于根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数进行负载均衡。
7.根据权利要求6所述的装置,其特征在于,所述负载评估值通过以下方式得到:
L(Si)=1-(1-λuU(Si))(1-λmM(Si))(1-λpP(Si))(1-λbB(Si))(1-λdD(Si))
且,0≤(1-λjJ(Si))≤1;j={u,m,p,b,d},J={U,M,P,B,D};
其中,Si为第i个服务器;L(Si)为第i个服务器的负载评估值;U(Si)为第i个服务器的CPU使用率;λu为服务器的CPU使用率对应的系数;M(Si)为第i个服务器的内存使用率;λm为服务器的内存使用率对应的系数;P(Si)为第i个服务器的连接数使用率;λp为服务器的连接数使用率对应的系数;B(Si)为第i个服务器的网络带宽使用率;λb为服务器的网络带宽使用率对应的系数;D(Si)为第i个服务器的磁盘I/O使用率;λd为服务器的磁盘I/O使用率对应的系数;i为大于等于1的整数且,λu、λm、λp、λb、λd均大于等于0。
8.根据权利要求6所述的装置,其特征在于,所述处理单元具体用于:
若所述第一服务器的负载评估值大于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为高负载状态,并将所述第一服务器的初始权值减去所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值;
若所述第一服务器的负载评估值小于等于所述第一服务器的负载理想值,则确定所述第一服务器的负载状态为低负载状态,并将所述第一服务器的初始权值加上所述第一服务器对应的权值修正变量后得到的值作为所述第一服务器的权值。
9.根据权利要求8所述的装置,其特征在于,所述权值修正变量通过以下方式得到:
其中,Si为第i个服务器;为第i个服务器对应的权值修正变量;C(Si)为第i个服务器的连接数;W(Si)为第i个服务器在所述预设周期内的初始权值;n为所述服务器集群中的服务器数量;n为大于等于1的整数,i为大于等于1且小于等于n的整数。
10.根据权利要求6至8中任一项所述的装置,其特征在于,所述处理单元具体用于:
根据所述服务器集群中多个服务器调整后的权值和所述多个服务器的连接数,获取每个服务器对应的第一比例值;所述第一比例值为服务器的连接数与服务器调整后的权值的比值;
将所述第一比例值最小的服务器作为目标服务器,并将连接请求切换到所述目标服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711485124.3A CN109995818A (zh) | 2017-12-29 | 2017-12-29 | 一种服务器负载均衡的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711485124.3A CN109995818A (zh) | 2017-12-29 | 2017-12-29 | 一种服务器负载均衡的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109995818A true CN109995818A (zh) | 2019-07-09 |
Family
ID=67110364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711485124.3A Pending CN109995818A (zh) | 2017-12-29 | 2017-12-29 | 一种服务器负载均衡的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995818A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090394A (zh) * | 2022-01-19 | 2022-02-25 | 山东卓朗检测股份有限公司 | 分布式服务器集群负载异常分析方法 |
CN115174583A (zh) * | 2022-06-28 | 2022-10-11 | 福州大学 | 基于可编程数据平面的服务器负载均衡方法 |
CN117319406A (zh) * | 2023-11-23 | 2023-12-29 | 北京华耀科技有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN118536141A (zh) * | 2024-07-26 | 2024-08-23 | 江苏华存电子科技有限公司 | 用于存储器数据恢复的加密控制方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182742A (ja) * | 2003-12-18 | 2005-07-07 | Korea Electronics Telecommun | 動的負荷分散システム及びその方法 |
CN102195886A (zh) * | 2011-05-30 | 2011-09-21 | 兰雨晴 | 一种云平台上的服务调度方法 |
CN103441906A (zh) * | 2013-09-25 | 2013-12-11 | 哈尔滨工业大学 | 基于自主计算的代理缓存集群异常检测系统 |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN106161661A (zh) * | 2016-10-09 | 2016-11-23 | 郑州云海信息技术有限公司 | 一种分布式负载均衡调度的方法及装置 |
KR20160136862A (ko) * | 2015-05-21 | 2016-11-30 | 한국전력공사 | 전력계통 동적 부하 조절 장치 및 그 방법 |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
CN107295048A (zh) * | 2016-04-01 | 2017-10-24 | 百度在线网络技术(北京)有限公司 | 负载均衡方法及装置 |
-
2017
- 2017-12-29 CN CN201711485124.3A patent/CN109995818A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005182742A (ja) * | 2003-12-18 | 2005-07-07 | Korea Electronics Telecommun | 動的負荷分散システム及びその方法 |
CN102195886A (zh) * | 2011-05-30 | 2011-09-21 | 兰雨晴 | 一种云平台上的服务调度方法 |
CN103441906A (zh) * | 2013-09-25 | 2013-12-11 | 哈尔滨工业大学 | 基于自主计算的代理缓存集群异常检测系统 |
KR20160136862A (ko) * | 2015-05-21 | 2016-11-30 | 한국전력공사 | 전력계통 동적 부하 조절 장치 및 그 방법 |
CN105282259A (zh) * | 2015-11-13 | 2016-01-27 | 深圳联友科技有限公司 | 用于后台集群服务的负载均衡分配方法、代理及系统 |
CN107295048A (zh) * | 2016-04-01 | 2017-10-24 | 百度在线网络技术(北京)有限公司 | 负载均衡方法及装置 |
CN106161661A (zh) * | 2016-10-09 | 2016-11-23 | 郑州云海信息技术有限公司 | 一种分布式负载均衡调度的方法及装置 |
CN107124472A (zh) * | 2017-06-26 | 2017-09-01 | 杭州迪普科技股份有限公司 | 负载均衡方法及装置、计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
王利萍: ""基于Nginx服务器集群负载均衡技术的研究与改进"", 《中国优秀硕士学位论文全文数据库》 * |
王红斌: ""Web服务器集群系统的自适应负载均衡调度策略研究"", 《中国博士学位论文全文数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090394A (zh) * | 2022-01-19 | 2022-02-25 | 山东卓朗检测股份有限公司 | 分布式服务器集群负载异常分析方法 |
CN114090394B (zh) * | 2022-01-19 | 2022-04-22 | 山东卓朗检测股份有限公司 | 分布式服务器集群负载异常分析方法 |
CN115174583A (zh) * | 2022-06-28 | 2022-10-11 | 福州大学 | 基于可编程数据平面的服务器负载均衡方法 |
CN115174583B (zh) * | 2022-06-28 | 2024-03-29 | 福州大学 | 基于可编程数据平面的服务器负载均衡方法 |
CN117319406A (zh) * | 2023-11-23 | 2023-12-29 | 北京华耀科技有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN117319406B (zh) * | 2023-11-23 | 2024-03-12 | 北京华耀科技有限公司 | 负载均衡方法、装置、设备及存储介质 |
CN118536141A (zh) * | 2024-07-26 | 2024-08-23 | 江苏华存电子科技有限公司 | 用于存储器数据恢复的加密控制方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8392558B1 (en) | System and method for determining overload state for service requests | |
CN109995818A (zh) | 一种服务器负载均衡的方法及装置 | |
CN104168332A (zh) | 高性能计算中负载均衡与节点状态监控方法 | |
US10044797B2 (en) | Load balancing of distributed services | |
CN109218355A (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN111131486B (zh) | 执行节点的负载调节方法、装置、服务器及存储介质 | |
Ahn et al. | Competitive partial computation offloading for maximizing energy efficiency in mobile cloud computing | |
US20110153828A1 (en) | Load balancing apparatus and method for regulating load using the same | |
US11451623B2 (en) | Systems and methods for dynamic load balancing based on server utilization and content popularity | |
CN111538567B (zh) | 一种边缘设备上虚拟网络功能链的部署方法和设备 | |
CN115604278A (zh) | 动态负载均衡方法和系统 | |
CN111245924A (zh) | 负载均衡方法及装置、计算机存储介质 | |
US20120198074A1 (en) | Load balancing method | |
CN108228346A (zh) | 服务系统及其控制方法 | |
CN116382892B (zh) | 一种基于多云融合以及云服务的负载均衡方法及装置 | |
US8380850B1 (en) | System and method for damping overload state oscillations | |
Zhu et al. | Load balancing algorithm for web server based on weighted minimal connections | |
CN108307206A (zh) | 一种直播编码任务的分配方法及装置 | |
CN109120480B (zh) | 基于数据中心的链路优化方法及装置 | |
CN113377539A (zh) | 实现负载均衡的处理方法及装置 | |
Li et al. | A dynamic load balancing algorithm based on consistent hash | |
Tekinerdogan et al. | Performance isolation in cloud-based big data architectures | |
CN114513423A (zh) | 一种带宽调节方法、装置、设备及存储介质 | |
CN112787948A (zh) | 一种流量负载均衡方法及相关装置 | |
CN113268339A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190709 |