一种物理机资源信息的数据处理方法及系统的制作方法
【专利摘要】本发明提供一种物理机资源信息的数据处理方法及系统,其中,该方法包括:S1,获取物理机的静态信息以及当前时刻以当前状态值或累加值的形式表示的动态信息;S2,1秒后再次获取物理机的新动态信息,并将以累加值形式表示的新动态信息中的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息;S3,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位置,DRB用于标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果;S4,将静态信息、新动态信息以及1秒内的资源使用信息分别用低冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述步骤,目标节点获取被采集节点的实时资源信息。
【专利说明】一种物理机资源信息的数据处理方法及系统
【技术领域】
[0001] 本发明涉及以数字为主要传输数据的大规模数据处理领域,尤其涉及一种物理机 资源信息的数据处理方法及系统。
【背景技术】
[0002] 可扩展性是大规模软件系统的关键挑战之一。对于大规模系统,网络带宽是其软 件系统可扩展性的主要限制条件之一。所以,优化软件系统内部传输数是据的表示格式能 有效的减少网络传输量,从而提高软件系统的扩展性。
[0003] 可扩展标记语言(Extensible Markup Language, XML)是数据传输的公共语言,是 使用广泛的一种数据传输格式。使用XML能提高软件之间的独立性。然而XML对每个数据 项都用两个标签(起始标签和结束标签)给予界定,这大大增加了数据的冗余信息。然而大 规模的软件系统需要高可扩展性,具有较多冗余信息的XML数据表示格式会增加网络传输 数据量,所以XML不应该被用于大规模软件系统内部传输数据的格式。
[0004] Chukwa:A large - scale monitoring system. Jerome Boulon, Andy Konwinski and Runping Qi提出了一个运行在Hadoop (-个开源分布式系统且在其上实现了 MapReduce: -种用于大规模并行计算的编程模型)之上的大规模监控系统。该系统内部以 文件进行传输,这种方法适用于Hadoop做后期处理,然而以文件进行系统内部数据传输形 式会增加不必要的冗余信息(比如,文件属性等。当数据较少时,文件属性有时会多于有用 信息)。
[0005] Aggregation of Real-Time System Monitoring Data for Analyzing Large - Scale Parallel and Distributed Computing Environments. S. B0hm, C. Engelmann, and S. L. Scott提出的一个大规模的监控系统内部传输数据的格式是一个数 据项标记(identification, ID)对应一个数据项的值。使用这种方法表示的数据比XML少 了很多的冗余信息,然而,对于以数字为主的数据,数据项的值与数据项ID占用基本相同 的大小,所以该方法所表示的数据也具有较高的冗余度。
【发明内容】
[0006] 为解决上述问题,本发明提供一种物理机资源信息的数据处理方法及系统,以减 少传输数据中的冗余信息。
[0007] 为达到上述发明目的,本发明提供一种物理机资源信息的数据处理方法,该方法 包括:
[0008] 步骤1,从linux命令的资源信息和proc文件系统的文件中获取物理机的静态信 息以及当前时刻以当前状态值或累加值的形式表示的动态信息;
[0009] 步骤2,1秒后再次获取物理机的新动态信息,将以累加值的形式表示的新动态信 息中的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息;
[0010] 步骤3,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位置,DRB 用于标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果;
[0011] 步骤4,将所述静态信息、所述新动态信息以及所述1秒内的资源使用信息分别用 低冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述步骤,获取该目标节点 的实时资源信息。
[0012] 进一步的,所述步骤1中的静态信息获取方法包括:
[0013] 步骤11 :从Linux提供的查看网卡配置信息的ifconfig命令的输出信息中提取 IP地址;
[0014] 步骤12,读取proc文件系统中的cpuinfo文件,获取处理器的核数和频率;
[0015] 步骤13,读取proc文件系统中的meminfo文件,获取内存总大小;
[0016] 步骤14,读取proc文件系统中的partitions文件,获取磁盘总大小;
[0017] 步骤15,,从Linux提供的查看各部件状态的dmesg命令的输出信息中获取网络带 宽;
[0018] 步骤16,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的累 加值;
[0019] 步骤17,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用 量的累加值。
[0020] 进一步的,所述步骤1中的动态信息获取方法包括:
[0021] 步骤111,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的 累加值;
[0022] 步骤112,读取proc文件系统中的meminfo文件,获取内存使用量;
[0023] 步骤113,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使用 量;
[0024] 步骤114,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用 量的累加值。
[0025] 进一步的,所述步骤2包括:
[0026] 步骤21,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处理器使 用量累加值,得到该秒内的处理器的使用量;
[0027] 步骤22,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网络带宽 使用量累加值,得到该秒内的网络带宽的使用量。
[0028] 进一步的,所述步骤3中:
[0029] 若数据类型有NDTI种,则使用每条数据的前位作为DTI,其中「/?1表示 不小于m的最小整数;
[0030] 所述CI,用一位表示,若该位为1,则表示该条数据在数据报文中不是最后一条, 若该位为0,则表示该条数据是数据报文的最后一条;
[0031] 所述DV中的数据项的值为长度可变的字符串,则在该字符串的前面加上一个字 节表示该字符串的长度;
[0032] 每类数据的数据项数最多为Ν_,则使用传输的每条数据的至少Ν_位作为DRB, 所述DRB的每一位对应一个数据项,如果某位为1,则表示DV包含该位对应的数据项的值, 若该位为0,则DV不包含该数据项的值。
[0033] 进一步的,所述步骤3中:
[0034] 如果软件系统内部传输的数据仅有一类,则可将DTI删去;若每次传输的数据的 数据项均相同,则可将DRB删去。
[0035] 为实现上述发明目的,本发明还提供一种物理机资源信息的数据处理系统,该系 统包括:
[0036] 信息获取模块,从linux命令的资源信息和proc文件系统的文件中获取物理机的 静态信息以及当前时刻以当前状态值或累加值的形式表示的动态信息;
[0037] 信息处理模块,1秒后再次获取物理机的新动态信息,将以累加值的形式表示的新 动态信息中的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息;
[0038] 表格创建模块,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位 置,DRB用于标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果;
[0039] 结果获取模块,将所述静态信息、所述新动态信息以及所述1秒内的资源使用信 息分别用低冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述模块,获取该 目标节点的实时资源信息。
[0040] 进一步的,所述信息获取模块包括:
[0041] 提取IP地址模块,从Linux提供的查看网卡配置信息的ifconfig命令的输出信 息中提取IP地址;
[0042] 第一读取proc文件系统模块,读取proc文件系统中的cpuinfo文件,获取处理器 的核数和频率,读取proc文件系统中的meminfo文件,获取内存总大小,读取proc文件系 统中的partitions文件,获取磁盘总大小,读取proc文件系统中的stat文件,获取自开机 以来的处理器使用量的累加值,读取proc文件系统中的net/dev文件,获取自开机以来的 网络带宽使用量的累加值;
[0043] 运行dmesg命令模块,从Linux提供的查看各部件状态的dmesg命令的输出信息 中获取网络带宽。
[0044] 进一步的,所述信息获取模块还包括:
[0045] 第二读取proc文件系统模块,读取proc文件系统中的stat文件,获取自开机以 来的处理器使用量的累加值,读取proc文件系统中的meminfo文件,获取内存使用量,读取 proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的累加值;
[0046] 执行df模块,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使 用量。
[0047] 进一步的,其特征在于,所述信息处理模块包括:
[0048] 第一处理模块,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处 理器使用量累加值,得到该秒内的处理器的使用量;
[0049] 第二处理模块,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网 络带宽使用量累加值,得到该秒内的网络带宽的使用量。
[0050] 本发明的有益效果在于:大大减少了数据传输中的冗余。若本发明被用于大规模 的监控系统中,可通过降低由监控数据产生的网络传输,从而增加了监控系统的扩展性。而 且,本发明采集数据的方法是直接利用操作系统提供的数据,不存在使用中间数据采集工 具带来的开销。
[0051] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
【专利附图】
【附图说明】
[0052] 图1是使用本发明的数据表示方法表示一条完整的数据;
[0053] 图2是使用本发明的数据表示方法表示一个具有多条数据的数据报;
[0054] 图3是用本发明的数据表示方法实现包含一条具有完整信息的静态数据的数据 报;
[0055] 图4是用本发明的数据表示方法实现包含一条具有完整信息的动态数据的数据 报;
[0056] 图5是用本发明的数据表示方法实现包含一条具有完整信息的静态数据和一条 具有完整信息的动态数据的数据报;
[0057] 图6是用本发明的数据表示方法实现包含一条具有部分信息的动态数据的数据 报;
[0058] 图7是本发明的物理机资源信息的数据处理方法流程图;
[0059] 图8是本发明的物理机资源信息的数据处理系统示意图。
【具体实施方式】
[0060] 图7是本发明的物理机资源信息的数据处理方法流程图。如图7所示,该方法包 括:
[0061] S1,从linux命令的资源信息和proc文件系统的文件中获取物理机的静态信息以 及当前时刻以当前状态值或累加值的形式表示的动态信息;
[0062] S2,1秒后再次获取物理机的新动态信息,将以累加值的形式表示的新动态信息中 的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息;
[0063] S3,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位置,DRB用于 标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果;
[0064] S4,将所述静态信息、所述新动态信息以及所述1秒内的资源使用信息分别用低 冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述步骤,获取该目标节点的 实时资源信息。
[0065] 进一步的,所述S1中的静态信息获取方法包括:
[0066] S11 :,从Linux提供的查看网卡配置的信息的ifconfig命令的输出信息中提取 IP地址;
[0067] S12,读取proc文件系统中的cpuinfo文件,获取处理器的核数和频率;
[0068] S13,读取proc文件系统中的meminfo文件,获取内存总大小;
[0069] S14,读取proc文件系统中的partitions文件,获取磁盘总大小;
[0070] S15,从Linux提供的查看各部件状态的dmesg命令的输出信息中获取网络带;
[0071] S16,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的累加 值;
[0072] S17,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的 累加值。
[0073] 进一步的,所述S1中的动态信息获取方法包括:
[0074] S111,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的累加 值;
[0075] S112,读取proc文件系统中的meminfo文件,获取内存使用量;
[0076] S113,,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使用量;
[0077] S114,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量 的累加值。
[0078] 进一步的,所述S2包括:
[0079] S21,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处理器使用 量累加值,得到该秒内的处理器的使用量;
[0080] S22,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网络带宽使 用量累加值,得到该秒内的网络带宽的使用量。
[0081] 进一步的,所述S3中:
[0082] 若数据类型有NDTI种,则使用每条数据的前位作为DTI,其中「W]表示 不小于m的最小整数;
[0083] 所述CI,用一位表示,若该位为1,则表示该条数据在数据报文中不是最后一条, 若该位为〇,则表示该条数据是数据报文的最后一条;
[0084] 所述DV中的数据项的值为长度可变的字符串,则在该字符串的前面加上一个字 节表示该字符串的长度;
[0085] 每类数据的数据项数最多为Ν_,则使用传输的每条数据的至少Ν_位作为DRB, 所述DRB的每一位对应一个数据项,如果某位为1,则表示DV包含该位对应的数据项的值, 若该位为0,则DV不包含该数据项的值。
[0086] 进一步的,所述S3中:
[0087] 如果软件系统内部传输的数据仅有一类,则可将DTI删去;若每次传输的数据的 数据项均相同,则可将DRB删去。
[0088] 图8是本发明的物理机资源信息的数据处理系统示意图。如图8所示,该系统包 括:
[0089] 信息获取模块100,从linux命令的资源信息和proc文件系统的文件中获取物理 机的静态信息以及当前时刻以当前状态值或累加值的形式表示的动态信息;
[0090] 信息处理模块200,1秒后再次获取物理机的新动态信息,将以累加值的形式表示 的新动态信息中的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息;
[0091] 表格创建模块300,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数 据位置,DRB用于标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果;
[0092] 结果获取模块400,将所述静态信息、所述新动态信息以及所述1秒内的资源使用 信息分别用低冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述模块,获取 该目标节点的实时资源信息。
[0093] 进一步的,所述信息获取模块100包括:
[0094] 提取IP地址模块,从Linux提供的查看网卡配置的信息ifconfig命令的输出中 提取IP地址;
[0095] 第一读取proc文件系统模块,读取proc文件系统中的cpuinfo文件,获取处理器 的核数和频率,读取proc文件系统中的meminfo文件,获取内存总大小,读取proc文件系 统中的partitions文件,获取磁盘总大小,读取proc文件系统中的stat文件,获取自开机 以来的处理器使用量的累加值,读取proc文件系统中的net/dev文件,获取自开机以来的 网络带宽使用量的累加值;
[0096] 运行dmesg命令模块,从Linux提供的查看各部件状态的dmesg命令中获取网络 带宽。
[0097] 进一步的,所述信息获取模块100还包括:
[0098] 第二读取proc文件系统模块,读取proc文件系统中的stat文件,获取自开机以 来的处理器使用量的累加值,读取proc文件系统中的meminfo文件,获取内存使用量,读取 proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的累加值;
[0099] 执行df模块,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使 用量。
[0100] 进一步的,其特征在于,所述信息处理模块200包括:
[0101] 第一处理模块,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处 理器使用量累加值,得到该秒内的处理器的使用量;
[0102] 第二处理模块,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网 络带宽使用量累加值,得到该秒内的网络带宽的使用量。
[0103] 进一步的,所述表格创建模块300中:
[0104] 若数据类型有NDTI种,则使用每条数据的前「loggiV^l位作为DTI,其中表示 不小于m的最小整数;
[0105] 所述CI,用一位表示,若该位为1,则表示该条数据在数据报文中不是最后一条, 若该位为0,则表示该条数据是数据报文的最后一条;
[0106] 所述DV中的数据项的值为长度可变的字符串,则在该字符串的前面加上一个字 节表示该字符串的长度;
[0107] 每类数据的数据项数最多为Ν_,则使用传输的每条数据的至少Ν_位作为DRB, 所述DRB的每一位对应一个数据项,如果某位为1,则表示DV包含该位对应的数据项的值, 若该位为0,则DV不包含该数据项的值。
[0108] 进一步的,所述表格创建模块300中:
[0109] 如果软件系统内部传输的数据仅有一类,则可将DTI删去;若每次传输的数据的 数据项均相同,则可将DRB删去。
[0110] 本发明的资源信息采集方法面向的是Linux操作系统,信息来源为Linux提供的 命令和proc文件系统,proc文件系统主要包括资源总量和资源的使用情况,资源使用情况 是以自开机以来的累加值(如CPU的负载和网络传输量等)和当前状态(如内存使用量和磁 盘的使用量等)的形式表示的。
[0111] -个数据报文可以包含一条或多条数据。使用该发明中的数据表示方法,一条完 整的数据的表示如图1,一个具有多条数据的数据报的表示如图2。
[0112] 一个大规模系统的监控系统,传输的数据共两类:静态数据和动态数据。其中的每 类数据所包含的数据项(假设各数据项值的大小和单位,以下数字均用10进制表示)如下:
[0113] 静态数据(共6项):网络地址(10. 10. 10. 10,占4个字节)、处理器核数(8个,占一 个字节)、处理器频率(2048MHZ,占两个字节)、内存总大小(4192MB,占两个字节)、磁盘总 大小(140272MB,占四个字节)和网卡带宽(1000Mbps,占两个字节)。
[0114] 动态数据(共5项):网络地址(10. 10. 10. 10占4个字节)、处理器负载(123MHZ,占 两个字节)、内存使用量(2001MB,占两个字节)、磁盘使用量(2013MB,占四个字节)和网卡 带宽使用量(28Mbps,占两个字节)。
[0115] 其中处理器负载和网卡带宽使用量是以自开机以来的累加值的形式表示,其它的 均以当前状态的形式表示。因为该软件系统内部传输的数据共两类,所以每条数据的DTI 为|log22~| =1位,1表示静态数据,0表示动态数据。DRB为6位:对于静态数据,DRB的6位 (第一位到第六位)依次对应网络地址、处理器核数、处理器频率、内存总大小、磁盘总大小 和网卡带宽;对于动态数据,DRB的前5位(第一位到第五位)依次对应网络地址、处理器负 载、内存使用量、磁盘使用量和网卡带宽使用量。
[0116] 为便于实现,使用一个字节来表示DTI (第8位)、CI (第7位)和DRB (前6位)。
[0117] 数据采集的具体步骤如下:
[0118] 步骤A :利用Linux提供的一些命令和proc文件系统的文件获取物理机的静态信 息和该时刻以累加值的形式表不的动态信息;
[0119] 步骤B:将获取的静态信息处理成低冗余的数据报文,发送给需要获取该物理机 信息的目标节点;
[0120] 步骤C : 1秒后从新从proc文件系统的文件中读取物理机的动态信息;
[0121] 步骤D :对于以累加值的形式表示的动态信息,将步骤C获取的数据分别减去1秒 前获取的数据,得到该1秒内的资源使用情况;
[0122] 步骤E :将步骤C获得的以当前状态为表示形式的动态信息和步骤D计算得出的 动态信息处理成低冗余的数据报文,发送给需要获取该物理机信息的目标节点;
[0123] 步骤F :重复步骤C - E,目标节点就可以获取该节点实时的资源信息。
[0124] 其中步骤A的具体步骤为:
[0125] 步骤A1 :运行ifconfig(Linux中查看网卡配置的信息),提取输出信息中的IP地 址(10. 10. 10. 10);
[0126] 步骤A2 :读取proc文件系统中的cpuinfo文件,获取处理器的核数(8)和频率 (2048MHZ);
[0127] 步骤A3 :读取proc文件系统中的meminfo文件,获取内存总大小(4192MB);
[0128] 步骤A4 :读取proc文件系统中的partitions文件,获取磁盘总大小(140272MB);
[0129] 步骤A5 :运行dmesg命令(Linux提供的查看各部件状态的命令),获取网络带宽 (1000Mbps);
[0130] 步骤A6 :读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的 累加值;
[0131] 步骤A7 :读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用 量的累加值。
[0132] 步骤B中处理得到的数据报文如图3,其中BF(二进制为10111111)为表示DTI、 CI和DRB的8位数,其余的分别表示各静态数据项的值。
[0133] 步骤C又包括一下步骤:
[0134] 步骤C1 :读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的 累加值;
[0135] 步骤C2 :读取proc文件系统中的meminfo文件,获取内存使用量(2001MB);
[0136] 步骤C3 :执行df (Linux提供的查看磁盘资源的命令),从该命令输出信息中提取 磁盘使用量(2013MB);
[0137] 步骤C4 :读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用 量的累加值;
[0138] 步骤D包括一下步骤:
[0139] 步骤D1 :将步骤C1获取的处理器使用量累加值减去上一秒(从步骤A6或步骤C1) 获取的处理器使用量累加值,得到该秒内的处理器的使用量(123MHZ);
[0140] 步骤D2 :将步骤C4获取的网络带宽使用量累加值减去上一秒(从步骤A7或步骤 C4)获取的网络带宽使用量累加值,得到该秒内的网络带宽的使用量(28Mbps);
[0141] 步骤E处理得到的数据报文如图4,其中IF(二进制为00011111)为表示DTI、CI 和DRB的8位数,其余的分别表示各动态数据项的值。
[0142] 如果要将步骤A获得的静态数据与步骤C获取的动态数据一起发送,则将这些数 据处理得到的数据报文如图5,其中FF(二进制为11111111)和1F(二进制为00011111)分 别为表示静态和动态数据的DTI、CI和DRB的前8位数,静态数据的CI为1 (FF的第7位) 表示该条数据后还有数据(动态数据),而动态数据的CI为0 (1F的第7位)表示该条数据 为最后一条。
[0143] 如果目标节点仅需要获得该物理机节点的处理器负载、内存使用量和磁盘使用量 的动态数据,则步骤E处理得到的数据报如图6,其中0F(二进制为00001111)为表示DTI、 CI和DRB的8位数。DRB为0F (二进制为01111),表示该数据报文的数据中的DV仅含有网 络地址、处理器负载、内存使用量和磁盘使用量的值,不包含网卡带宽使用量。
[0144] 使用本发明的数据表示方法需要知道软件系统内部传输的数据种类个数和每类 数据包含的数据项的个数。对于值是数字的数据项需要知道该数据项的大小。
[0145] 每条数据的DTI用于标识数据的类型。一个软件系统内部传输的数据共有NDTI类, 则使用每条数据的前(「wl表示不小于m的最小整数)位作为DTI,来表示该条 数据的类型。
[0146] 紧随DTI的是CI,用一位表示。若该位为1,则表示该条数据在数据报文中不是最 后一条,反之,则表示该条数据是数据报文的最后一条。
[0147] CI之后是DRB,用于标识其后续的数据项。每类数据的数据项数最多为Ν_,则使 用传输的每条数据的至少Ν_位作为DRB。DRB的每一位对应一个数据项。DRB中,如果某 位为1,则表示DV包含该位对应的数据项的值,反之,DV不包含该数据项的值。
[0148] 最后DV为按照CI制定的顺序将每个数据项的值进行排列的结果。如果该值为长 度可变的字符串,则在该字符串的前面加上一个字节表示该字符串的长度。
[0149] 如果软件系统内部传输的数据仅有一类,则可将DTI删去;若每次传输的数据的 数据项均相同,则可将DRB删去。从而进一步的减少软件内部传输数据的冗余。
[0150] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟 悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变 形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1. 一种物理机资源信息的数据处理方法,其特征在于,包括: 步骤1,从linux命令的资源信息和proc文件系统的文件中获取物理机的静态信息以 及当前时刻以当前状态值或累加值的形式表示的动态信息; 步骤2,1秒后再次获取物理机的新动态信息,将以累加值的形式表示的新动态信息中 的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息; 步骤3,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位置,DRB用于 标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果; 步骤4,将所述静态信息、所述新动态信息以及所述1秒内的资源使用信息分别用低冗 余数据表格进行表示,然后将其发送给目标节点,重复执行上述步骤,获取该目标节点的实 时资源信息。
2. 如权利要求1所述的物理机资源信息的数据处理方法,其特征在于,所述步骤1中的 静态信息获取方法包括: 步骤11,从Linux提供的查看网卡配置信息的ifconfig命令的输出信息中提取IP地 址; 步骤12,读取proc文件系统中的cpuinfo文件,获取处理器的核数和频率; 步骤13,读取proc文件系统中的meminfo文件,获取内存总大小; 步骤14,读取proc文件系统中的partitions文件,获取磁盘总大小; 步骤15,从Linux提供的查看各部件状态的dmesg命令的输出信息中获取网络带宽; 步骤16,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的累加 值; 步骤17,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的 累加值。
3. 如权利要求1所述的物理机资源信息的数据处理方法,其特征在于,所述步骤1中的 动态信息获取方法包括: 步骤111,读取proc文件系统中的stat文件,获取自开机以来的处理器使用量的累加 值; 步骤112,读取proc文件系统中的meminfo文件,获取内存使用量; 步骤113,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使用量; 步骤114,读取proc文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的 累加值。
4. 如权利要求1所述的物理机资源信息的数据处理方法,其特征在于,所述步骤2包 括: 步骤21,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处理器使用量 累加值,得到该秒内的处理器的使用量; 步骤22,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网络带宽使用 量累加值,得到该秒内的网络带宽的使用量。
5. 如权利要求1所述的物理机资源信息的数据处理方法,其特征在于,所述步骤3中: 若数据类型有NDTI种,则使用每条数据的前「l 〇g2A^l位作为DTI,其中「W表示不小 于m的最小整数; 所述CI,用一位表示,若该位为1,则表示该条数据在数据报文中不是最后一条,若该 位为0,则表示该条数据是数据报文的最后一条; 所述DV中的数据项的值为长度可变的字符串,则在该字符串的前面加上一个字节表 不该字符串的长度; 每类数据的数据项数最多为Ν_,则使用传输的每条数据的至少Ν_位作为DRB,所述 DRB的每一位对应一个数据项,如果某位为1,则表示DV包含该位对应的数据项的值,若该 位为0,则DV不包含该数据项的值。
6. 如权利要求1所述的物理机资源信息的数据处理方法,其特征在于,所述步骤3中: 如果软件系统内部传输的数据仅有一类,则可将DTI删去;若每次传输的数据的数据 项均相同,则可将DRB删去。
7. -种物理机资源信息的数据处理系统,其特征在于,包括: 信息获取模块,从linux命令的资源信息和proc文件系统的文件中获取物理机的静态 信息以及当前时刻以当前状态值或累加值的形式表示的动态信息; 信息处理模块,1秒后再次获取物理机的新动态信息,将以累加值的形式表示新动态信 息中的数据减去上一秒获取的动态信息的数据,得到1秒内的资源使用信息; 表格创建模块,创建低冗余数据表格:DTI用于标识数据类型,CI用于标识数据位置, DRB用于标识数据后续传输的数据项,DV用于标识数据项的值按顺序排列的结果; 结果获取模块,将所述静态信息、所述新动态信息以及所述1秒内的资源使用信息分 别用低冗余数据表格进行表示,然后将其发送给目标节点,重复执行上述模块,获取该目标 节点的实时资源信息。
8. 如权利要求7所述的物理机资源信息的数据处理系统,其特征在于,所述信息获取 模块包括: 提取IP地址模块,从Linux提供的查看网卡配置信息的ifconfig命令的输出信息中 提取IP地址; 第一读取proc文件系统模块,读取proc文件系统中的cpuinfo文件,获取处理器的核 数和频率,读取proc文件系统中的meminfo文件,获取内存总大小,读取proc文件系统中 的partitions文件,获取磁盘总大小,读取proc文件系统中的stat文件,获取自开机以来 的处理器使用量的累加值,读取proc文件系统中的net/dev文件,获取自开机以来的网络 带宽使用量的累加值; 运行dmesg命令模块,从Linux提供的查看各部件状态的dmesg命令的输出信息中获 取网络带宽。
9. 如权利要求7所述的物理机资源信息的数据处理系统,其特征在于,所述信息获取 模块还包括: 第二读取proc文件系统模块,读取proc文件系统中的stat文件,获取自开机以来的 处理器使用量的累加值,读取proc文件系统中的meminfo文件,获取内存使用量,读取proc 文件系统中的net/dev文件,获取自开机以来的网络带宽使用量的累加值; 执行df模块,从Linux提供的查看磁盘资源的df命令的输出信息中提取磁盘使用量。
10. 如权利要求7所述的物理机资源信息的数据处理系统,其特征在于,所述信息处理 模块包括: 第一处理模块,将所述自开机以来的处理器使用量的累加值减去上一秒获取的处理器 使用量累加值,得到该秒内的处理器的使用量; 第二处理模块,将所述自开机以来的网络带宽使用量累加值减去上一秒获取的网络带 宽使用量累加值,得到该秒内的网络带宽的使用量。
【文档编号】G06F17/30GK104102664SQ201310123750
【公开日】2014年10月15日 申请日期:2013年4月10日 优先权日:2013年4月10日
【发明者】王博, 孙毓忠, 展旭升, 杨庆林 申请人:中国科学院计算技术研究所