一种基于动态优先级队列的集群节点监控轮询机制转让专利

申请号 : CN201510313132.4

文献号 : CN104980314B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王小明张勇赵学志陶瀛露程显洲

申请人 : 上海市地震应急救援保障中心

摘要 :

本发明属于集群节点监控技术领域,提供了一种地震行业集群设备主动式监控系统及轮询机制,包括:中心监控系统和集群;集群包括多个集群节点,每个集群节点都通过通信链路与中心监控系统相连接。将集群内集群节点分为两个队列,队列中的每个节点轮询顺序按照优先级动态逐级分配;设置动态队列优先级阈值;静态队列的每个节点具有同等地位;在一个轮询周期内,中心监控系统根据节点优先级进行轮询,轮询之后节点优先级降低;如果轮询完毕,则轮询静态队列;如果轮询时间内动态队列未轮询一遍,则直接结束。本发明保证地震来临时能够正确、及时地获取地震监测波形等信息,最大程度的降低地震灾害影响,为地震监测数据传输提供通信链路保障。

权利要求 :

1.一种基于动态优先级队列的集群节点监控轮询机制,包括如下步骤:步骤一,将集群内集群节点分为两个队列,分别为:动态队列和静态队列;

步骤二,将动态队列以一定长度进行初始化,节点优先级最高的排在队首,最低的排在队尾,队列中的每个节点轮询顺序按照优先级动态逐级分配;

步骤三,设置动态队列优先级阈值;

步骤四,静态队列包含了集群中所有节点,每个节点具有同等地位;

步骤五,在一个轮询周期内,中心监控系统首先根据动态队列内节点优先级进行轮询,轮询之后节点优先级降低;如果轮询时间内动态队列轮询完毕,则轮询静态队列,重复上述步骤直至轮询周期结束;如果轮询时间内动态队列未轮询一遍,则轮询节点优先级调整后整个队列等待下次轮询,静态队列不轮询,直接结束。

2.根据权利要求1所述的一种基于动态优先级队列的集群节点监控轮询机制,其特征在于,所述步骤五的具体步骤为:a,在一个轮询周期开始时,首先判定轮询周期是否结束;如果没有结束,则执行b,如果结束,则动态队列点优先级+1,直接结束;

b,轮询动态队列;

c,判定队首列节点优先级是否小于阈值,如果小于该阈值,则执行d,反之,则队首列节点优先级-1,插入动态队列内,执行e;

d,轮询静态队列;

e,收集节点状态信息后,重复步骤a至e的步骤,直至轮询周期结束,动态队列点优先级+1为止。

3.根据权利要求2所述的一种基于动态优先级队列的集群节点监控轮询机制,其特征在于,所述步骤c中集群节点按折半插入排序算法插入动态队列。

4.根据权利要求2所述的一种基于动态优先级队列的集群节点监控轮询机制,其特征在于,所述步骤d中的静态队列按照FCFS的算法进行初始化,新增节点依次插入队尾,再开始轮询静态队列。

说明书 :

一种基于动态优先级队列的集群节点监控轮询机制

技术领域

[0001] 本发明属于集群节点监控技术领域,特别涉及一种地震行业集群设备主动式监控系统及基于动态优先级队列的集群节点监控轮询机制。

背景技术

[0002] 全国各省市地震部门都在各自辖区部署了地震监测设备,包括数据采集器、地电观测仪、地磁观测仪以及服务器、路由器等,这些设备通过不同链路与中心服务器通信,构成一个大的集群,集群内各个节点设备的操作与维护成为地震监测事业极为重要的组成部分,而设备状态的正常与否决定了地震监测数据能否正常、及时、准确的传到中心进行地震分析、监测、预报。按照地震行业监测设备集群内节点的功能属性划分,被监控节点分为台点监测设备、应用服务器、路由交换设备三类,其中台点监测设备、路由交换设备仅需监控IP地址、固定端口的通断情况,一般采用ping指令即可,对于应用服务器,需要监控服务器系统,同时要根据服务器的操作系统类型、应用类型来区别需要监控的信息。影响Windows系统性能的基本因素包括CPU使用率、内存利用率、系统盘占用率,而Linux系统底层架构不同于Windows,对于CPU、内存的使用情况与Windows系统相反,Linux以最大化利用硬件资源为最终目标,并且对于CPU、内存利用率的计算为某段时间内的均值,中心系统对这些节点的监控需要充分考虑这些因素。对于部分关键应用服务器,例如ORACLE数据库服务器,用户更加关心实例状态、进程状态、表空间利用率等信息,在集群监控系统部署时需考虑这些信息监控的需求。
[0003] 目前面临的问题是,首先,所有集群内节点地位平等,导致重要节点被忽略。地震行业中台点(尤其断裂带附近)实时监测设备、核心数据库等节点的重要作用不言而喻,无法与其它普通节点地位平等,需要设置较高优先级;其次,普通集群节点长期状态正常,根据线性回归算法、指数回归算法等经典趋势分析算法的结论,这些节点的优先级应该降低。
[0004] 因此,集群节点监控技术领域急需一种地震行业集群设备主动式监控系统及轮询机制,根据重要性对集群节点分别进行动态和静态轮询,对动态队列又进行了分级处理,保证重要性的队列能够优先轮询,更加适合地震行业现状;保证地震来临时能够正确、及时地获取地震监测波形等信息,最大程度的降低地震灾害影响;实现对故障的精确定位,降低了带宽消耗,大大提高业务人员工作效率,降低节点故障率,为地震监测数据传输提供通信链路保障。

发明内容

[0005] 本发明提供了一种地震行业集群设备主动式监控系统及轮询机制,在微机原理中,轮询是一种CPU决策如何提供周边设备服务的方式,又称“程序控制输入/输出”。其概念是,由CPU定时发出询问,依序询问每一个周边设备是否需要其服务,有即给予服务,服务结束后再问下一个周边,接着不断周而复始。在通信原理中,轮询是基站为终端分配带宽的一种处理流程,这种分配可以是针对单个终端或是一组终端的。为单个终端和一组终端连接分配带宽,实际上是定义带宽请求竞争机制,这种分配不是使用一个单独的消息,而是上行链路映射消息中包含的一系列分配机制。在网络监控领域,轮询是中心服务器根据需求对被监控节点进行周期性检测,得到节点状态信息。技术方案如下:
[0006] 一种地震行业集群设备主动式监控系统包括:中心监控系统和集群;集群包括多个集群节点,每个集群节点都通过通信链路与中心监控系统相连接。
[0007] 优选的,在上述一种地震行业集群设备主动式监控系统中,中心监控系统采用Linux服务器,在Linux服务器内安装Cacti开源网络管理软件,并在Cacti开源网络管理软件内设置轮询周期,对集群节点进行监控。
[0008] 优选的,在上述一种地震行业集群设备主动式监控系统中,在每个集群节点上安装Agent服务,通过网络管理协议、通信链路与Linux服务器进行信息交换,在每个轮询周期内,按照网络管理协议给定的轮询机制,对集群内各个集群节点状态进行轮询、监控。
[0009] 优选的,在上述一种地震行业集群设备主动式监控系统中,网络管理协议为简单网络管理协议SNMP,该SNMP协议由一组网络管理的标准组成,包含一个应用层协议、数据库模型和一组资源对象。
[0010] 一种基于动态优先级队列的集群节点监控轮询机制,包括如下步骤:
[0011] 步骤一,将集群内集群节点分为两个队列,分别为:动态队列和静态队列;
[0012] 步骤二,将动态队列以一定长度进行初始化,节点优先级最高的排在队首,最低的排在队尾,队列中的每个节点轮询顺序按照优先级动态逐级分配;
[0013] 步骤三,设置动态队列优先级阈值;
[0014] 步骤四,静态队列包含了集群中所有节点,每个节点具有同等地位;
[0015] 步骤五,在一个轮询周期内,中心监控系统首先根据动态队列内节点优先级进行轮询,轮询之后节点优先级降低;如果轮询时间内动态队列轮询完毕,则轮询静态队列,重复上述步骤直至轮询周期结束;如果轮询时间内动态队列未轮询一遍,则轮询节点优先级调整后整个队列等待下次轮询,静态队列不轮询,直接结束。
[0016] 优选的,在上述一种基于动态优先级队列的集群节点监控轮询机制中,步骤五的具体步骤为:
[0017] a,在一个轮询周期开始时,首先判定轮询周期是否结束;如果没有结束,则执行b,如果结束,则动态队列点优先级+1,直接结束;
[0018] b,轮询动态队列;
[0019] c,判定队首列节点优先级是否小于阈值,如果小于该阈值,则执行d,反之,则队首列节点优先级-1,插入动态队列内,执行e;
[0020] d,轮询静态队列;
[0021] e,收集节点状态信息后,重复步骤a至e的步骤,直至轮询周期结束,动态队列点优先级+1为止。
[0022] 优选的,在上述一种基于动态优先级队列的集群节点监控轮询机制中,步骤c中集群节点按折半插入排序算法插入动态队列。
[0023] 优选的,在上述一种基于动态优先级队列的集群节点监控轮询机制中,步骤d中的静态队列按照FCFS的算法进行初始化,新增节点依次插入队尾,再开始轮询静态队列。
[0024] 本发明的有益效果:
[0025] 1、本发明根据地震行业集群内节点的特性,设计部署中心监控系统,对故障精确定位,降低带宽消耗有很大帮助,大大提高业务人员工作效率,降低节点故障率,为地震监测数据传输提供通信链路保障。
[0026] 2、本发明采用主动式监控方式,在集群节点内设计Agent模块,与中心监控系统通过网络管理协议进行通信,中心监控系统内设置轮询检测时间周期,在一个轮询周期内主动向集群节点队列发送检测命令,由集群节点内Agent服务采集节点状态信息,通过网络管理协议反馈给中心监控系统,中心监控系统由此来判断集群节点状态。中心监控系统能够根据自身性能合理设置轮询机制和告警机制,在保证系统可靠性的同时能够降低通信链路开销和自身负载。
[0027] 3、本发明对地震行业集群内集群节点进行分类,根据节点优先级的不同,分别创建静态队列和动态队列,更加适合地震行业现状,轮询更加科学、精确。
[0028] 4、本发明根据优先级对两个队列内的节点进行轮询检测,在不增加中心服务器负载的情况下,大大增加地震行业集群内重要节点的轮询次数,保障集群内重要节点的运行状态正常,从而保证地震来临时能够正确、及时地获取地震监测波形等信息,最大程度的降低地震灾害影响。
[0029] 5、本发明是一种地震行业集群设备主动式监控系统,对Linux服务器的CPU利用率、内存利用率、存储空间利用率性能等的性能影响很小,可以忽略不计,不影响Linux服务器对集群内各个节点的正常监控。
[0030] 6、本发明采用时间复杂度相对较低、稳定性较高的折半插入算法对动态队列进行排序、分级,提高时效性和稳定性。

附图说明

[0031] 下面结合附图和具体实施方式来详细说明本发明:
[0032] 图1为一种地震行业集群设备主动式监控系统的结构示意图。
[0033] 图2为一种基于动态优先级队列的集群节点监控轮询机制的流程图。
[0034] 图3是本发明步骤五的流程图。

具体实施方式

[0035] 为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0036] 图1为一种地震行业集群设备主动式监控系统的结构示意图。
[0037] 如图1所示,一种地震行业集群设备主动式监控系统包括:中心监控系统1和集群2;集群2包括多个集群节点,每个集群节点都通过通信链路与中心监控系统相连接。
[0038] 本实施例中,中心监控系统采用Linux服务器,在Linux服务器内安装Cacti开源网络管理软件,并在Cacti开源网络管理软件内设置轮询周期,对集群节点进行监控。
[0039] 本实施例中,在每个集群节点上安装Agent服务,通过网络管理协议、通信链路与Linux服务器进行信息交换,在每个轮询周期内,按照网络管理协议给定的轮询机制,对集群内各个集群节点状态进行轮询、监控。
[0040] 本实施例中,网络管理协议为简单网络管理协议SNMP(Simple  Network Management Protocol),该SNMP协议由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。最终,Linux服务器得到集群内每个节点的状态信息。
[0041] 图2为一种基于动态优先级队列的集群节点监控轮询机制的流程图。
[0042] 如图2所示,一种基于动态优先级队列的集群节点监控轮询机制,包括如下步骤:
[0043] 步骤一,将集群内集群节点分为两个队列,分别为:动态队列和静态队列;
[0044] 步骤二,将动态队列以一定长度进行初始化,节点优先级最高的排在队首,最低的排在队尾,队列中的每个节点轮询顺序按照优先级动态逐级分配;
[0045] 步骤三,设置动态队列优先级阈值;
[0046] 步骤四,静态队列包含了集群中所有节点,每个节点具有同等地位;
[0047] 步骤五,在一个轮询周期内,中心监控系统首先根据动态队列内节点优先级进行轮询,轮询之后节点优先级降低;如果轮询时间内动态队列轮询完毕,则轮询静态队列,重复上述步骤直至轮询周期结束;如果轮询时间内动态队列未轮询一遍,则轮询节点优先级调整后整个队列等待下次轮询,静态队列不轮询,直接结束。
[0048] 图3是本发明步骤五的流程图。
[0049] 如图3所示,本实施中,步骤五的具体步骤为:
[0050] a,在一个轮询周期开始时,首先判定轮询周期是否结束;如果没有结束,则执行b,如果结束,则动态队列点优先级+1,直接结束;
[0051] b,轮询动态队列;
[0052] c,判定队首列节点优先级是否小于阈值,如果小于该阈值,则执行d,反之,则队首列节点优先级-1,插入动态队列内,执行e;
[0053] d,轮询静态队列;
[0054] e,收集节点状态信息后,重复步骤a至e的步骤,直至轮询周期结束,动态队列点优先级+1为止。
[0055] 本实施例中,步骤c中集群节点按折半插入排序算法插入动态队列。
[0056] 本实施例中,步骤d中的静态队列按照FCFS的算法进行初始化,新增节点依次插入队尾,再开始轮询静态队列。
[0057] 本发明为了防止节点初始化优先级过低导致长期无法轮询的情况,节点轮询之后优先级减一,直至小于阈值,重新初始化该节点优先级。同时为保证轮询公平性,动态队列设置优先级阈值,当队首节点优先级小于该阈值时,不对动态队列轮询,直接轮询静态队列,每次轮询时间结束时,动态队列所有节点优先级加一,防止队首节点优先级始终低于阈值而无法轮询动态队列的情况发生。
[0058] 本发明采用时间复杂度相对较低、稳定性较高的折半插入算法对动态队列进行排序、分级,提高时效性和稳定性。
[0059] 本发明根据地震行业集群内节点的特性,设计部署中心监控系统,对故障精确定位,降低带宽消耗有很大帮助,大大提高业务人员工作效率,降低节点故障率,为地震监测数据传输提供通信链路保障。
[0060] 本发明采用主动式监控方式,在集群节点内设计Agent模块,与中心监控系统通过网络管理协议进行通信,中心监控系统内设置轮询检测时间周期,在一个轮询周期内主动向集群节点队列发送检测命令,由集群节点内Agent服务采集节点状态信息,通过网络管理协议反馈给中心监控系统,中心监控系统由此来判断集群节点状态。中心监控系统能够根据自身性能合理设置轮询机制和告警机制,在保证系统可靠性的同时能够降低通信链路开销和自身负载。
[0061] 本发明对地震行业集群内集群节点进行分类,根据节点优先级的不同,分别创建静态队列和动态队列,更加适合地震行业现状,轮询更加科学、精确。
[0062] 本发明根据优先级对两个队列内的节点进行轮询检测,在不增加中心服务器负载的情况下,大大增加地震行业集群内重要节点的轮询次数,保障集群内重要节点的运行状态正常,从而保证地震来临时能够正确、及时地获取地震监测波形等信息,最大程度的降低地震灾害影响。
[0063] 本发明是一种地震行业集群设备主动式监控系统,对Linux服务器的CPU利用率、内存利用率、存储空间利用率性能等的性能影响很小,可以忽略不计,不影响Linux服务器对集群内各个节点的正常监控。
[0064] 以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。