一种基于负载均衡的服务器集群智能监控系统及方法
技术领域
本发明涉及计算机集群监控技术领域,更具体的说,是涉及一种基于负载均衡的服务器集群智能监控系统及方法。
背景技术
随着互联网的快速发展以及企业业务的不断拓展,系统访问量以及数据流量也得以快速增长,对其处理能力和计算能力的需求也相应地增大,但是,服务器处理速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,因而服务器成为了网络瓶颈,传统的单机模式也往往成为网络故障点,由于每个服务器集群有自己的服务极限,在面临超出自己服务能力的流量时,会导致搜索服务器集群进入部分不可服务状态,甚至完全不可服务状态。当访问流量快速增长、业务量不断提高时,服务器的响应会变慢,若用户希望获得24小时的不间断可用性及较快的系统反应时间,则无法得到满足。
为了解决该问题,一种方法是扔掉现有设备而进行大量的硬件升级。这样,一方面会造成现有资源的浪费,另一方面如果再一次面临业务量提升时又将难以处理,我们知道即使性能再卓越的设备也不能满足无限增长的业务需求,所以当业务量再提升时就又需要进行大量的硬件升级的高额成本投入,因此,该方法成本很高,而且随着业务量提升,成本投入也不断加大。另一种方法是使用多台服务器来共同分担业务量,从而达到单系统高并发和多系统融合的目的。同时,通过服务器集群实现系统无缝扩展,使系统性能和硬件的增加得到成比例的提高。然而大多数服务器集群仅根据集群系统中的单一资源来分配任务请求,而且不能根据需要实现灵活的配置,造成集群中一些平台的资源浪费,降低了集群系统的处理能力,使得集群系统不能做出正确的分配决策。
现有技术的方案中,在一些服务请求数量较大的网络中,所有的服务请求的数据都会经过负载均衡设备,当服务请求数量超过负载均衡设备的处理能力时,而负载均衡设备可能并不能及时地将所有服务请求转发到服务器上,此时负载均衡设备会成为瓶颈,使得响应时间较长,导致系统的负载均衡用户体验降低。特别是当服务器集群收到服务请求后,需要根据当前的负载情况,使用合理的策略进行任务分配,如果分配策略不适用,在接收到新任务请求时,不但不能实现负载平衡,提高集群整体服务效率,反而会影响正常运行的服务。
因此,亟需本领域技术人员迫切解决的一个技术问题就是:提出一种基于负载均衡技术的服务器集群智能监控系统,从而在服务器集群收到服务请求后,制定合理的策略进行任务分配,准确的选择适当的应用服务器响应,使服务器集群能更好的为用户服务。
发明内容
有鉴于此,有必要针对上述问题,提供一种基于负载均衡的服务器集群智能监控系统及方法,在服务器集群收到服务请求后,制定合理的策略进行任务分配,准确的选择适当的应用服务器响应,使服务器集群能更好的为用户服务。
为了实现上述目的,本发明的技术方案如下:
一种基于负载均衡的服务器集群智能监控系统,包括检测模块、监控模块、信息分发模块、输出模块和报警模块,所述监控模块分别连接所述检测模块、信息分发模块、输出模块和报警模块;
所述检测模块用于周期性的向负载均衡节点发送服务请求;
所述监控模块用于实时监控负载均衡节点请求处理状态;
所述信息分发模块用于处理分发控制信息;
所述输入模块用于设定周期性发送服务请求的时间间隔,以及同一时间各负载均衡节点的最大并发处理数量;
所述报警模块用于对异常信息进行报警。
作为优选的,所述监控模块包括控制单元、判断单元、数据收集单元和记录单元;
所述控制单元用于发送个控制指令;
所述判断单元用于判断是否需要增减负载均衡节点的数量;
所述数据收集单元用于实时收集数据;
所述记录单元用于存储系统运行过程中的数据。
作为优选的,所述监控模块根据当前的处理服务请求的数量来判断,由判断单元判断是否需要增减负载均衡节点的数量,当处理服务请求的数量达到或超出设定阈值时,则需要增加负载均衡节点的数量来共同处理当前所有的服务请求,否则判断为暂时维持或适当减少负载均衡节点的数量。
作为优选的,所述数据收集单元收集的实时数据包括各负载均衡节点同步处理的请求数量、处理每个请求所需要的时间,以及各负载均衡节点连接所有服务器的CPU使用率和内存使用率。
作为优选的,所述报警模块通过蜂鸣器或短信提醒,通知管理人员技术处理异常情况。
一种基于负载均衡技术的服务器集群智能监控方法,包括以下步骤:
S1、设定周期性发送服务请求的时间间隔,以及同一时间各负载均衡节点的最大并发处理数量;
S2、在当前服务周期内,判断当前服务请求的数量是否大于当前服务器集群系统处理能力,若超负荷则启用其他的负载均衡节点协助处理服务请求;
S3、对能协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器,按照现有检测的情况,同已存储的信息进行比对,综合制定出处理服务请求的顺序;
S4、将超过当前服务器集群系统处理能力的服务请求,依次发送给新启用的各负载均衡节点,各负载均衡节点按照制定出处理服务请求的顺序,依次发送给各个服务器进行处理,直至本次服务周期结束。
作为优选的,所述步骤S2还包括:如果当前服务器集群系统处理能力无法响应所有的服务请求,则开始查找当前可以协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器。
作为优选的,所述步骤S3还包括:将本次服务周期内收集各负载均衡节点同步处理的请求数量,以及处理每个请求所需要的时间,以及各负载均衡节点连接所有服务器的CPU使用率和内存使用率,制定出处理服务请求的顺序的所有数据,均上传至分配的数据库服务器中。
作为优选的,所述步骤S3中还包括:如果某一负载均衡节点处理服务请求的顺序持续处于末位或者某一服务器的CPU使用率、内存使用率以及处理单次请求的时间中任意一项大于设定的初始值,将通知管理人员及时查找出现异常的原因。
与现有技术相比,本发明的有益效果在于:在监控整个服务器集群系统的过程中,由管理人员或技术人员设定初始参数(参照数据库中的数据进行设定),判断出在当前服务周期内,当前服务请求的数量是否大于当前服务器集群系统处理能力,是否需要启用其他的负载均衡节点协助处理服务请求,如果当前服务器集群系统处理能力无法响应所有的服务请求,则开始查找当前可以协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器;若监控过程中出现异常信息,则启动蜂鸣器或者短信提醒,尽快通知管理人员及时处理异常情况;最后按照现有检测的情况,同已存储的信息进行比对,综合制定出处理服务请求的顺序,各负载均衡节点按照制定出处理服务请求的顺序,依次发送给各个服务器进行处理,尽快减轻集群系统的负担,加快集群系统的运行速度。
附图说明
图1为本发明实施例的系统结构框图;
图2为本发明实施例方法流程图。
具体实施方式
下面结合附图和实施例对本发明所述的一种基于负载均衡的服务器集群智能监控系统及方法作进一步说明。
以下是本发明所述的一种基于负载均衡的服务器集群智能监控系统及方法的最佳实例,并不因此限定本发明的保护范围。
图1示出了一种基于负载均衡的服务器集群智能监控系统,包括检测模块、监控模块、信息分发模块、输出模块和报警模块,所述监控模块分别连接所述检测模块、信息分发模块、输出模块和报警模块;
所述检测模块用于周期性的向负载均衡节点发送服务请求;
所述监控模块用于实时监控负载均衡节点请求处理状态;
所述信息分发模块用于处理分发控制信息;
所述输入模块用于设定周期性发送服务请求的时间间隔,以及同一时间各负载均衡节点的最大并发处理数量;
所述报警模块用于对异常信息进行报警。
作为优选的,所述监控模块包括控制单元、判断单元、数据收集单元和记录单元;
所述控制单元用于发送个控制指令;
所述判断单元用于判断是否需要增减负载均衡节点的数量;
所述数据收集单元用于实时收集数据;
所述记录单元用于存储系统运行过程中的数据。
通过输入模块设定周期性发送服务请求的时间间隔,以及同一时间服务请求的数量。
需要说明的是,时间间隔过短以及服务请求数量过大,都将会影响集群系统的性能和稳定性,因此,在实际应用中,通常以秒为单位来配置所述时间间隔。在本发明的一种实施方式中,可以配置该时间间隔为5秒,在本发明的其他实施方式中,技术人员可以在满足集群系统的性能和稳定性的基础上根据实际情况灵活地配置该时间间隔。而服务请求的数量,技术人员应参考记录单元102d存档,权衡各种因素后,给出当前服务请求的并发数。在明确当前时间间隔以及并发数后,由技术人员通过按键装置设定,或者通过系统自动调整设定。
监控模块接受输入模块发送的信息,通过判断单元决定是否启动控制单元开始工作,确认信息后符合启动控制单元的条件,由判断单元发出指令启动控制单元开始工作。
具体地,根据当前的处理服务请求的数量来判断,由判断单元判断是否需要增减负载均衡节点的数量,当处理服务请求的数量达到或超出设定阈值时,说明需要适当增加负载均衡节点的数量来共同处理当前所有的服务请求,否则判断为暂时维持或适当减少负载均衡节点的数量。其中,所述设定阈值可以由管理人员通过输入模块进行设置,比如,预计该服务器集群的最大处理能力为每服务周期内能处理个服务请求,那么为了保证系统的平稳运行,可以设置处理服务请求的阈值为每服务周期内处理80个服务请求,当然,这里只是举例说明,所述阈值并不限于此,技术人员还可以根据实际需要设置阈值。
启动控制单元开始工作意味着,当前服务器集群中需要处理的服务请求已经达到或超出设定阈值,需要尽快启用其他的负载均衡节点协助处理服务请求,尽快减轻集群系统的负担,加快集群系统的运行速度。
控制单元按照输入模块设定的信息,发送指令给检测模块,检测模块开始周期性发送服务请求给各负载均衡节点,同时数据收集单元开始实时收集各负载均衡节点同步处理的请求数量,以及处理每个请求所需要的时间,以及各负载均衡节点连接所有服务器的CPU使用率和内存使用率。
具体地,控制单元从记录单元中查找出所有负载均衡节点,以及所有负载均衡节点的各种信息,其信息主要包括各负载均衡节点同步处理的请求数量,以及处理每个请求所需要的时间,以及各负载均衡节点连接所有服务器的CPU使用率和内存使用率;检测模块开始检测当前服务器集群中可利用的所有负载均衡节点,将检测出的所有负载均衡节点,与从记录单元中查找出的节点进行比对,若有节点无法匹配成功,检测模块将向该负载均衡节点按照配置的时间间隔发送资源信息检测请求,所述资源信息检测请求为该负载均衡节点同步处理的请求数量,以及处理每个请求所需要的时间,以及该负载均衡节点连接所有服务器的CPU使用率和内存使用率;检测后的负载均衡节点资源信息由数据收集单元负责收集。
需要说明的是,上述流程在服务器集群初始运行时,由于记录单元为初始状态,匹配负载均衡节点消耗的时间较多,随着检测次数增多,匹配负载均衡节点消耗的时间将会逐步下降。
判断单元按照数据收集单元提供的信息,评测出各负载均衡节点处理能力和处理服务请求的顺序,以及各负载均衡节点连接所有服务器的处理能力和处理服务请求的顺序;并将上述信息发送给记录单元存档,同时也发送给信息分发模块;若数据收集单元提取的信息出现异常或者评测中出现异常信息,则启动报警模块,通知管理人员及时处理异常情况。
具体地,对于各负载均衡节点连接所有服务器处理服务的顺序,依照数据收集单元提取服务器的CPU使用率、内存使用率以及处理单次请求的时间,进行加权求和,从而确定出各负载均衡节点连接所有服务器处理服务的顺序;如果某一服务器的CPU使用率、内存使用率以及处理单次请求的时间,其中任意一项大于输入模块设定的初始值,则启动报警模块,通知管理人员及时查找出现异常的原因,以免服务器负载过高,致使出现更严重的问题。例如出现CPU使用率过高、内存使用率过大以及处理单次请求的时间过长,均有可能是处理该服务请求时,由于客观原因该服务器出现宕机现象,此时需要管理人员手动重新该服务器或者停止该服务器的服务。
在本实施例中,对于每个负载均衡节点处理服务请求的顺序,先确定出该负载均衡节点的当次处理服务请求的响应时间减去该负载均衡节点上次处理服务请求的响应时间的差值;并将该差值与该负载均衡节点的当次处理服务请求的响应时间进行加权求和,得到综合响应时间;并确定该综合响应时间与该负载均衡节点对应的已分配待发送的请求数据包数量的乘积值;以及根据确定出的每个负载均衡节点对应的乘积值,确定乘积值从小到大的前若干个乘积值分别所对应的负载均衡节点为当前处理能力从强到弱的前若干个负载均衡节点。如果某一负载均衡节点处理服务请求的顺序,持续处于末位(主要处于倒数三位内),也将启动报警模块,通知管理人员及时查找出现异常的原因。例如该负载均衡节点连接的服务器数量,由于各种客观或主管原因明显减少,就需要管理人员及时分配新的服务器,提供给该负载均衡节点或者手动停止该负载均衡节点提供服务。
记录单元将本次服务周期内数据收集单元收集到的信息,以及判断单元评测出的信息,全部记录保存至专有数据库中,为下一次服务周期的评测提供参考数据;并将各负载均衡节点处理能力和处理服务请求的顺序,以及各负载均衡节点连接所有服务器的处理能力和处理服务请求的顺序,发送给信息分发模块。
信息分发模块按照判断单元,提供的各负载均衡节点处理服务请求的顺序,依次分发服务请求给各负载均衡节点;各负载均衡节点依据信息分发模块提供的信息,依次分发服务请求给各负载均衡节点连接所有服务器进行处理。
具体地,信息分发模块先确定本次服务周期内,能处理服务请求的负载均衡节点,再按照判断单元,提供的各负载均衡节点处理服务请求的顺序,依次分发服务请求给各负载均衡节点;同理对于各负载均衡节点连接所有服务器,信息分发模块先确定本次服务周期内,能处理服务请求的服务器,再按照信息分发模块提供的信息,依次分发服务请求给各负载均衡节点连接所有服务器进行处理。
在本实施例中,还提供了一种基于负载均衡技术的服务器集群智能监控方法,包括以下步骤:
S1、设定周期性发送服务请求的时间间隔,以及同一时间各负载均衡节点的最大并发处理数量;
S2、在当前服务周期内,判断当前服务请求的数量是否大于当前服务器集群系统处理能力,若超负荷则启用其他的负载均衡节点协助处理服务请求;
S3、对能协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器,按照现有检测的情况,同已存储的信息进行比对,综合制定出处理服务请求的顺序;
S4、将超过当前服务器集群系统处理能力的服务请求,依次发送给新启用的各负载均衡节点,各负载均衡节点按照制定出处理服务请求的顺序,依次发送给各个服务器进行处理,直至本次服务周期结束。
作为优选的,所述步骤S2还包括:如果当前服务器集群系统处理能力无法响应所有的服务请求,则开始查找当前可以协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器。
作为优选的,所述步骤S3还包括:将本次服务周期内收集各负载均衡节点同步处理的请求数量,以及处理每个请求所需要的时间,以及各负载均衡节点连接所有服务器的CPU使用率和内存使用率,制定出处理服务请求的顺序的所有数据,均上传至分配的数据库服务器中。
作为优选的,所述步骤S3中还包括:如果某一负载均衡节点处理服务请求的顺序持续处于末位或者某一服务器的CPU使用率、内存使用率以及处理单次请求的时间中任意一项大于设定的初始值,将通知管理人员及时查找出现异常的原因。
综上所述,本发明在监控整个服务器集群系统的过程中,由管理人员或技术人员设定初始参数(参照数据库中的数据进行设定),例如各负载均衡节点的最大并发处理数量为1000个,处理单个服务请求的时间最长为0.01秒,循环检测的时间间隔为5秒等,判断出在当前服务周期内,当前服务请求的数量是否大于当前服务器集群系统处理能力,是否需要启用其他的负载均衡节点协助处理服务请求,如果当前服务器集群系统处理能力无法响应所有的服务请求,则开始查找当前可以协助处理服务请求的其他的负载均衡节点,以及各负载均衡节点中能协助处理的服务器;若监控过程中出现异常信息,则启动蜂鸣器或者短信提醒,尽快通知管理人员及时处理异常情况;最后按照现有检测的情况,同已存储的信息进行比对,综合制定出处理服务请求的顺序,各负载均衡节点按照制定出处理服务请求的顺序,依次发送给各个服务器进行处理,尽快减轻集群系统的负担,加快集群系统的运行速度。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。