著录项信息
专利名称 | 一种基于数据压缩的可扩展的监控方法及系统 |
申请号 | CN201310102333.0 | 申请日期 | 2013-03-27 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2013-07-31 | 公开/公告号 | CN103226572A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F17/30 | IPC分类号 | G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 中国科学院计算技术研究所 | 申请人地址 | 上海市徐汇区湖南路121号10楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海瀛联信息科技股份有限公司 | 当前权利人 | 上海瀛联信息科技股份有限公司 |
发明人 | 王博;孙毓忠;杨庆林 |
代理机构 | 北京律诚同业知识产权代理有限公司 | 代理人 | 祁建国;梁挥 |
摘要
本发明提供一种基于数据压缩的可扩展的监控方法及系统。方法和系统的主要特征是:每个需要监控的结点上调用数据收集模块,该模块将最新收集的数据与其上次发送的数据相比较,若相差超过一定范围内,就将新数据发送给数据聚集模块,反之,就不发送所获取的新数据。从而实现了网络传输量的减小和监控系统时间粒度的自动调节,进而提高了监控系统的可扩展性。聚集模块对其接收的数据聚集处理后再发送至数据存储模块进行存储,然后就可以通过访问数据聚集数据库获得计算环境的当前信息或历史状态。
1.一种通过压缩数据提高监控资源扩展性的方法,其特征在于,包括:
步骤1,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;
步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;
步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;
步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,将接受的所述所有数据进行解析并将解析所得的数据进行聚集,若该层数据聚集模块的上层是数据聚集模块,则将聚集所得的数据发送给其上层的数据聚集模块,若该层数据聚集模块的上层是数据存储模块,则直接将数据发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后,判断该层数据聚集模块是否为最上层数据聚集模块,若否,则将聚集所得的数据发送给上层的数据聚集模块,若是,则直接将数据发送给上层的数据存储模块,其中所述步骤4包括步骤41、步骤42、步骤43、步骤44、步骤45、步骤46、步骤47:
步骤41,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行步骤43,若为0,表示该数据报文来自数据聚集模块,则执行步骤42;
步骤42,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43;
步骤43,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行步骤44,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行步骤45;
步骤44,将msg1或所述多个子数据报文解析为节点的静态信息,执行步骤46;
步骤45,将msg1或所述多个子数据报文解析为节点的动态信息,执行步骤46;
步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47;
步骤47,将msg2发送给数据存储模块或上层的数据聚集模块;
步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将所述节点静态信息插入数据库的静态数据表,将所述节点动态信息插入历史信息表中,更新数据库。
2.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;
所述数据报文的第二位表示信息来源,第二位为1表示该数据报文的数据来源于数据收集模块,第二位为0则表示该数据报文的数据来源于数据聚集模块。
3.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于,所述步骤5包括:
步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;
步骤52,判断msg的第二位,若为0,则执行步骤54,若为1,则执行步骤53;
步骤53,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;
步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。
4.如权利要求1所述的通过压缩数据提高监控资源扩展性的方法,其特征在于,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。
5.一种通过压缩数据提高监控资源扩展性的系统,其特征在于,包括:
数据收集模块,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;
比较模块,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;
发送模块,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;
数据聚集模块,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,将接受的所述所有数据进行解析并将解析所得的数据进行聚集,若该层数据聚集模块的上层是数据聚集模块,则将聚集所得的数据发送给其上层的数据聚集模块,若该层数据聚集模块的上层是数据存储模块,则直接将数据发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后,判断该层数据聚集模块是否为最上层数据聚集模块,若否,则将聚集所得的数据发送给上层的数据聚集模块,若是,则直接将数据发送给上层的数据存储模块发送给上层的数据存储模块,其中所述数据聚集模块包括初始化模块、聚集分割模块、聚集判断模块、静态解析模块、动态解析模块、追加模块、处理模块:
初始化模块,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行聚集判断模块,若为0,表示该数据报文来自数据聚集模块,则执行聚集分割模块;
聚集分割模块,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块;
聚集判断模块,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行动态解析模块;
静态解析模块,将msg1或所述多个子数据报文解析为节点的静态信息,执行追加模块;
动态解析模块,将msg1或所述多个子数据报文解析为节点的动态信息,执行追加模块;
追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块;
处理模块,将msg2发送给数据存储模块或上层的数据聚集模块;
数据存储模块,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将所述节点静态信息插入数据库的静态数据表,将所述节点动态信息插入历史信息表中,更新数据库。
6.如权利要求5所述的通过压缩数据提高监控资源扩展性的系统,其特征在于,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;
所述数据报文的第二位表示信息来源,第二位为1表示该数据报文的数据来源于数据收集模块,第二位为0则表示该数据报文的数据来源于数据聚集模块。
7.如权利要求5所述的通过压缩数据提高监控资源扩展性的系统,其特征在于,所述数据存储模块包括:
存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;
存储判断模块,判断msg的第二位,若为0,则执行第二插入模块,若为1,则执行第一插入模块;
第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;
第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。
8.如权利要求5所述的通过压缩数据提高监控资源扩展性的系统,其特征在于,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。
一种基于数据压缩的可扩展的监控方法及系统\n技术领域\n[0001] 本发明涉及大规模分布式系统的监控领域,具体涉及到一种基于数据压缩的可扩展的监控方法及系统。\n背景技术\n[0002] 为了有效的管理分布式计算系统,操作者必须了解当前系统及应用的行为。这就需要不间断的进行监控以提供给操作者该系统的当前状态。当计算机系统的结点规模扩展时,系统中的任何位置都可能变成瓶颈。因此,一个监控系统应该具有良好的可扩展性,以提供实时的监控数据。\n[0003] 数据收集时间间隔的粒度是监控系统的一个挑战。若时间粒度太粗,则获取的信息不能实时的描述出计算系统当前状态;若时间粒度太细,会增加计算系统的负载,使监控系统的扩展性降低。而且,同一个时间粒度,对一些度量可能太粗,但对其他的一些度量可能又太细。所以一个监控系统中,时间粒度的选取依赖于度量特性。\n[0004] 现有技术中存在一个用于分布于全球的计算机群(PlanetLab)的监控系统CoMon。\nCoMon是以中心化结构组织的,其实现包括两个守护程序:切片中心守护程序(Slice-centric daemon,SCD)和结点中心守护程序(Node-centric daemon,NCD)。每个结点上均运行着SCD和NCD,SCD聚集每个切片中所有进程消耗的资源。NCD通过操作系统提供或其他工具测量获取所在结点的状态信息。用户可以通过网络浏览器进行访问这些数据。每5分钟进行收集所有结点的信息,并将该信息写入相应的文件中。然而,中心化的结构限制了监控系统的扩展性。而且5分钟的时间粒度对有些指标太粗,而对另一些指标又太细。\n[0005] 现有技术中的Chukwa是一个监控和分析大型分布式系统的数据收集系统。Chukwa是在Hadoop(一个开源分布式系统且在其上实现了MapReduce:一种用于大规模并行计算的编程模型)上层进行实现,且保留这Hadoop的扩展行和健壮性。Chukwa是通过采集器和收集器来实现数据的收集的。收集器收集其所在结点上的状态信息,包括Hadoop日志和任务进度等。每个收集器收集来自数百个主机的数据,并将其全部写入由数据块和表示块来源及格式的元数据组成的单个文件(sink file,SF)。收集器定期的关闭他们的SF,并将其重命名以标记为可处理,并重新写新的SF。然后Hadoop周期性的执行两个MapReduce作业:第一个作业是仅将所有的SF进行存档;第二个作业是将存档的数据解析为结构化数据,并保存到Hadoop分布式文件系统(HDFS)。然后用户可以以MapReduce作业的形式对这些结构化数据进行分析。Chukwa依赖于Hadoop平台,关注的是大量日志文件的分析。\n[0006] 而现有技术中还存在一个用于大规模并行和分布式计算环境的监控系统,该系统也是以层次结构进行监控。该系统主要包括三个层次:后端进程(Back-end process,BE)、中间进程和前端进程(Front-end process,FE)。BE运行在需要监控的节点上,进行数据的收集,然后将数据发送给中间进程或直接发送给FE;中间进程对数据进行聚集、分析和过滤。然后将处理后的数据发送给FE;FE将接收到的数据存入数据库或直接显示在前台,用户可以使用结构化查询语言(Structured Query Language,SQL)访问数据库,以获得计算环境的历史状态。该监控系统内部通信使用的是自定义的格式,与ganglia系统相比,减少了由XML格式增加的传输量。但该监控系统收集数据的时间粒度由用户自己指定,而且没有考虑不同度量所需时间粒度的不同。\n[0007] 现有技术中的一种压缩监控数据的方法把节点分为工作节点和管理节点且把监控数据的属性分为两类:节点间属性(比如网络延时和带宽等)和节点内属性(比如CPU利用率、内存使用率、磁盘信息等)。管理节点分别周期性的收集每个工作节点的节点间属性值和节点内属性值。对于节点间的属性,该方法指出如果两点之间的属性值(如节点A到节点B的属性值和节点B到节点A的属性值)相等,所以只需发送其中一个属性值即可。对于节点内属性,该技术将所要监控的所有工作节点划分为块,每块具有相同的节点数量,首先管理节点收集所有工作节点的节点内属性,收集若干次数后,管理节点对每个特定块(设为块A)搜索是否存在一块的节点内属性值与其相似,若存在这样的块(设为块B),则块A在以后每次发送其节点内属性值时先于块B的节点内属性值进行比较,若相差在一定范围内,块A本次就不向管理节点发送其节点内属性值,管理节点就将块A的节点内属性值设为块B的节点内属性值,反正,块A将其节点内属性值发送给管理节点。当块A多次发送给管理节点其节点内属性值,则管理节点就从新查找块以代替块B。在动态环境下,管理节点需要对块A频繁的查找替换的块B,这时管理节点的开销很大。\n发明内容\n[0008] 为解决上述问题,本发明提供了一种基于数据压缩的可扩展的监控方法及系统,本发明通过压缩监控数据、自动调节数据收集时间粒度,减少了网络传输的数据量,提高了监控系统的扩展性。\n[0009] 为实现上述目的,本发明提供一种通过压缩数据提高监控资源扩展性的方法,该方法包括:\n[0010] 步骤1,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;\n[0011] 步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;\n[0012] 步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;\n[0013] 步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;\n[0014] 步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。\n[0015] 其中,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;\n[0016] 所述数据报文的第二位表示信息来源,第一位为1表示该数据报文的数据来源于数据收集模块,第一位为0则表示该数据报文的数据来源于数据聚集模块。\n[0017] 进一步的,所述步骤4包括:\n[0018] 步骤41,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行步骤43,若为0,表示该数据报文来自数据聚集模块,则执行步骤42;\n[0019] 步骤42,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43;\n[0020] 步骤43,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行步骤44,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行步骤45;\n[0021] 步骤44,将msg1或所述多个子数据报文解析为节点的静态信息,执行步骤46;\n[0022] 步骤45,将msg1或所述多个子数据报文解析为节点的动态信息,执行步骤46;\n[0023] 步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47;\n[0024] 步骤47,将msg2发送给数据存储模块或上层的数据聚集模块。\n[0025] 进一步的,所述步骤5包括:\n[0026] 步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;\n[0027] 步骤52,判断msg的第二位,若为0,则执行步骤54,若为1,则执行步骤53;\n[0028] 步骤53,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;\n[0029] 步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。\n[0030] 其中,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。\n[0031] 为实现上述目的,本发明还提供一种通过压缩数据提高监控资源扩展性的系统,该系统包括:\n[0032] 数据收集模块,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;\n[0033] 比较模块,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;\n[0034] 发送模块,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;\n[0035] 数据聚集模块,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;\n[0036] 数据存储模块,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。\n[0037] 其中,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;\n[0038] 所述数据报文的第二位表示信息来源,第一位为1表示该数据报文的数据来源于数据收集模块,第一位为0则表示该数据报文的数据来源于数据聚集模块。\n[0039] 进一步的,所述数据聚集模块包括:\n[0040] 初始化模块,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行聚集判断模块,若为0,表示该数据报文来自数据聚集模块,则执行聚集分割模块;\n[0041] 聚集分割模块,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块;\n[0042] 聚集判断模块,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行动态解析模块;\n[0043] 静态解析模块,将msg1或所述多个子数据报文解析为节点的静态信息,执行追加模块;\n[0044] 动态解析模块,将msg1或所述多个子数据报文解析为节点的动态信息,执行追加模块;\n[0045] 追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块;\n[0046] 处理模块,将msg2发送给数据存储模块或上层的数据聚集模块。\n[0047] 进一步的,所述数据存储模块包括:\n[0048] 存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;\n[0049] 存储判断模块,判断msg的第二位,若为0,则执行第二插入模块,若为1,则执行第一插入模块;\n[0050] 第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;\n[0051] 第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。\n[0052] 其中所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。\n[0053] 本发明的有益功效在于,本发明通过访问数据聚集数据库获得计算环境的当前信息或历史状态,然后利用数据压缩,对每个监控节点的任一种度量标准仅传输其值变化超过一定范围的数据,自动调整发送的监控数据,减少了网络传输量,获得了监控系统的高扩展性和各指标的时间粒度自动调整功能,当节点状态数据变化较大时,其发送数据量较多(不会超过现有监控系统内发送的数据量),时间粒度就较细;当节点状态数据变化较小时,其发送数据量较少,时间粒度就较粗。而且本发明能实时描述出系统的当前状态,减少系统的计算负载和网络传输量,保证了系统的扩展性,适用于现有的监控系统。\n[0054] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。\n附图说明\n[0055] 图1是本发明的一种通过压缩数据提高监控资源扩展性的方法流程图;\n[0056] 图2是本发明的一种通过压缩数据提高监控资源扩展性的系统示意图;\n[0057] 图3是本发明的一实施例的监控系统模型示意图;\n[0058] 图4是本发明的一实施例的监控系统中的三个进程示意图。\n具体实施方式\n[0059] 图1是本发明的一种通过压缩数据提高监控资源扩展性的方法流程图。如图1所示,该方法包括:\n[0060] 步骤1,数据收集模块收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;\n[0061] 步骤2,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;\n[0062] 步骤3,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;\n[0063] 步骤4,数据聚集模块接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;\n[0064] 步骤5,数据存储模块分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。\n[0065] 其中,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;\n[0066] 所述数据报文的第二位表示信息来源,第一位为1表示该数据报文的数据来源于数据收集模块,第一位为0则表示该数据报文的数据来源于数据聚集模块。\n[0067] 进一步的,所述步骤4包括:\n[0068] 步骤41,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行步骤43,若为0,表示该数据报文来自数据聚集模块,则执行步骤42;\n[0069] 步骤42,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行步骤43;\n[0070] 步骤43,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行步骤44,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行步骤45;\n[0071] 步骤44,将msg1或所述多个子数据报文解析为节点的静态信息,执行步骤46;\n[0072] 步骤45,将msg1或所述多个子数据报文解析为节点的动态信息,执行步骤46;\n[0073] 步骤46,将步骤44或步骤45解析所得的信息追加到msg2中,执行步骤47;\n[0074] 步骤47,将msg2发送给数据存储模块或上层的数据聚集模块。\n[0075] 进一步的,所述步骤5包括:\n[0076] 步骤51,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;\n[0077] 步骤52,判断msg的第二位,若为0,则执行步骤54,若为1,则执行步骤53;\n[0078] 步骤53,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;\n[0079] 步骤54,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。\n[0080] 其中,所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。\n[0081] 图2是本发明的一种通过压缩数据提高监控资源扩展性的系统示意图。如图2所示,该系统包括:\n[0082] 数据收集模块100,用于收集所在监控节点的静态信息,并将所述静态信息转化成静态数据报文发送给上层的数据聚集模块;\n[0083] 比较模块200,所述数据收集模块周期性的收集所在监控节点的动态信息,并将其与上一周期发送的相应动态信息相比较,若差值超过指定值,则将收集的动态信息加入到发送列表中,否则继续下一周期的收集操作;\n[0084] 发送模块300,动态信息收集完毕后,将所述发送列表中的所有动态信息转化成动态数据报文发送给上层的数据聚集模块;\n[0085] 数据聚集模块400,用于接收数据报文,对接收的所有数据报文的来源进行判断,若来源是下层的数据聚集模块,则直接发送给数据存储模块,若来源是数据收集模块,则进行属性判断后分别解析成相应的动态信息和静态信息,然后将所述动态信息和静态信息聚集成新的动态数据报文和静态数据报文后发送给上层的数据存储模块;\n[0086] 数据存储模块500,用于分别将所述新的动态数据报文和静态数据报文解析为节点动态信息和节点静态信息后,将其分别插入数据库的静态数据表和历史信息表中,更新数据库。\n[0087] 其中,所述数据报文的第一位表示信息属性,第一位为1表示该数据报文的数据为静态信息,第一位为0则表示该数据报文的数据为动态信息;\n[0088] 所述数据报文的第二位表示信息来源,第一位为1表示该数据报文的数据来源于数据收集模块,第一位为0则表示该数据报文的数据来源于数据聚集模块。\n[0089] 进一步的,所述数据聚集模块400包括:\n[0090] 初始化模块,数据聚集模块接收数据报文msg1并初始化一个新的数据报文msg2,将msg2的第一位设定为msg1的第一位,第二位设定为0,然后判断msg1的第二位,若为1,表示该数据报文来自数据收集模块,执行聚集判断模块,若为0,表示该数据报文来自数据聚集模块,则执行聚集分割模块;\n[0091] 聚集分割模块,将msg1分割成多个子数据报文,其中一个子数据报文对应一个节点的数据,执行聚集判断模块;\n[0092] 聚集判断模块,判断msg1或所述多个子数据报文的第一位,若为1,表示msg1或所述多个子数据报文的数据为静态信息,执行静态解析模块,若为0,表示msg1或所述多个子数据报文的数据为动态信息,则执行动态解析模块;\n[0093] 静态解析模块,将msg1或所述多个子数据报文解析为节点的静态信息,执行追加模块;\n[0094] 动态解析模块,将msg1或所述多个子数据报文解析为节点的动态信息,执行追加模块;\n[0095] 追加模块,将静态解析模块或动态解析模块解析所得的信息追加到msg2中,执行处理模块;\n[0096] 处理模块,将msg2发送给数据存储模块或上层的数据聚集模块。\n[0097] 进一步的,所述数据存储模块500包括:\n[0098] 存储分割模块,所述数据存储模块接收数据报文msg,将msg分割成多个子数据报文;\n[0099] 存储判断模块,判断msg的第二位,若为0,则执行第二插入模块,若为1,则执行第一插入模块;\n[0100] 第一插入模块,将所述多个子数据报文分别解析为节点静态信息,并将其插入数据库的静态数据表中;\n[0101] 第二插入模块,将所述多个子数据报文分别解析为节点动态信息,并将其插入数据库的历史信息表中。\n[0102] 其中所述静态信息包括:CPU频率、内存大小、网络带宽和磁盘大小;所述动态信息包括:CPU利用率、内存占用率、带宽使用量和磁盘使用率。\n[0103] 图3是本发明的一实施例的监控系统模型示意图。如图3所示,本发明的一个具体实施例的监控系统模型可以包括三个模块:数据收集模块(Data Collection Module,简称DCM)、数据聚集模块(Data Aggregation Module,简称DAM)和数据存储模块(Data Storage Module,简称DSM)。最底层的每个叶子节点为DCM,分别对应一个计算机节点。DCM周期性的收集其所在节点的状态数据并对数据进行处理,然后将处理后的数据发送给上层的DAM。\nDAM将收集的数据发送给其上层的DAM或DSM。DSM将收集的数据存入数据库。用户可通过访问数据库获得计算机系统的当前状态或历史状态。\n[0104] 具体来说,各模块的内容如下所述。\n[0105] 数据收集模块DCM的工作步骤包括:\n[0106] 步骤A1.收集所在节点的静态信息(例如CPU频率、内存大小、网络带宽和磁盘大小等),发送给上层DAM;\n[0107] 步骤A2.周期性(时间周期有用户自定义)收集所在节点的动态信息(例如CPU利用率、内存占用率、带宽使用量和磁盘使用率等);\n[0108] 步骤A3.将收集来的各个度量指标的值与上次发送的相应指标的值进行比较,若其变化超过一定量,则将该数据加入发送列表中;\n[0109] 步骤A4.所有收集的数据完成步骤A3后,将发送列表的所有数据发送给其上层DAM。\n[0110] DCM的步骤A3使得每次发送的数据仅是完整数据的一部分,实现监控数据的压缩,较少了数据传输量,从而提高了监控系统的扩展性。DCM的步骤A3也实现了自动调节发送数据的时间粒度的功能:当节点状态的某个度量指标数据变化范围和频率较大时,就需要每个周期发送该度量指标的数据,从而发送该度量指标的时间粒度就较细;而当节点状态某个度量指标数据变化范围或频率较小时,这时DCM就会在一些周期内不发送该度量指标的数据,从而发送该度量指标的时间粒度就较粗。\n[0111] 数据聚集模块DAM的工作步骤包括:\n[0112] 步骤B1.接收来自其下层的DCM或DAM的数据;\n[0113] 步骤B2.将接收的所有数据进行解析并将解析所得的数据进行聚集;\n[0114] 步骤B3.将聚集所得数据发送给其上层的DAM(若该DAM的上层是DAM)或DSM(若该DAM为最上层的DAM)。\n[0115] 数据存储模块DSM的工作步骤包括:\n[0116] 步骤C1.接收来自最上层的DAM发送的数据;\n[0117] 步骤C2.将接收的数据进行解析,并将结果存入数据库。\n[0118] 具体而言,本发明的三个模块(DCM、DAM和DSM)分别有三个守护进程实现。这三个守护进程分别为:数据收集守护进程(Data Collection Daemon,DCD)、数据聚集守护进程(Data Aggregation Daemon,DAD)和数据存储守护进程(Data Storage Daemon DSD)。图4是本法吗的一实施例的监控系统中的三个进程示意图。如图4所示:\n[0119] 数据收集守护进程DCD的具体步骤如下:\n[0120] 步骤A1.收集所在节点的静态信息并将其形成数据报文(其中的第一位为1,表示该数据报文的数据为静态信息;第二位为1,表示该数据报文是由DCD发送的);\n[0121] 步骤A2.将步骤A1得到的数据报文发送给其上层的DAD;\n[0122] 步骤A3.设定定时器,周期性的执行步骤A4到步骤A6;\n[0123] 步骤A4.初始化动态信息报文:第一位设定为0,表示该数据报文的数据为动态信息;第二位为1,表示该数据报文是由DCD发送的;\n[0124] 步骤A5.收集节点动态信息,与其上一次发送的相应信息值相比较,若两者差的绝对值超过一定值(如CPU利用率为5%,内存使用率为5%等),则将该动态信息追加到步骤A4的报文中;\n[0125] 步骤A6.将步骤A5得到的数据报文发送给其上层的DAD。\n[0126] 数据聚集守护进程DAD的具体步骤如下:\n[0127] 步骤B1.接收数据报文(定义为msg1)并初始化一个新的数据报文(定义为msg2),将msg2的第一位设定为msg1的第一位,第二位设定为0。判断msg1的第二位,若为1,表示该数据报文来自DCD,转到步骤B4,反之继续;\n[0128] 步骤B2.将msg1分割成多个小的数据报文,其中一个小的数据报文对应一个节点的数据;\n[0129] 步骤B3.判断msg1的第一位,若为1,表示该数据报文为节点的静态信息,对步骤B2中获得的多个小的数据报文分别执行步骤B5和步骤B7,反之对这些数据报文分别执行步骤B6和步骤B7;\n[0130] 步骤B4.msg1的第一位,若为1,表示该数据报文为节点的静态信息,执行步骤B5,反之,执行步骤B6;\n[0131] 步骤B5.将msg1或步骤B2所得的多个数据报文解析为节点的静态信息并转到步骤B7;\n[0132] 步骤B6.将msg1或步骤B2所得的多个数据报文解析为节点的动态信息;\n[0133] 步骤B7.将步骤B5或步骤B6解析所得的信息追加到msg2中;\n[0134] 步骤B8.将msg2发送给上层的DAD或DSD,转到步骤B1。\n[0135] 数据存储守护进程DSD的具体步骤如下:\n[0136] 步骤C1.接收数据报文(设为msg),将msg分割成多个小的数据报文;\n[0137] 步骤C2.判断msg的第二位,若为0,则转到步骤C4,反之继续;\n[0138] 步骤C3.将步骤C1所得的多个小的数据报文分别解析为节点静态信息并插入数据库的静态数据表中,转到步骤C1;\n[0139] 步骤C4.将步骤C1所得的多个小的数据报文分别解析为节点动态信息,对每条信息执行步骤C5;\n[0140] 步骤C5.将信息插入数据库的历史信息表中,并更新数据库的最新状态数据表的相应记录,转到步骤C1。\n[0141] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
法律信息
- 2023-03-10
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 201310102333.0
申请日: 2013.03.27
授权公告日: 2016.12.07
- 2017-05-17
专利权人的姓名或者名称、地址的变更
专利权人由上海瀛联体感智能科技有限公司变更为上海瀛联信息科技股份有限公司
地址由200031 上海市徐汇区湖南路121号10楼变更为200031 上海市徐汇区湖南路121号10楼
- 2016-12-07
- 2016-02-24
专利申请权的转移
登记生效日: 2016.01.28
申请人由中国科学院计算技术研究所变更为上海瀛联体感智能科技有限公司
地址由100190 北京市海淀区中关村科学院南路6号变更为200031 上海市徐汇区湖南路121号10楼
- 2013-08-28
实质审查的生效
IPC(主分类): G06F 17/30
专利申请号: 201310102333.0
申请日: 2013.03.27
- 2013-07-31
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-02-22
|
2011-08-16
| | |
2
| | 暂无 |
2011-05-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |