CN104580538B - 一种提高Nginx服务器负载均衡效率的方法 - Google Patents
一种提高Nginx服务器负载均衡效率的方法 Download PDFInfo
- Publication number
- CN104580538B CN104580538B CN201510073626.XA CN201510073626A CN104580538B CN 104580538 B CN104580538 B CN 104580538B CN 201510073626 A CN201510073626 A CN 201510073626A CN 104580538 B CN104580538 B CN 104580538B
- Authority
- CN
- China
- Prior art keywords
- server
- nginx
- end server
- weight
- load balancing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000036314 physical performance Effects 0.000 claims description 3
- 230000010365 information processing Effects 0.000 abstract description 3
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种提高Nginx服务器负载均衡效率的方法。该方法是在传统加权轮询负载均衡调度策略的基础上进一步考虑各后端服务器的实时负载状态,根据各后端服务器自身的信息处理能力及实时负载状态分配各个服务器的任务量,使任务量的分配更均衡,提高了Nginx服务器负载均衡效率。
Description
技术领域
本发明涉及一种提高Nginx服务器负载均衡效率的方法,属于计算机网络信息技术领域。
背景技术
随着网络服务的日趋完善,我们在获得方便的同时,也面临着巨大的挑战,并发业务访问数量的直线增长,是对网络中的Web服务器工作能力的严峻考验。采用多服务器集群技术是解决上述问题的有效方案,而负载均衡是集群技术的核心问题。负载均衡能够将大量的并发访问请求合理地均分到集群内的各后端服务器上进行处理,有效地避免了单一服务器数据流过大的问题,同时能够使各个后端服务器的资源得到均衡的使用。负载均衡包括硬件和软件两种类型,硬件的成本高昂,软件的负载均衡配置部署灵活,越来越受到人们的亲睐。
软件负载均衡常用的是Nginx。Nginx是一种高性能的HTTP和反向代理服务器。反向代理是指以代理服务器来接收Internet上的连接请求,运用均衡策略将请求分发给内部网络上的服务器集群,并将从服务器集群上得到的结果返回给Internet上发出连接请求的客户端。
当前Nginx默认采用的是Nginx官方设计的加权轮询负载均衡调度策略,加权轮循算法是在轮循算法的基础上为每台服务器赋一个权值,这个权值表示的是后端服务器的信息处理能力,Nginx依照权值为每台后端服务器分配不同数量的任务,权值越重分配的任务量越大,最终各后端服务器分配的任务量趋于其权重比值。
Nginx官方设计的加权轮询负载均衡调度策略,没有考虑运行过程中服务器集群内各个后端服务器的实时负载状态,无法实现根据并发业务量动态的向服务器分配任务,也就无法实现对Web服务器的充分利用,负载均衡的效果并不理想。
发明内容:
针对现有技术的不足,本发明提供一种提高Nginx服务器负载均衡效率的方法。该方法是在传统加权轮询负载均衡调度策略的基础上进一步考虑各后端服务器的实时负载状态,根据各后端服务器自身的信息处理能力及实时负载状态分配各个服务器的任务量,使任务量的分配更均衡,提高了Nginx服务器负载均衡效率。
本发明的技术方案如下:
一种提高Nginx服务器集群负载均衡效率的方法,包括步骤如下:
1)在Nginx服务器的主配置文件中配置后端服务器的初始权值Wi;
全文中,i是服务器的标号,i∈[1,N],N表示后端服务器的个数;
nginx.conf是Nginx服务器的主配置文件,Nginx服务器的负载均衡策略也配置在此文件中,假设后端服务器集群S=[S1,S2,...,SN]。
2)更新后端服务器动态负载量Dti:
获取各后端服务器的最近n次响应时间序列并构成二维数组Rt=[Rt1,Rt2,...,Rti,...,RtN]T,其中Rti=[ti1,ti2,...,tin];Rti是第i个服务器提供的最近n次服务,每次服务响应时间tij所构成的一维数组;
n次响应时间序列
计算lastreptime=[t1n,t2n,...,tNn]的平均值lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算第i个后端服务器Si的动态负载量Dti,其中表示第i个服务器n次响应时间的平均值,N个服务器的动态负载量构成数组其中,j∈[1,n];
Dti反映了后端服务器Si的负载状况,Dti越小代表Si的当前负载状况越稳定,而Dti是动态更新的,即可动态反映后端服务器Si的负载情况;现有的Nginx服务器加权轮询算法权值计算过程如图3。
3)比较服务器Si最近一次响应时间tin与
将满足条件的Si进行步骤4),若没有满足条件的Si重新回到步骤2);
4)更新Nginx服务器的加权轮询计算参数:
更新Nginx服务器中后端服务器Si的动态参数:动态有效权值Ewi=Wi-Dti,当前权值Cwi+=Ewi;初始状态Ewi=Wi,Cwi=0;总权值Tw+=Ewi;
5)选择提供服务的后端服务器:
对步骤4)中得到的当前权值Cwi按大小进行排序,将当前web请求分发到Cwi最大的后端服务器,提供web请求响应;
6)重复步骤2)-5);
实时更新响应时间序列Rti,进而实时更新当前权值Cwi,实现了Nginx服务器对各后端服务器的实时负载状态的实时掌控,从而动态的向服务器分配任务。
根据本发明优选的,步骤5)中Cwi最大的后端服务器的个数k>1时,在Cwi最大的后端服务器中选择初始权值Wi最大的后端服务器提供服务。
根据本发明优选的,步骤1)在Nginx服务器的主配置文件中配置后端服务器的初始权值Wi的方法是:根据各后端服务器的物理性能将后端服务器的初始权值分别设为Wi,并组成一维数组W=[W1,W2,...,Wi,...,WN]。
本发明的优势在于:
1、本发明所述提高Nginx服务器负载均衡效率的方法,是通过优化Nginx加权轮询策略,实现权值根据服务器集群中后端服务器的实时负载状况进行自适应调整,良好的实现了对后端服务器的充分利用,减小了宕机概率,有效提高了Nginx服务器集群整体的运行效率;
2、本发明所述提高Nginx服务器负载均衡效率的方法,是以后端服务器自身的负载能力为基础,实时采集后端服务器的响应时间数据,从而实现对负载情况进行实时监控,能最大限度的利用服务器资源;
3、本发明所述提高Nginx服务器负载均衡效率的方法,是对整个服务器集群的负载情况进行实时监控,根据整个服务器集群的负载数据进行任务分配,整个过程是在整个服务器集群层面进行和实施的,相当于将并发业务访问的压力平均动态分配到每个服务器上,利于服务器提高工作效率,减轻工作压力。
附图说明:
图1是客户端访问后端服务器集群的示意图;
图2是现有的Nginx服务器加权轮询算法权值计算过程流程图;
图3是本发明所述提高Nginx服务器负载均衡效率的方法的计算过程流程图。
图2和图3中,当前权值用于记录本次请求时服务器参与计算后的的权值,有效权值反映每台机器正常状态,当其对应服务器出现异常时,会被调低,但一般不变,服务器是当前被选择的后端服务器,最优服务器是最终选出用来提供服务的服务器。
具体实施方式:
下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
实施例1、
一种提高Nginx服务器集群负载均衡效率的方法,包括步骤如下:
1)在Nginx服务器的主配置文件中配置后端服务器的初始权值Wi;
根据各后端服务器的物理性能将后端服务器的初始权值分别设为Wi,并组成一维数组W=[4,3,2,1];全文中,i是服务器的标号,i∈[1,4];
nginx.conf是Nginx服务器的主配置文件,Nginx服务器的负载均衡策略也配置在此文件中,假设后端服务器集群S=[S1,S2,S3,S4]。
2)更新后端服务器动态负载量Dti:
获取各后端服务器的最近n次响应时间序列并构成二维数组;
Rti是第i个服务器提供的最近n次服务,每次服务响应时间tij所构成的一维数组,其中:
Rt1=[t11,t12,t13,t14]=[0.1,0.2,0.16,0.1],
Rt2=[t21,t22,t23,t24]=[0.2,0.3,0.5,0.4],
Rt3=[t31,t32,t33,t34]=[0.5,0.6,0.2,0.9],
Rt4=[t41,t42,t43,t44]=[0.4,0.3,0.8,0.2];
计算得lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算得到:
从而:
Dti反映了后端服务器Si的负载状况,Dti越小代表Si的当前负载状况越稳定,而Dti是动态更新的,即可动态反映后端服务器Si的负载情况;现有的Nginx服务器加权轮询算法权值计算过程如图3。
3)比较服务器Si最近一次响应时间tin与
其中,
4)更新Nginx服务器的加权轮询计算参数:
更新Nginx服务器中后端服务器Si的动态参数:动态有效权值Ewi=Wi-Dti,当前权值Cwi+=Ewi;初始状态Ewi=Wi,Cwi=0;总权值Tw+=Ewi;
Ew1=W1-Dt1=3.9982Cw1=3.9982Ew4=W4-Dt4=0.948125Cw2=0.948125
5)选择提供服务的后端服务器:
对步骤4)中得到的当前权值Cwi按大小进行排序,将当前web请求分发到后端服务器S1,提供web请求响应;
6)重复步骤2)-5);
实时更新响应时间序列Rti,进而实时更新当前权值Cwi,实现了Nginx服务器对各后端服务器的实时负载状态的实时掌控,从而动态的向服务器分配任务。
实施例2、
如实施例1提高Nginx服务器集群负载均衡效率的方法,其区别在于:步骤5)中Cwi最大的后端服务器的个数大于1时,此实施例中,Cwi最大的后端服务器的个数为2;在上述2个Cwi最大的后端服务器中选择初始权值Wi最大的后端服务器提供服务。
Claims (3)
1.一种提高Nginx服务器集群负载均衡效率的方法,包括步骤如下:
1)在Nginx服务器的主配置文件中配置后端服务器的初始权值Wi;
全文中,i是服务器的标号,i∈[1,N],N表示后端服务器的个数;
2)更新后端服务器动态负载量Dti:
获取各后端服务器的最近n次响应时间序列并构成二维数组Rt=[Rt1,Rt2,...,Rti,...,RtN]T,其中Rti=[ti1,ti2,...,tin];Rti是第i个服务器提供的最近n次服务,每次服务响应时间tij所构成的一维数组;
n次响应时间序列
计算lastreptime=[t1n,t2n,...,tNn]的平均值lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算第i个后端服务器Si的动态负载量Dti,其中表示第i个服务器n次响应时间的平均值,N个服务器的动态负载量构成数组其中,j∈[1,n];
3)比较服务器Si最近一次响应时间tin与
将满足条件的Si进行步骤4),若没有满足条件的Si重新回到步骤2);
4)更新Nginx服务器的加权轮询计算参数:
更新Nginx服务器中后端服务器Si的动态参数:动态有效权值Ewi=Wi-Dti,当前权值Cwi+=Ewi;初始状态Ewi=Wi,Cwi=0;总权值Tw+=Ewi;
5)选择提供服务的后端服务器:
对步骤4)中得到的当前权值Cwi按大小进行排序,将当前web请求分发到Cwi最大的后端服务器,提供web请求响应;
6)重复步骤2)-5)。
2.如权利要求1所述的提高Nginx服务器集群负载均衡效率的方法,其特征在于:步骤5)中Cwi最大的后端服务器的个数大于1时,在Cwi最大的后端服务器中选择初始权值Wi最大的后端服务器提供服务。
3.如权利要求1所述的提高Nginx服务器集群负载均衡效率的方法,其特征在于:步骤1)在Nginx服务器的主配置文件中配置后端服务器的初始权值Wi的方法是,根据各后端服务器的物理性能将后端服务器的初始权值分别设为Wi,并组成一维数组W=[W1,W2,...,Wi,...,WN]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073626.XA CN104580538B (zh) | 2015-02-12 | 2015-02-12 | 一种提高Nginx服务器负载均衡效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073626.XA CN104580538B (zh) | 2015-02-12 | 2015-02-12 | 一种提高Nginx服务器负载均衡效率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104580538A CN104580538A (zh) | 2015-04-29 |
CN104580538B true CN104580538B (zh) | 2018-02-23 |
Family
ID=53095695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510073626.XA Active CN104580538B (zh) | 2015-02-12 | 2015-02-12 | 一种提高Nginx服务器负载均衡效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104580538B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994145B (zh) * | 2015-06-23 | 2018-08-10 | 山东大学 | 一种基于kvm虚拟化集群的负载均衡方法 |
CN105208133B (zh) * | 2015-10-20 | 2018-05-25 | 上海斐讯数据通信技术有限公司 | 一种服务器、负载均衡器以及服务器负载均衡方法和系统 |
CN106612310A (zh) * | 2015-10-23 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种服务器调度方法、装置和系统 |
CN105871588A (zh) * | 2015-12-11 | 2016-08-17 | 乐视云计算有限公司 | 负载均衡配置方法、设备及系统 |
CN106657379A (zh) * | 2017-01-06 | 2017-05-10 | 重庆邮电大学 | 一种nginx服务器负载均衡的实现方法及系统 |
CN107643975A (zh) * | 2017-09-25 | 2018-01-30 | 郑州云海信息技术有限公司 | 一种统计压力信息的方法、装置及计算机可读存储介质 |
CN107682442B (zh) * | 2017-10-18 | 2020-12-18 | 中国银联股份有限公司 | 一种Web连接方法及装置 |
CN109842665B (zh) * | 2017-11-29 | 2022-02-22 | 北京京东尚科信息技术有限公司 | 用于任务分配服务器的任务处理方法和装置 |
CN108063819B (zh) * | 2017-12-18 | 2021-03-02 | 迈普通信技术股份有限公司 | 数据通信方法及装置 |
CN107862615A (zh) * | 2017-12-22 | 2018-03-30 | 平安养老保险股份有限公司 | 理赔信息处理方法、装置、计算机设备和存储介质 |
CN107888708A (zh) * | 2017-12-25 | 2018-04-06 | 山大地纬软件股份有限公司 | 一种基于Docker容器集群的负载均衡算法 |
CN108965381B (zh) * | 2018-05-31 | 2023-03-21 | 康键信息技术(深圳)有限公司 | 基于Nginx的负载均衡实现方法、装置、计算机设备和介质 |
CN109495351B (zh) * | 2018-12-26 | 2021-01-12 | 网易(杭州)网络有限公司 | 一种确定服务器系统数据处理能力方法、装置、电子设备及存储介质 |
CN111371825A (zh) * | 2018-12-26 | 2020-07-03 | 深圳市优必选科技有限公司 | 一种基于http2.0协议的负载均衡方法、装置及设备 |
CN109710412A (zh) * | 2018-12-28 | 2019-05-03 | 广州市巨硅信息科技有限公司 | 一种基于动态反馈的Nginx负载均衡方法 |
CN112217894A (zh) * | 2020-10-12 | 2021-01-12 | 浙江大学 | 一种基于动态权重的负载均衡系统 |
CN114567637A (zh) * | 2022-03-01 | 2022-05-31 | 浪潮云信息技术股份公司 | 一种智能设置负载均衡后端服务器权重的方法及系统 |
CN115002125B (zh) * | 2022-04-24 | 2024-07-19 | 浙江工业大学 | 一种具有Web负载均衡技术的系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610211A (zh) * | 2009-07-15 | 2009-12-23 | 浪潮电子信息产业股份有限公司 | 一种实现加权轮询的高速缓存负载均衡方法 |
CN104301241A (zh) * | 2014-06-05 | 2015-01-21 | 中国人民解放军信息工程大学 | 一种soa动态负载分发方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9094229B2 (en) * | 2011-01-14 | 2015-07-28 | Arris Enterprises, Inc. | Load balancing in a DOCSIS system based on weighting upstream and downstream channel loading conditions |
-
2015
- 2015-02-12 CN CN201510073626.XA patent/CN104580538B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610211A (zh) * | 2009-07-15 | 2009-12-23 | 浪潮电子信息产业股份有限公司 | 一种实现加权轮询的高速缓存负载均衡方法 |
CN104301241A (zh) * | 2014-06-05 | 2015-01-21 | 中国人民解放军信息工程大学 | 一种soa动态负载分发方法与系统 |
Non-Patent Citations (4)
Title |
---|
Combination Load B alancing for Video-on-Demand Systems;Jun Guo等;《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》;20080731;第18卷(第7期);全文 * |
一种基于自适应权值的负载均衡算法;耿强;《科学技术与工程》;20130531;第30卷(第14期);全文 * |
动态反馈的异构集群负载均衡算法的实现;陈伟等;《重庆大学学报》;20100228;第33卷(第2期);全文 * |
视频监控系统中的VOD负载均衡改进算法;李洪等;《计算机工程》;20141130;第40卷(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104580538A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104580538B (zh) | 一种提高Nginx服务器负载均衡效率的方法 | |
CN110764912B (zh) | 一种自适应任务调度器及方法 | |
CN105491138B (zh) | 一种基于负载率分级触发的分布式负载调度方法 | |
US20230093389A1 (en) | Service request allocation method and apparatus, computer device, and storage medium | |
US8291424B2 (en) | Method and system of managing resources for on-demand computing | |
CN110365765B (zh) | 一种缓存服务器的带宽调度方法及装置 | |
CN111124662B (zh) | 一种雾计算负载均衡方法及系统 | |
CN108845874B (zh) | 资源的动态分配方法及服务器 | |
Bhatia et al. | Htv dynamic load balancing algorithm for virtual machine instances in cloud | |
CN112835698B (zh) | 一种基于异构集群的请求分类处理的动态负载均衡方法 | |
US20050055694A1 (en) | Dynamic load balancing resource allocation | |
WO2017080172A1 (zh) | 网络调度方法和系统 | |
US11411798B2 (en) | Distributed scheduler | |
CN109710412A (zh) | 一种基于动态反馈的Nginx负载均衡方法 | |
CN110933139A (zh) | 一种解决Web服务器高并发的系统及方法 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
WO2011029253A1 (zh) | 一种Web负载均衡方法、网格服务器及系统 | |
Cheng et al. | Mitigating the negative impact of preemption on heterogeneous mapreduce workloads | |
CN104881322A (zh) | 一种基于装箱模型的集群资源调度方法及装置 | |
CN112799823A (zh) | 边缘计算任务的在线分派调度方法和系统 | |
CN104811467B (zh) | 综合效用的数据处理方法 | |
CN111143036A (zh) | 一种基于强化学习的虚拟机资源调度方法 | |
CN117155942A (zh) | 一种微服务动态自适应客户端负载均衡方法及系统 | |
CN111949408A (zh) | 一种边缘计算资源的动态分配方法 | |
CN113312151B (zh) | 一种IPSecVPN集群的负载均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |