一种动态自适应负载均衡方法及系统与流程

文档序号:17694617发布日期:2019-05-17 21:22阅读:180来源:国知局
一种动态自适应负载均衡方法及系统与流程

本发明涉及一种动态自适应负载均衡方法及系统,属于服务器调度技术领域。



背景技术:

如今随着电子商务、网上银行、网络游戏、网上购物等web应用的不断扩展,使得服务站点必须应对更多的动态请求,服务器资源开销剧增。当单台服务器不再能应对日益增加的服务请求的时候,可以用价格更昂贵性能更好的服务器代替,但从可伸缩性、高可用性和性价比方面考虑,集群技术是解决这个问题的首选方案。负载均衡问题是集群系统的核心,现有负载均衡主要分为静态的和动态的,静态的负载均衡对于请求量较大的情况表现不佳;而动态的负载均衡多为内容隐蔽的动态调度,采用内容隐蔽的动态调度算法调度器开销较小,调度效率高。但web服务器负载波动性大,前一时刻收集的负载信息在下一时刻也许不再能够准确反映服务器负载状态,从而使基于服务器端负载状态信息的动态调度算法失效。再者,调度器的瓶颈问题将严重影响整个系统的吞吐率和可伸缩性。另一方面,请求分类需要人工预先处理,而且当服务变更的时候这种工作又得从头再来,灵活性差。



技术实现要素:

本发明提供一种动态自适应负载均衡方法及系统,解决服务器负载不均衡的问题。

本发明的技术方案第一方面为一种动态自适应负载均衡方法,所述方法包括以下步骤:

对接收的web请求进行分析,按请求内容的不同实现分类,对每一类请求绑定动态权值以量化请求,所述动态权值用于实时表示请求对服务器资源的占用率和请求服务时间长短;

收集并计算各服务器中等待响应的请求总量和实时性能指标;

计算所有服务器的总请求量,并判断总请求量是否超过预设的请求阈值;

若总请求量超过请求阈值则拒绝接受请求,否则接受请求并根据各服务器的实时性能指标转发请求。

进一步,所述实时性能指标包括cpu占用率、cpu利用率、磁盘可用空间、内存以及i/o利用率、网络宽带占有率。

进一步,通过在各个服务器中安装探针程序,来获取相应服务器的实时性能指标。

进一步,所述探针程序按照设定频率下发性能指标采集指令,抓取并反馈相应的实时性能指标。

本发明的技术方案第二方面为一种动态自适应负载均衡系统,包括调度器和与其连接的服务器集群,所述调度器包括:

权值分类绑定模块,用于对接收的web请求进行分析,按请求内容的不同实现分类,对每一类请求绑定动态权值以量化请求,所述动态权值用于实时表示请求对服务器资源的占用率和请求服务时间长短;

服务器状态采集模块,用于收集并计算各服务器中等待响应的请求总量和实时性能指标;

准入转发模块,用于计算所有服务器的总请求量,并判断总请求量是否超过预设的请求阈值;若总请求量超过请求阈值则拒绝接受请求,否则接受请求并根据各服务器的实时性能指标转发请求。

进一步,所述服务器状态采集模块包括:

服务器请求量采集模块,用于收集并采集各服务器中等待响应的请求总量;

实时性能指标采集模块,用于采集各服务器的实时性能指标;所述实时性能指标包括cpu占用率、cpu利用率、磁盘可用空间、内存以及i/o利用率、网络宽带占有率。

进一步,所述实时性能指标采集模块包括:

探针监测模块,安装于各服务器中以获取相应服务器的实时性能指标;

接收模块,安装于调度器中以接收服务器反馈的实时性能指标。

进一步,所述探针监测模块包括:计时触发模块,用于使探针程序按照设定频率下发性能指标采集指令,抓取并反馈相应的实时性能指标。

本发明的技术方案第三方面为一种计算机装置,包括存储器、处理器及储存在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面的方法。

本发明的技术方案第四方面为一种计算机可读存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面的方法。

本发明的有益效果为:本发明的动态自适应负载均衡方法及系统,通过后端服务器对请求分析,根据请求内容将请求分类;服务器负载的计算采用硬件性能和请求总量相结合的实时性能指标,降低了网络负载,减少了负载计算的复杂性,提高了负载信息的准确度并且结合了动态反馈和准入控制机制,具有较好的低响应延迟、高可伸缩性和高吞吐量性能表现。

附图说明

图1所示为根据本发明的方法的基本流程图;

图2所示为根据本发明的装置示意图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。

需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本公开中所使用的上、下、左、右等描述仅仅是相对于附图中本公开各组成部分的相互位置关系来说的。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。

参考图1,一种动态自适应负载均衡方法,所述方法包括以下步骤:

对接收的web请求进行分析,按请求内容的不同实现分类,对每一类请求绑定动态权值以量化请求,所述动态权值用于实时表示请求对服务器资源的占用率和请求服务时间长短;

收集并计算各服务器中等待响应的请求总量和实时性能指标;

计算所有服务器的总请求量,并判断总请求量是否超过预设的请求阈值;

若总请求量超过请求阈值则拒绝接受请求,否则接受请求并根据各服务器的实时性能指标转发请求。

进一步,所述实时性能指标包括cpu占用率、cpu利用率、磁盘可用空间、内存以及i/o利用率、网络宽带占有率。

进一步,通过在各个服务器中安装探针程序,来获取相应服务器的实时性能指标。

进一步,所述探针程序按照设定频率下发性能指标采集指令,抓取并反馈相应的实时性能指标。

参考图2,一种动态自适应负载均衡系统,包括调度器和与其连接的服务器集群,所述调度器包括:

权值分类绑定模块,用于对接收的web请求进行分析,按请求内容的不同实现分类,对每一类请求绑定动态权值以量化请求,所述动态权值用于实时表示请求对服务器资源的占用率和请求服务时间长短;

服务器状态采集模块,用于收集并计算各服务器中等待响应的请求总量和实时性能指标;

准入转发模块,用于计算所有服务器的总请求量,并判断总请求量是否超过预设的请求阈值;若总请求量超过请求阈值则拒绝接受请求,否则接受请求并根据各服务器的实时性能指标转发请求。

进一步,所述服务器状态采集模块包括:

服务器请求量采集模块,用于收集并采集各服务器中等待响应的请求总量;

实时性能指标采集模块,用于采集各服务器的实时性能指标;所述实时性能指标包括cpu占用率、cpu利用率、磁盘可用空间、内存以及i/o利用率、网络宽带占有率。

进一步,所述实时性能指标采集模块包括:

探针监测模块,安装于各服务器中以获取相应服务器的实时性能指标;

接收模块,安装于调度器中以接收服务器反馈的实时性能指标。

进一步,所述探针监测模块包括:计时触发模块,用于使探针程序按照设定频率下发性能指标采集指令,抓取并反馈相应的实时性能指标。

具体的,

1)对到来的请求进行分析,按请求内容的不同将其分为m类,每一类对应一个权值wi,并以此来量化请求,大小表示其对服务器资源占用的多少和请求服务时间的长短,其值可单独运行测试设定。

2)收集并计算服务器中的等待响应请求总量和实时性能指标信息。设nij表示服务器si中第j类等待响应请求的数量,sumi表示服务器si的等待响应请求总量,n表示服务器的数量,令:

设ni表示服务器si等待响应请求的数量,ri表示服务器si等待响应请求的总量;ci表示服务器si等待响应的请求占系统总的等待响应请求的百分比,令:

ci=ri/sum

设pi表示服务器si硬件性能权值,其大小可根据服务器运行服务器性能测试软件(如loadrunner等)设置,cli表示服务器si实时性能指标,令:

将sum和cli周期性的分别提交到调度器的准入转发模块,并将sumi通知各服务器。

3)根据当前系统中的请求总量值sum,当其达到预定的请求阈值时拒绝请求,否则接受请求并进行负载均衡处理;其请求阈值可以根据实际应用测定然后再设置。

4)调度器周期性的收集各个服务器中实时性能指标数据cli,据此作为各个服务器的连接权值。系统初始时cli均设为服务器硬件性能权值,cli为0表示服务器不再接受请求或是已停机,直到下次信息反馈其值不为0;系统采用wrr算法选择服务器转发请求。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。

进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的动态自适应负载均衡方法和技术编程时,本发明还包括计算机本身。

计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1