当前位置: 首页 > 专利查询>山东大学专利>正文

一种提高Nginx服务器负载均衡效率的方法技术

技术编号:11383331 阅读:109 留言:0更新日期:2015-05-01 08:03
本发明专利技术提供一种提高Nginx服务器负载均衡效率的方法。该方法是在传统加权轮询负载均衡调度策略的基础上进一步考虑各后端服务器的实时负载状态,根据各后端服务器自身的信息处理能力及实时负载状态分配各个服务器的任务量,使任务量的分配更均衡,提高了Nginx服务器负载均衡效率。

【技术实现步骤摘要】

本专利技术涉及一种提高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次响应时间序列Rt=[Rt1,Rt2,...,RtN]T=t11,t12,...,t1nt21,t22,...,t2n..................tN1,tN2,...,tNn;]]>计算lastreptime=[t11,t21,...,tN1]的平均值lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算第i个后端服务器Si的动态负载量Dti,其中表示第i个服务器n次响应时间的平均值,N个服务器的动态负载量构成数组Dt=Dt1Dt2......DtN;]]>其中,j∈[1,n];Dti反映了后端服务器Si的负载状况,Dti越小代表Si的当前负载状况越稳定,而Dti是动态更新的,即可动态反映后端服务器Si的负载情况;现有的Nginx服务器加权轮询算法权值计算过程如图3。3)比较服务器Si最近一次响应时间ti1与将满足条件的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次响应时间序列并构成二维数组;Rt=[Rt1,Rt2,Rt3,Rt4]T=t11,t12,t13,t14t21,t22,t23,t24t31,t32,t33,t34t41,t42,t43,t44=0.1,0.2,0.16,0.10.2,0.3,0.5,0.40.5,0.6,0.2,0.90.4,0.3,本文档来自技高网...
一种提高Nginx服务器负载均衡效率的方法

【技术保护点】
一种提高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次响应时间序列Rt=[Rt1,Rt2,...,RtN]T=t11,t12,...,t1nt21,t22,...,t2n.................tN1,tN2,...,tNn;]]>计算lastreptime=[t11,t21,...,tN1]的平均值lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算第i个后端服务器Si的动态负载量Dti,其中表示第i个服务器n次响应时间的平均值,N个服务器的动态负载量构成数组Dt=Dt1Dt2......DtN;]]>其中,j∈[1,n];3)比较服务器Si最近一次响应时间ti1与将满足条件的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)。...

【技术特征摘要】
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次响应时间序列Rt=[Rt1,Rt2,...,RtN]T=t11,t12,...,t1nt21,t22,...,t2n.................tN1,tN2,...,tNn;]]>计算lastreptime=[t11,t21,...,tN1]的平均值lastreptime是各后端服务器最近一次的响应时间构成的一维数组;计算第i个后端服务器Si的动态负载量Dti,其中表示第i个服务器n次响应时间的平均值,N个服务器的动态负载量构成数组Dt=Dt1Dt2......DtN;]]>其中,j...

【专利技术属性】
技术研发人员:袁东风王利萍刘萍
申请(专利权)人:山东大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1