一种国产环境下服务器监测方法及装置制造方法

文档序号:6523164阅读:242来源:国知局
一种国产环境下服务器监测方法及装置制造方法
【专利摘要】本申请公开了一种国产环境下服务器监测方法及装置,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据。通过本申请提供的方法,创建三个线程,触发第一线程实时监测性能数据的产生,并控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地进行监测,相较于现有技术的单线程轮询机制,可以及时监测产生的性能数据,提高了监测效率。
【专利说明】—种国产环境下服务器监测方法及装置
【技术领域】
[0001]本申请涉及设备监测【技术领域】,尤其是一种国产环境下服务器监测方法及装置。【背景技术】
[0002]服务器,是应用程序与硬件之间的中间系统,其性能的好坏直接决定应用程序的工作状态。因此,需要实时获取服务器的性能数据,并对其进行分析从而得出服务器的运行状态,以达到对服务器性能的监测。目前,使用的监测方式为单线程轮询机制,即数据监测线程每隔一段时间获取一次监测数据。
[0003]而由于监测需要依赖于一定的运行环境,如操作系统、CPU等,中国国内研究开发的一些运行环境,如飞腾CPU、麒麟操作系统及龙芯平台等,由于自身技术因素的限制如CPU主频速度慢,所述监测方式获取监测数据耗费的时间较长,监测效率低下。

【发明内容】

[0004]有鉴于此,本申请提供了一种国产环境下服务器监测方法及装置,以解决现有技术中监测方式获取监测数据耗费的时间较长,监测效率低下的问题。本申请提供的技术方案如下:
[0005]一种国产环境下服务器监测方法,包括:
[0006]接收用户发送的监测指令;
[0007]依据接收到的监测指令,创建第一线程、第二线程及第三线程;
[0008]触发所述第一线程实时监测所述服务器是否产生性能数据;
[0009]若是,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
[0010]上述方法,优选的,预先设定监测队列的阈值容量为Q,预先设置有监控文件,其中:所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,包括:
[0011]控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;
[0012]当所述第一结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
[0013]当所述第一结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;
[0014]当所述第二结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;[0015]当所述第二结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
[0016]上述方法,优选的,所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,包括:
[0017]控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
[0018]控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
[0019]上述方法,优选的,在所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据之后,还包括:
[0020]将所述第三线程读取的所述监测队列中的性能数据进行显示。
[0021]本申请还提供了一种国产环境下服务器监测装置,包括:
[0022]接收指令单元,用于接收用户发送的监测指令;
[0023]创建线程单元,用于依据接收到的监测指令,创建第一线程、第二线程及第三线程;
[0024]第一触发单元,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元;
[0025]第二触发单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元;
[0026]第三触发单元,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
[0027]上述装置,优选的,还包括:
[0028]第一预先设置单元,用于预先设置阈值容量为Q的监测队列;
[0029]第二预先设置单元,用于预先设置监控文件。
[0030]上述装置,优选的,所述第二触发单元包括:
[0031]第一判断子单元,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发第一结果子单元;当所述第一结果为否时,触发弟二结果单兀;
[0032]第一结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
[0033]第二结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发第三结果子单元;当所述第二结果为否时,触发第四结果子单元;
[0034]第三结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;
[0035]第四结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
[0036]上述装置,优选的,所述第三触发单元包括:
[0037]划分子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
[0038]读取子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
[0039]上述装置,优选的,还包括:
[0040]显示单元,用于将所述第三线程读取的所述监测队列中的性能数据进行显示。
[0041]由以上的技术方案可知,本申请提供的一种国产环境下服务器监测方法及装置,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。通过本申请提供的方法,创建三个线程,触发第一线程实时监测性能数据的产生,并控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中的单线程轮询机制,可以及时监测服务器产生的性能数据,提高了监测效率。
【专利附图】

【附图说明】
[0042]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本申请提供的一种国产环境下服务器监测方法实施例一的流程图;
[0044]图2为本申请提供的一种国产环境下服务器监测方法实施例二的部分流程图;
[0045]图3为本申请提供的一种国产环境下服务器监测装置实施例三的结构示意图;
[0046]图4为本申请提供的一种国产环境下服务器监测装置实施例四的部分结构示意图;
[0047]图5为本申请提供的一种国产环境下服务器监测装置实施例五的部分结构示意图;
[0048]图6为本申请提供的一种国产环境下服务器监测装置实施例六的部分结构示意图。
【具体实施方式】
[0049]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0050]请参阅图1,其示出了本申请提供的一种国产环境下服务器监测方法实施例一的流程图,本实施例可以包括:
[0051]步骤101:接收用户发送的监测指令。
[0052]用户要查看服务器的运行状态,需要分析所述服务器的产生的性能数据,从而可依据不同的运行状态决定如何对服务器进行调整或设置。为实现所述监测功能,用户启动监测过程,启动方式可以认为发送监测指令。
[0053]步骤102:依据接收到的监测指令,创建第一线程、第二线程及第三线程。
[0054]当接收到监测指令时,进行创建线程过程。
[0055]步骤103:触发所述第一线程实时监测所述服务器是否产生性能数据;若是,执行步骤104。
[0056]创建的第一线程用于实时监测所述服务器是否产生性能数据,并在产生性能数据时,即执行步骤104。其中,所述服务器可以是应用服务器,则与所述应用服务器相对应的性能数据可以包括线程池状态数据如当前线程总数、虚拟机内存统计数据、虚拟机类加载数据、WEB容器统计数据等,所述性能数据用于表示所述服务器的运行状态。需要说明的是,所述服务器包括但不限定与应用服务器,还可以包括文件服务器、网页服务器等,只要是可以产生能表明自身运行状态性能数据的服务器都属于本申请的保护范围。
[0057]需要说明的是,触发所述第一线程持续实时监测所述服务器是否产生性能数据,直到接收到用户发送的监测停止指令。
[0058]步骤104:控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
[0059]控制所述第一线程监测到产生性能数据时触发所述第二线程,以使所述第二线程将所述性能数据放入监测队列,并在所述第二线程完成所述工作后,控制所述第二线程触发所述第三线程,以使所述第三线程读取性能数据。其中,所述触发过程可以向被触发对象发送指令,当被触发对象接收到指令时,完成相应工作。
[0060]当然,所述控制动作也可认为是触发的动作,即向被控制对象发送相应指令,当被控制对象接收到指令时,完成相应工作。
[0061]需要说明的是,步骤103与所述步骤104可同时进行,即在所述第二线程将产生的性能数据放入到预先设置的监测队列中或所述第三线程读取所述监测队列中的性能数据的同时,所述第一线程监测是否产生性能数据。
[0062]由以上的技术方案可知,本实施例提供了一种国产环境下服务器监测方法,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。
[0063]需要说明的是,国产环境下生产的CPU模块具有核数多的特点,通过本申请提供的方法,创建的所述三个线程可以同时运行在不同的内核上,分别完成性能数据获取过程不同的工作。本申请控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中使用单线程轮询机制,即隔一段时间获取一次监控数据,提高了线程的利用率,可以及时获取产生的性能数据,提高了监测效率。
[0064]同时,触发第一线程实时监测性能数据的产生,所述第一线程可以与所述第二线程或所述第三线程同时进行,相较于现有技术中单线程独自执行获取性能数据,一方面进一步提高了监测效率,另一方面提高了进程的利用率,降低资源消耗。
[0065]需要说明的是,上述实施例步骤102中的创建第一线程、第二线程及第三线程的时间点并不作限制,即可以在接收到监测指令时,同时或依次创建所述三个线程;也可以是在接收到监测指令时创建第一线程,在所述第一线程监测到所述服务器产生性能数据后创建第二线程,在所述第二线程将所述性能数据放入到所述监测队列后,创建第三线程。优选的,选用第二种创建方式,即当使用某一线程前创建该线程,可以提高资源的利用率。
[0066]请参阅图2,其示出了本申请提供的一种国产环境下服务器监测方法实施例二的部分流程图,预先设定监测队列的阈值容量为Q,预先设置有监控文件,当然,所述预先设置监测队列及监控文件的动作并不是每次对服务器的性能数据进行监测的过程中都执行,只是在首次监测前,进行相应的设置即可。实施例一步骤103中的所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中可以由以下步骤实现:
[0067]步骤201:控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,执行步骤202 ;当所述第一结果为否时,执行步骤203。
[0068]所述监测队列是内存中的缓存区域,数据读取速度较快,用于暂时存储所述第二线程获取的产生的性能数据。所述监控文件可以为txt格式的文件,也可以是word格式的文件,当然,并不限定于所述两种形式,现有技术中能保存性能数据的各种格式的文件都属于本申请的保护范围。预先设置的监控文件中初始时并不包含有性能数据,当步骤204被执行时,所述监控文件中即可包含有性能数据。对于所述第二线程的判断过程进行举例说明。
[0069]例如,预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为10条,当前所述监测队列中的性能数据N为40条,10加上40为50,并不大于等于所述阈值容量100,则执行步骤203 ;若预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为50条,当前所述监测队列中的性能数据N为60条,50加上60为110,大于所述阈值容量100,则执行步骤202。
[0070]步骤202:控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中,执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
[0071]例如,所述监测队列的阈值容量Q为100条,当前所述监测队列中的性能数据N为60条,则所述第二线程从所述监控文件中获取100-60即40条性能数据,放入所述监测队列中。
[0072]需要说明的是,所述获取过程可以是以数据流的形式一次性地读取,也可以是分多次进行读取。例如,一次读取40条性能数据,或分两次每次读取20条性能数据。
[0073]步骤203:控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并由所述第二线程判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,执行步骤204 ;当所述第二结果为否时,执行步骤205。
[0074]当前监测队列中的性能数据与监控文件中的性能数据之和小于所述监测队列的阈值容量时,进行本步骤。首先将监控文件中的性能数据放入到监控队列中,所述监控队列中的性能数据由N增加为M,并由所述第二线程进一步判断实施例一的步骤103中所述第一线程监测到的服务器产生的所述性能数据与监测队列中增加以后的性能数据M之和是否大于等于阈值容量Q,若是,进行步骤204,否则进行步骤205。
[0075]例如,预先设定监测队列的阈值容量Q为100条,当前监控文件中的性能数据为20条,当前所述监测队列中的性能数据N为40条,将所述20条性能数据放入所述监测队列中,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,进行步骤205 ;若所述第一线程监测到产生的性能数据为200条,60加上200,大于100,进行步骤204。
[0076]步骤204:控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中,继续执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
[0077]所述服务器产生的性能数据为实施例一的步骤103中所述第一线程监测到的服务器产生的所述性能数据。
[0078]例如,预先设定监测队列的阈值容量Q为100条,所述第一线程监测到产生的性能数据为200条,所述第二线程从中获取100-60即40条性能数据,将获取的所述40条数据放入所述监测队列中,并将200-40即160条性能数据放入到监控文件中。
[0079]当然,所述监控文件相较于监测队列,为大容量的存储单元,用于暂时存储服务器产生的所述性能数据。两者相比,所述监测队列中的性能数据被直接读取进行显示,所述监测队列中数据读取速度较快。
[0080]步骤205:控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中,执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
[0081]当前监测队列中的性能数据M与监控文件中的性能数据之和小于所述监测队列的阈值容量时,进行本步骤,即直接将所述实施例一步骤103监测到的所述服务器产生的性能数据放入到监测队列中。
[0082]例如,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,将所述30条性能数据直接放入所述监测队列中。
[0083]需要说明的是,上述步骤中的各个触发动作,可以认为是向被触发对象发送指令,以使所述被触发对象完成相应工作。同样的,所述各个控制动作也可以认为是触发动作,即向被控制对象发送指令,以使所述被控制对象完成相应工作。
[0084]由以上的技术方案可知,本实施例提供的一种国产环境下服务器监测方法中,监测队列的容量是有限的,即容量阈值为Q,则相应的预先设置监测文件用于暂存服务器产生的多余的性能数据。当第一线程监测到有新的性能数据产生时,首先将监测文件中的性能数据放入到监测队列中,若所述监测队列达到阈值,控制第二线程触发第三线程进行性能数据的读取;若所述监测队列没有达到阈值,且所述服务器产生的新的性能数据较多时,则将一部分放入到监测队列使监测队列达到阈值,将另一部分放入到监测文件中暂存。
[0085]本实施例使用监测队列存储要读取的少量数据,监测队列读取速度快,可以快速地将所述性能数据进行读取,保证监测过程的高效性。同时,使用监测文件对服务器产生的大量性能数据进行暂存,防止所述性能数据的丢失,保证监测结果的准确性。
[0086]实施一中的步骤104中控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,可以有以下方式实现:
[0087]控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
[0088]控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
[0089]该实现方式中,控制所述第二线程触发所述第三线程,由所述第三线程多次读取所述监测队列中的性能数据,可以减轻每次数据传输过程中的数据传输负担。
[0090]在上述各个实施例的步骤之后,还可以包括显示性能数据的步骤,即将所述第三线程读取的所述性能数据进行显示,以供有关人员进行分析,从而得到所述服务器的运行状态,为对所述服务器工作参数的设置提供依据。所述显示方式,可以为图或表格的形式,当然,包括并不限定于以上两种方式。
[0091]请参阅图3,其示出了本申请提供的一种国产环境下服务器监测装置实施例三的结构示意图,本实施例可以包括:接收指令单元301、创建线程单元302、第一触发单元303、第二触发单元304及第三触发单元305。其中:
[0092]所述接收指令单元301,用于接收用户发送的监测指令。
[0093]用户要查看服务器的运行状态,需要分析所述服务器的产生的性能数据,从而可依据不同的运行状态决定如何对服务器进行调整或设置。为实现所述监测功能,用户启动监测过程,启动方式可以认为发送监测指令。
[0094]所述创建线程单元302,用于依据接收到的监测指令,创建第一线程、第二线程及
第二线程。
[0095]当接收到监测指令时,所述创建线程单元302进行创建线程过程。
[0096]所述第一触发单元303,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元304。
[0097]所述创建线程单元302创建的第一线程用于实时监测所述服务器是否产生性能数据。每当监测到产生性能数据时,即所述第一触发单元303触发所述第二触发单元304。其中,所述服务器可以是应用服务器,则与所述应用服务器相对应的性能数据可以包括线程池状态数据如当前线程总数、虚拟机内存统计数据、虚拟机类加载数据、WEB容器统计数据等,所述性能数据用于表示所述服务器的运行状态。需要说明的是,所述服务器包括但不限定与应用服务器,还可以包括文件服务器、网页服务器等,只要是可以产生能表明自身运行状态性能数据的服务器都属于本申请的保护范围。
[0098]需要说明的是,触发所述第一线程持续实时监测所述服务器是否产生性能数据,直到接收到用户发送的监测停止指令。
[0099]所述第二触发单元304,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元305 ;所述第三触发单元305,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
[0100]所述第二触发单元304控制所述第一线程监测到产生性能数据时触发所述第二线程,以使所述第二线程将所述性能数据放入监测队列,并在所述第二线程完成所述工作后,所述第二触发单元304控制所述第二线程触发所述第三线程,以使所述第三线程读取性能数据。其中,所述触发过程可以向被触发对象发送指令,当被触发对象接收到指令时,完成相应工作。
[0101]当然,所述控制动作也可认为是触发的动作,即向被控制对象发送相应指令,当被控制对象接收到指令时,完成相应工作。
[0102]需要说明的是,第一触发单元303与第二触发单元304或所述第三触发单元305可同时进行工作,以实现在所述第二线程将产生的性能数据放入到预先设置的监测队列中或所述第三线程读取所述监测队列中的性能数据的同时,所述第一线程监测是否产生性能数据。
[0103]由以上的技术方案可知,本实施例提供了一种国产环境下服务器监测装置,该装置通过接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。
[0104]需要说明的是,国产环境下生产的CPU模块具有核数多的特点,通过本申请提供的方法,创建的所述三个线程可以同时运行在不同的内核上,分别完成性能数据获取过程不同的工作。本申请控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中使用单线程轮询机制,即隔一段时间获取一次监控数据,提高了线程的利用率,可以及时获取产生的性能数据,提高了监测效率。
[0105]同时,触发第一线程实时监测性能数据的产生,所述第一线程可以与所述第二线程或所述第三线程同时进行,相较于现有技术中单线程独自执行获取性能数据,一方面进一步提高了监测效率,另一方面提高了进程的利用率,降低资源消耗。
[0106]需要说明的是,上述实施例三的创建线程单元302创建第一线程、第二线程及第三线程的时间点并不作限制,即可以在接收到监测指令时,同时或依次创建所述三个线程;也可以是在接收到监测指令时创建第一线程,在所述第一线程监测到所述服务器产生性能数据后创建第二线程,在所述第二线程将所述性能数据放入到所述监测队列后,创建第三线程。优选的,选用第二种创建方式,即当使用某一线程前创建该线程,可以提高资源的利用率。相应的,请参阅图4,其示出了本申请提供的一种国产环境下服务器监测装置实施例四的部分结构示意图,以实现所述第二种创建方式。其中:
[0107]所述第一创建线程单元402分别与所述第一触发单元403、第二触发单元404相连,以实现当接收到监测指令时,所述第一创建单元402创建第一线程,当所述第一触发单元403监测到产生性能数据时,所述第一创建单元402创建第二线程,当所述第二触发单元404将性能数据放入到监测队列后,所述第一创建单元402创建第三线程。[0108]请参阅图5,其示出了本申请提供的一种国产环境下服务器监测装置实施例五的部分结构示意图,本实施例在实施例三的基础上还可以包括:第一预先设置单元501及第二预先设置单元502;其中:
[0109]所述第一预先设置单元501,用于预先设置阈值容量为Q的监测队列。
[0110]所述监测队列是内存中的缓存区域,数据读取速度较快,用于暂时存储所述第二线程获取的产生的性能数据。需要说明的是,所述第一预先设置单元并不是在每次对服务器的性能数据进行监测的过程中都执行动作,其只要在首次对服务器进行监测前执行预先设置监测队列的功能即可。当然,所述监测队列的容量是有限的,其阈值为Q,例如100条。
[0111]所述第二预先设置单元502,用于预先设置监控文件。
[0112]所述监控文件可以是txt格式或word格式的文本文件,当然,监控文件的形式包括但并不限于上述两种形式,现有技术中能存储性能数据的各种格式的文件都属于本申请的保护范围。
[0113]同时,实施例三的第二触发单元304可以包括:第一判断子单元503、第一结果子单元504、第二结果子单元505、第三结果子单元506及第四结果子单元507。其中:
[0114]所述第一判断子单元503,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发所述第一结果子单元504 ;当所述第一结果为否时,触发所述第二结果子单元505。
[0115]需要说明的是,所述第二预先设置单元502预先设置的监控文件中初始时并不包含有性能数据,当所述第三结果子单元506执行完相应动作后,所述监控文件中即可包含有性能数据。
[0116]需要说明的是,所述第一判断子单元503分别与所述第一结果子单元504及所述第二结果子单元505相连,当所述第一判断子单元503获得的第一结果为是时,向所述第一结果子单元504发送第一指令,以触发所述第一结果子单元504执行相应动作,当所述第一结果为否时,向所述第二结果子单元504发送第二指令,以触发所述第二结果子单元504执行相应动作。
[0117]对于所述第一判断子单元503的判断过程进行举例说明。例如,所述第一预先设置单元501预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为10条,当前所述监测队列中的性能数据N为40条,10加上40为50,并不大于等于所述阈值容量100,则所述第一判断子单元503触发所述第二结果子单元505 ;若预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为50条,当前所述监测队列中的性能数据N为60条,50加上60为110,大于所述阈值容量100,则所述第一判断子单元503触发所述第一结果子单元504。
[0118]所述第一结果子单元504,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中,触发实施例三的第三触发单元305。
[0119]例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,当前所述监测队列中的性能数据N为60条,则所述第二线程从所述监控文件中获取100-60即40条性能数据,放入所述第二预先设置单元502设置的监测队列中。[0120]需要说明的是,所述第二线程获取过程可以是以数据流的形式一次性地读取,也可以是分多次进行读取。例如,一次读取40条性能数据,或分两次每次读取20条性能数据。
[0121]所述第二结果子单元505,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发所述第三结果子单元506;当所述第二结果为否时,触发所述第四结果子单元507。
[0122]需要说明的是,所述第二结果子单元505分别与所述第三结果子单元506及所述第四结果子单元507相连,当所述第二结果子单元505获得的第二结果为是时,向所述第三结果子单元506发送第三指令,以触发所述第三结果子单元506执行相应动作,当所述第二结果为否时,向所述第四结果子单元507发送第四指令,以触发所述第四结果子单元507执行相应动作。
[0123]当前监测队列中的性能数据与监控文件中的性能数据之和小于所述监测队列的阈值容量时,触发本单元执行工作。所述第二结果子单元505首先将监控文件中的性能数据放入到监控队列中,所述监控队列中的性能数据由N增加为M,并由所述第二线程进一步判断实施例三的第二触发单元303触发的所述第一线程监测到的服务器产生的所述性能数据与监测队列中增加以后的性能数据M之和是否大于等于阈值容量Q,若是,触发所述第三结果子单元506,否则触发所述第四结果子单元507。
[0124]例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,当前监控文件中的性能数据为20条,当前所述监测队列中的性能数据N为40条,所述第二结果子单元505控制所述第一线程触发所述第二线程,由第二线程将所述20条性能数据放入所述监测队列中,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,触发所述第三结果子单元506 ;若所述第一线程监测到产生的性能数据为200条,60加上200,大于100,触发所述第四结果子单元507。
[0125]所述第三结果子单元506,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中,触发实施例三的第三触发单元305。
[0126]所述服务器产生的性能数据为实施例三的第一触发单元303触发的第一线程监测到的服务器产生的所述性能数据。
[0127]例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,所述第一线程监测到产生的性能数据为200条,所述第二线程从中获取100-60即40条性能数据,所述第三结果子单元506控制第一线程触发所述第二线程,由所述第二线程将获取的所述40条数据放入所述监测队列中,并将200-40即160条性能数据放入到监控文件中。
[0128]当然,所述监控文件相较于监测队列,为大容量的存储单元,用于暂时存储服务器产生的所述性能数据。两者相比,所述监测队列中的性能数据被直接读取进行显示,所述监测队列中数据读取速度较快。
[0129]所述第四结果子单元507,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中,触发所述实施例三的第三触发单元 305。
[0130]当前监测队列中的性能数据M与监控文件中的性能数据之和小于所述监测队列的阈值容量时,触发本单元执行工作,即所述第四结果子单元507直接将所述实施例三的第一触发单元303监测到的所述服务器产生的性能数据放入到监测队列中。
[0131]例如,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,所述第四结果子单元507将所述30条性能数据直接放入所述监测队列中。
[0132]需要说明的是,上述各个单元中的相应触发动作,可以认为是向被触发对象发送指令,以使所述被触发对象完成相应工作。同样的,所述各个单元中的相应控制动作也可以认为是触发动作,即向被控制对象发送指令,以使所述被控制对象完成相应工作。
[0133]由以上的技术方案可知,本实施例提供的一种国产环境下服务器监测装置中,第一预先设置单元预先设置的监测队列容量是有限的,即容量阈值为Q,则相应的,由第二预先设置单元预先设置监测文件,用于暂存服务器产生的多余的性能数据。当第一触发单元触发第一线程监测到有新的性能数据产生时,第二结果子单元首先将监测文件中的性能数据放入到监测队列中,若所述监测队列达到阈值,所述第二结果子单元控制第二线程触发第三线程进行性能数据的读取;若所述监测队列没有达到阈值,且所述服务器产生的新的性能数据较多时,则所述第三结果子单元控制第一线程触发第二线程将一部分放入到监测队列使监测队列达到阈值,将另一部分放入到监测文件中暂存。
[0134]本实施例使用第一预先设置的监测队列存储要读取的少量数据,监测队列读取速度快,可以快速地将所述性能数据进行读取,保证监测过程的高效性。同时,使用第二预先设置单元设置的监测文件对服务器产生的大量性能数据进行暂存,防止所述性能数据的丢失,保证监测结果的准确性。
[0135]请参阅图6,其示出了本申请提供的一种国产环境下服务器监测装置实施例六的部分结构示意图,实施三的第三触发单元305可以有以下方式实现:划分子单元601及读取子单元602。其中:
[0136]所述划分子单元601,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
[0137]所述读取子单元602,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
[0138]该实现方式中,控制所述第二线程触发所述第三线程,由所述第三线程多次读取所述监测队列中的性能数据,可以减轻每次数据传输过程中的传输负担。
[0139]上述各个装置的实施例,还可以包括显示性能数据的显示单元,即将所述第三线程读取的所述性能数据进行显示,以供有关人员进行分析,从而得到所述服务器的运行状态,为对所述服务器工作参数的设置提供依据。所述显示单元显示性能数据的方式,可以为图或表格的形式,当然,包括并不限定于以上两种方式。
[0140]需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0141]以上对本发明所提供的一种国产环境下服务器监测方法及装置进行了详细介绍,对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种国产环境下服务器监测方法,其特征在于,包括: 接收用户发送的监测指令; 依据接收到的监测指令,创建第一线程、第二线程及第三线程; 触发所述第一线程实时监测所述服务器是否产生性能数据; 若是,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
2.根据权利要求1所述的方法,其特征在于,预先设定监测队列的阈值容量为Q,预先设置有监控文件,其中:所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,包括: 控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果; 当所述第一结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中; 当所述第一结果为否时, 控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果; 当所述第二结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中; 当所述第二结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
3.根据权利要求1所述的方法,其特征在于,所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,包括: 控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块; 控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
4.根据权利要求1至3任意一项所述的方法,其特征在于,在所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据之后,还包括: 将所述第三线程读取的所述监测队列中的性能数据进行显示。
5.一种国产环境下服务器监测装置,其特征在于,包括: 接收指令单元,用于接收用户发送的监测指令; 创建线程单元,用于依据接收到的监测指令,创建第一线程、第二线程及第三线程;第一触发单元,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元; 第二触发单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元; 第三触发单元,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
6.根据权利要求5所述的装置,其特征在于,还包括: 第一预先设置单元,用于预先设置阈值容量为Q的监测队列; 第二预先设置单元,用于预先设置监控文件。
7.根据权利要求6所述的装置,其特征在于,所述第二触发单元包括: 第一判断子单元,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发第一结果子单元;当所述第一结果为否时,触发第二结果单兀; 第一结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中; 第二结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发第三结果子单元;当所述第二结果为否时,触发第四结果子单元; 第三结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中; 第四结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数 据放入所述监测队列中。
8.根据权利要求5所述的装置,其特征在于,所述第三触发单元包括: 划分子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块; 读取子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
9.根据权利要求5至8任意一项所述的装置,其特征在于,还包括: 显示单元,用于将所述第三线程读取的所述监测队列中的性能数据进行显示。
【文档编号】G06F11/30GK103631694SQ201310669832
【公开日】2014年3月12日 申请日期:2013年12月10日 优先权日:2013年12月10日
【发明者】厉颖, 吴石磊, 翟鲁超, 车帅, 何忠胜, 王毅 申请人:山东中创软件工程股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1