CN103631694B - 一种国产环境下服务器监测方法及装置 - Google Patents
一种国产环境下服务器监测方法及装置 Download PDFInfo
- Publication number
- CN103631694B CN103631694B CN201310669832.8A CN201310669832A CN103631694B CN 103631694 B CN103631694 B CN 103631694B CN 201310669832 A CN201310669832 A CN 201310669832A CN 103631694 B CN103631694 B CN 103631694B
- Authority
- CN
- China
- Prior art keywords
- thread
- performance data
- monitoring
- trigger
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种国产环境下服务器监测方法及装置,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据。通过本申请提供的方法,创建三个线程,触发第一线程实时监测性能数据的产生,并控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地进行监测,相较于现有技术的单线程轮询机制,可以及时监测产生的性能数据,提高了监测效率。
Description
技术领域
本申请涉及设备监测技术领域,尤其是一种国产环境下服务器监测方法及装置。
背景技术
服务器,是应用程序与硬件之间的中间***,其性能的好坏直接决定应用程序的工作状态。因此,需要实时获取服务器的性能数据,并对其进行分析从而得出服务器的运行状态,以达到对服务器性能的监测。目前,使用的监测方式为单线程轮询机制,即数据监测线程每隔一段时间获取一次监测数据。
而由于监测需要依赖于一定的运行环境,如操作***、CPU等,中国国内研究开发的一些运行环境,如飞腾CPU、麒麟操作***及龙芯平台等,由于自身技术因素的限制如CPU主频速度慢,所述监测方式获取监测数据耗费的时间较长,监测效率低下。
发明内容
有鉴于此,本申请提供了一种国产环境下服务器监测方法及装置,以解决现有技术中监测方式获取监测数据耗费的时间较长,监测效率低下的问题。本申请提供的技术方案如下:
一种国产环境下服务器监测方法,包括:
接收用户发送的监测指令;
依据接收到的监测指令,创建第一线程、第二线程及第三线程;
触发所述第一线程实时监测所述服务器是否产生性能数据;
若是,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
上述方法,优选的,预先设定监测队列的阈值容量为Q,预先设置有监控文件,其中:所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,包括:
控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;
当所述第一结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
当所述第一结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;
当所述第二结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;
当所述第二结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
上述方法,优选的,所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,包括:
控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
上述方法,优选的,在所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据之后,还包括:
将所述第三线程读取的所述监测队列中的性能数据进行显示。
本申请还提供了一种国产环境下服务器监测装置,包括:
接收指令单元,用于接收用户发送的监测指令;
创建线程单元,用于依据接收到的监测指令,创建第一线程、第二线程及第三线程;
第一触发单元,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元;
第二触发单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元;
第三触发单元,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
上述装置,优选的,还包括:
第一预先设置单元,用于预先设置阈值容量为Q的监测队列;
第二预先设置单元,用于预先设置监控文件。
上述装置,优选的,所述第二触发单元包括:
第一判断子单元,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发第一结果子单元;当所述第一结果为否时,触发第二结果单元;
第一结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
第二结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发第三结果子单元;当所述第二结果为否时,触发第四结果子单元;
第三结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;
第四结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
上述装置,优选的,所述第三触发单元包括:
划分子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
读取子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
上述装置,优选的,还包括:
显示单元,用于将所述第三线程读取的所述监测队列中的性能数据进行显示。
由以上的技术方案可知,本申请提供的一种国产环境下服务器监测方法及装置,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。通过本申请提供的方法,创建三个线程,触发第一线程实时监测性能数据的产生,并控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中的单线程轮询机制,可以及时监测服务器产生的性能数据,提高了监测效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种国产环境下服务器监测方法实施例一的流程图;
图2为本申请提供的一种国产环境下服务器监测方法实施例二的部分流程图;
图3为本申请提供的一种国产环境下服务器监测装置实施例三的结构示意图;
图4为本申请提供的一种国产环境下服务器监测装置实施例四的部分结构示意图;
图5为本申请提供的一种国产环境下服务器监测装置实施例五的部分结构示意图;
图6为本申请提供的一种国产环境下服务器监测装置实施例六的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,其示出了本申请提供的一种国产环境下服务器监测方法实施例一的流程图,本实施例可以包括:
步骤101:接收用户发送的监测指令。
用户要查看服务器的运行状态,需要分析所述服务器的产生的性能数据,从而可依据不同的运行状态决定如何对服务器进行调整或设置。为实现所述监测功能,用户启动监测过程,启动方式可以认为发送监测指令。
步骤102:依据接收到的监测指令,创建第一线程、第二线程及第三线程。
当接收到监测指令时,进行创建线程过程。
步骤103:触发所述第一线程实时监测所述服务器是否产生性能数据;若是,执行步骤104。
创建的第一线程用于实时监测所述服务器是否产生性能数据,并在产生性能数据时,即执行步骤104。其中,所述服务器可以是应用服务器,则与所述应用服务器相对应的性能数据可以包括线程池状态数据如当前线程总数、虚拟机内存统计数据、虚拟机类加载数据、WEB容器统计数据等,所述性能数据用于表示所述服务器的运行状态。需要说明的是,所述服务器包括但不限定与应用服务器,还可以包括文件服务器、网页服务器等,只要是可以产生能表明自身运行状态性能数据的服务器都属于本申请的保护范围。
需要说明的是,触发所述第一线程持续实时监测所述服务器是否产生性能数据,直到接收到用户发送的监测停止指令。
步骤104:控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
控制所述第一线程监测到产生性能数据时触发所述第二线程,以使所述第二线程将所述性能数据放入监测队列,并在所述第二线程完成所述工作后,控制所述第二线程触发所述第三线程,以使所述第三线程读取性能数据。其中,所述触发过程可以向被触发对象发送指令,当被触发对象接收到指令时,完成相应工作。
当然,所述控制动作也可认为是触发的动作,即向被控制对象发送相应指令,当被控制对象接收到指令时,完成相应工作。
需要说明的是,步骤103与所述步骤104可同时进行,即在所述第二线程将产生的性能数据放入到预先设置的监测队列中或所述第三线程读取所述监测队列中的性能数据的同时,所述第一线程监测是否产生性能数据。
由以上的技术方案可知,本实施例提供了一种国产环境下服务器监测方法,该方法包括:接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。
需要说明的是,国产环境下生产的CPU模块具有核数多的特点,通过本申请提供的方法,创建的所述三个线程可以同时运行在不同的内核上,分别完成性能数据获取过程不同的工作。本申请控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中使用单线程轮询机制,即隔一段时间获取一次监控数据,提高了线程的利用率,可以及时获取产生的性能数据,提高了监测效率。
同时,触发第一线程实时监测性能数据的产生,所述第一线程可以与所述第二线程或所述第三线程同时进行,相较于现有技术中单线程独自执行获取性能数据,一方面进一步提高了监测效率,另一方面提高了进程的利用率,降低资源消耗。
需要说明的是,上述实施例步骤102中的创建第一线程、第二线程及第三线程的时间点并不作限制,即可以在接收到监测指令时,同时或依次创建所述三个线程;也可以是在接收到监测指令时创建第一线程,在所述第一线程监测到所述服务器产生性能数据后创建第二线程,在所述第二线程将所述性能数据放入到所述监测队列后,创建第三线程。优选的,选用第二种创建方式,即当使用某一线程前创建该线程,可以提高资源的利用率。
请参阅图2,其示出了本申请提供的一种国产环境下服务器监测方法实施例二的部分流程图,预先设定监测队列的阈值容量为Q,预先设置有监控文件,当然,所述预先设置监测队列及监控文件的动作并不是每次对服务器的性能数据进行监测的过程中都执行,只是在首次监测前,进行相应的设置即可。实施例一步骤103中的所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中可以由以下步骤实现:
步骤201:控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,执行步骤202;当所述第一结果为否时,执行步骤203。
所述监测队列是内存中的缓存区域,数据读取速度较快,用于暂时存储所述第二线程获取的产生的性能数据。所述监控文件可以为txt格式的文件,也可以是word格式的文件,当然,并不限定于所述两种形式,现有技术中能保存性能数据的各种格式的文件都属于本申请的保护范围。预先设置的监控文件中初始时并不包含有性能数据,当步骤204被执行时,所述监控文件中即可包含有性能数据。对于所述第二线程的判断过程进行举例说明。
例如,预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为10条,当前所述监测队列中的性能数据N为40条,10加上40为50,并不大于等于所述阈值容量100,则执行步骤203;若预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为50条,当前所述监测队列中的性能数据N为60条,50加上60为110,大于所述阈值容量100,则执行步骤202。
步骤202:控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中,执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
例如,所述监测队列的阈值容量Q为100条,当前所述监测队列中的性能数据N为60条,则所述第二线程从所述监控文件中获取100-60即40条性能数据,放入所述监测队列中。
需要说明的是,所述获取过程可以是以数据流的形式一次性地读取,也可以是分多次进行读取。例如,一次读取40条性能数据,或分两次每次读取20条性能数据。
步骤203:控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并由所述第二线程判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,执行步骤204;当所述第二结果为否时,执行步骤205。
当前监测队列中的性能数据与监控文件中的性能数据之和小于所述监测队列的阈值容量时,进行本步骤。首先将监控文件中的性能数据放入到监控队列中,所述监控队列中的性能数据由N增加为M,并由所述第二线程进一步判断实施例一的步骤103中所述第一线程监测到的服务器产生的所述性能数据与监测队列中增加以后的性能数据M之和是否大于等于阈值容量Q,若是,进行步骤204,否则进行步骤205。
例如,预先设定监测队列的阈值容量Q为100条,当前监控文件中的性能数据为20条,当前所述监测队列中的性能数据N为40条,将所述20条性能数据放入所述监测队列中,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,进行步骤205;若所述第一线程监测到产生的性能数据为200条,60加上200,大于100,进行步骤204。
步骤204:控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中,继续执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
所述服务器产生的性能数据为实施例一的步骤103中所述第一线程监测到的服务器产生的所述性能数据。
例如,预先设定监测队列的阈值容量Q为100条,所述第一线程监测到产生的性能数据为200条,所述第二线程从中获取100-60即40条性能数据,将获取的所述40条数据放入所述监测队列中,并将200-40即160条性能数据放入到监控文件中。
当然,所述监控文件相较于监测队列,为大容量的存储单元,用于暂时存储服务器产生的所述性能数据。两者相比,所述监测队列中的性能数据被直接读取进行显示,所述监测队列中数据读取速度较快。
步骤205:控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中,执行实施例一中步骤104控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据的过程。
当前监测队列中的性能数据M与监控文件中的性能数据之和小于所述监测队列的阈值容量时,进行本步骤,即直接将所述实施例一步骤103监测到的所述服务器产生的性能数据放入到监测队列中。
例如,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,将所述30条性能数据直接放入所述监测队列中。
需要说明的是,上述步骤中的各个触发动作,可以认为是向被触发对象发送指令,以使所述被触发对象完成相应工作。同样的,所述各个控制动作也可以认为是触发动作,即向被控制对象发送指令,以使所述被控制对象完成相应工作。
由以上的技术方案可知,本实施例提供的一种国产环境下服务器监测方法中,监测队列的容量是有限的,即容量阈值为Q,则相应的预先设置监测文件用于暂存服务器产生的多余的性能数据。当第一线程监测到有新的性能数据产生时,首先将监测文件中的性能数据放入到监测队列中,若所述监测队列达到阈值,控制第二线程触发第三线程进行性能数据的读取;若所述监测队列没有达到阈值,且所述服务器产生的新的性能数据较多时,则将一部分放入到监测队列使监测队列达到阈值,将另一部分放入到监测文件中暂存。
本实施例使用监测队列存储要读取的少量数据,监测队列读取速度快,可以快速地将所述性能数据进行读取,保证监测过程的高效性。同时,使用监测文件对服务器产生的大量性能数据进行暂存,防止所述性能数据的丢失,保证监测结果的准确性。
实施一中的步骤104中控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,可以有以下方式实现:
控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
该实现方式中,控制所述第二线程触发所述第三线程,由所述第三线程多次读取所述监测队列中的性能数据,可以减轻每次数据传输过程中的数据传输负担。
在上述各个实施例的步骤之后,还可以包括显示性能数据的步骤,即将所述第三线程读取的所述性能数据进行显示,以供有关人员进行分析,从而得到所述服务器的运行状态,为对所述服务器工作参数的设置提供依据。所述显示方式,可以为图或表格的形式,当然,包括并不限定于以上两种方式。
请参阅图3,其示出了本申请提供的一种国产环境下服务器监测装置实施例三的结构示意图,本实施例可以包括:接收指令单元301、创建线程单元302、第一触发单元303、第二触发单元304及第三触发单元305。其中:
所述接收指令单元301,用于接收用户发送的监测指令。
用户要查看服务器的运行状态,需要分析所述服务器的产生的性能数据,从而可依据不同的运行状态决定如何对服务器进行调整或设置。为实现所述监测功能,用户启动监测过程,启动方式可以认为发送监测指令。
所述创建线程单元302,用于依据接收到的监测指令,创建第一线程、第二线程及第三线程。
当接收到监测指令时,所述创建线程单元302进行创建线程过程。
所述第一触发单元303,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元304。
所述创建线程单元302创建的第一线程用于实时监测所述服务器是否产生性能数据。每当监测到产生性能数据时,即所述第一触发单元303触发所述第二触发单元304。其中,所述服务器可以是应用服务器,则与所述应用服务器相对应的性能数据可以包括线程池状态数据如当前线程总数、虚拟机内存统计数据、虚拟机类加载数据、WEB容器统计数据等,所述性能数据用于表示所述服务器的运行状态。需要说明的是,所述服务器包括但不限定与应用服务器,还可以包括文件服务器、网页服务器等,只要是可以产生能表明自身运行状态性能数据的服务器都属于本申请的保护范围。
需要说明的是,触发所述第一线程持续实时监测所述服务器是否产生性能数据,直到接收到用户发送的监测停止指令。
所述第二触发单元304,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元305;所述第三触发单元305,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据。
所述第二触发单元304控制所述第一线程监测到产生性能数据时触发所述第二线程,以使所述第二线程将所述性能数据放入监测队列,并在所述第二线程完成所述工作后,所述第二触发单元304控制所述第二线程触发所述第三线程,以使所述第三线程读取性能数据。其中,所述触发过程可以向被触发对象发送指令,当被触发对象接收到指令时,完成相应工作。
当然,所述控制动作也可认为是触发的动作,即向被控制对象发送相应指令,当被控制对象接收到指令时,完成相应工作。
需要说明的是,第一触发单元303与第二触发单元304或所述第三触发单元305可同时进行工作,以实现在所述第二线程将产生的性能数据放入到预先设置的监测队列中或所述第三线程读取所述监测队列中的性能数据的同时,所述第一线程监测是否产生性能数据。
由以上的技术方案可知,本实施例提供了一种国产环境下服务器监测装置,该装置通过接收用户发送的监测指令,依据该监测指令,创建第一线程、第二线程及第三线程,触发该第一线程实时监测所述服务器是否产生性能数据,若是,控制该第一线程触发该第二线程,由该第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制该第二线程触发该第三线程,由该第三线程读取该监测队列中的性能数据,继续执行触发该第一线程实时监测所述服务器是否产生性能数据。
需要说明的是,国产环境下生产的CPU模块具有核数多的特点,通过本申请提供的方法,创建的所述三个线程可以同时运行在不同的内核上,分别完成性能数据获取过程不同的工作。本申请控制每一个线程完成各自的工作后去触发下一个线程的执行,实现了持续不断地在执行监测过程,相较于现有技术中使用单线程轮询机制,即隔一段时间获取一次监控数据,提高了线程的利用率,可以及时获取产生的性能数据,提高了监测效率。
同时,触发第一线程实时监测性能数据的产生,所述第一线程可以与所述第二线程或所述第三线程同时进行,相较于现有技术中单线程独自执行获取性能数据,一方面进一步提高了监测效率,另一方面提高了进程的利用率,降低资源消耗。
需要说明的是,上述实施例三的创建线程单元302创建第一线程、第二线程及第三线程的时间点并不作限制,即可以在接收到监测指令时,同时或依次创建所述三个线程;也可以是在接收到监测指令时创建第一线程,在所述第一线程监测到所述服务器产生性能数据后创建第二线程,在所述第二线程将所述性能数据放入到所述监测队列后,创建第三线程。优选的,选用第二种创建方式,即当使用某一线程前创建该线程,可以提高资源的利用率。相应的,请参阅图4,其示出了本申请提供的一种国产环境下服务器监测装置实施例四的部分结构示意图,以实现所述第二种创建方式。其中:
所述第一创建线程单元402分别与所述第一触发单元403、第二触发单元404相连,以实现当接收到监测指令时,所述第一创建单元402创建第一线程,当所述第一触发单元403监测到产生性能数据时,所述第一创建单元402创建第二线程,当所述第二触发单元404将性能数据放入到监测队列后,所述第一创建单元402创建第三线程。
请参阅图5,其示出了本申请提供的一种国产环境下服务器监测装置实施例五的部分结构示意图,本实施例在实施例三的基础上还可以包括:第一预先设置单元501及第二预先设置单元502;其中:
所述第一预先设置单元501,用于预先设置阈值容量为Q的监测队列。
所述监测队列是内存中的缓存区域,数据读取速度较快,用于暂时存储所述第二线程获取的产生的性能数据。需要说明的是,所述第一预先设置单元并不是在每次对服务器的性能数据进行监测的过程中都执行动作,其只要在首次对服务器进行监测前执行预先设置监测队列的功能即可。当然,所述监测队列的容量是有限的,其阈值为Q,例如100条。
所述第二预先设置单元502,用于预先设置监控文件。
所述监控文件可以是txt格式或word格式的文本文件,当然,监控文件的形式包括但并不限于上述两种形式,现有技术中能存储性能数据的各种格式的文件都属于本申请的保护范围。
同时,实施例三的第二触发单元304可以包括:第一判断子单元503、第一结果子单元504、第二结果子单元505、第三结果子单元506及第四结果子单元507。其中:
所述第一判断子单元503,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发所述第一结果子单元504;当所述第一结果为否时,触发所述第二结果子单元505。
需要说明的是,所述第二预先设置单元502预先设置的监控文件中初始时并不包含有性能数据,当所述第三结果子单元506执行完相应动作后,所述监控文件中即可包含有性能数据。
需要说明的是,所述第一判断子单元503分别与所述第一结果子单元504及所述第二结果子单元505相连,当所述第一判断子单元503获得的第一结果为是时,向所述第一结果子单元504发送第一指令,以触发所述第一结果子单元504执行相应动作,当所述第一结果为否时,向所述第二结果子单元504发送第二指令,以触发所述第二结果子单元504执行相应动作。
对于所述第一判断子单元503的判断过程进行举例说明。例如,所述第一预先设置单元501预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为10条,当前所述监测队列中的性能数据N为40条,10加上40为50,并不大于等于所述阈值容量100,则所述第一判断子单元503触发所述第二结果子单元505;若预先设定监测队列的阈值容量为100条,当前监控文件中的性能数据为50条,当前所述监测队列中的性能数据N为60条,50加上60为110,大于所述阈值容量100,则所述第一判断子单元503触发所述第一结果子单元504。
所述第一结果子单元504,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中,触发实施例三的第三触发单元305。
例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,当前所述监测队列中的性能数据N为60条,则所述第二线程从所述监控文件中获取100-60即40条性能数据,放入所述第二预先设置单元502设置的监测队列中。
需要说明的是,所述第二线程获取过程可以是以数据流的形式一次性地读取,也可以是分多次进行读取。例如,一次读取40条性能数据,或分两次每次读取20条性能数据。
所述第二结果子单元505,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发所述第三结果子单元506;当所述第二结果为否时,触发所述第四结果子单元507。
需要说明的是,所述第二结果子单元505分别与所述第三结果子单元506及所述第四结果子单元507相连,当所述第二结果子单元505获得的第二结果为是时,向所述第三结果子单元506发送第三指令,以触发所述第三结果子单元506执行相应动作,当所述第二结果为否时,向所述第四结果子单元507发送第四指令,以触发所述第四结果子单元507执行相应动作。
当前监测队列中的性能数据与监控文件中的性能数据之和小于所述监测队列的阈值容量时,触发本单元执行工作。所述第二结果子单元505首先将监控文件中的性能数据放入到监控队列中,所述监控队列中的性能数据由N增加为M,并由所述第二线程进一步判断实施例三的第二触发单元303触发的所述第一线程监测到的服务器产生的所述性能数据与监测队列中增加以后的性能数据M之和是否大于等于阈值容量Q,若是,触发所述第三结果子单元506,否则触发所述第四结果子单元507。
例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,当前监控文件中的性能数据为20条,当前所述监测队列中的性能数据N为40条,所述第二结果子单元505控制所述第一线程触发所述第二线程,由第二线程将所述20条性能数据放入所述监测队列中,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,触发所述第三结果子单元506;若所述第一线程监测到产生的性能数据为200条,60加上200,大于100,触发所述第四结果子单元507。
所述第三结果子单元506,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中,触发实施例三的第三触发单元305。
所述服务器产生的性能数据为实施例三的第一触发单元303触发的第一线程监测到的服务器产生的所述性能数据。
例如,所述第一预先设置单元501预先设定的监测队列的阈值容量Q为100条,所述第一线程监测到产生的性能数据为200条,所述第二线程从中获取100-60即40条性能数据,所述第三结果子单元506控制第一线程触发所述第二线程,由所述第二线程将获取的所述40条数据放入所述监测队列中,并将200-40即160条性能数据放入到监控文件中。
当然,所述监控文件相较于监测队列,为大容量的存储单元,用于暂时存储服务器产生的所述性能数据。两者相比,所述监测队列中的性能数据被直接读取进行显示,所述监测队列中数据读取速度较快。
所述第四结果子单元507,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中,触发所述实施例三的第三触发单元305。
当前监测队列中的性能数据M与监控文件中的性能数据之和小于所述监测队列的阈值容量时,触发本单元执行工作,即所述第四结果子单元507直接将所述实施例三的第一触发单元303监测到的所述服务器产生的性能数据放入到监测队列中。
例如,所述监测队列中的性能数据M为60条,若所述第一线程监测到产生的性能数据为30条,60加上30为90,小于100,所述第四结果子单元507将所述30条性能数据直接放入所述监测队列中。
需要说明的是,上述各个单元中的相应触发动作,可以认为是向被触发对象发送指令,以使所述被触发对象完成相应工作。同样的,所述各个单元中的相应控制动作也可以认为是触发动作,即向被控制对象发送指令,以使所述被控制对象完成相应工作。
由以上的技术方案可知,本实施例提供的一种国产环境下服务器监测装置中,第一预先设置单元预先设置的监测队列容量是有限的,即容量阈值为Q,则相应的,由第二预先设置单元预先设置监测文件,用于暂存服务器产生的多余的性能数据。当第一触发单元触发第一线程监测到有新的性能数据产生时,第二结果子单元首先将监测文件中的性能数据放入到监测队列中,若所述监测队列达到阈值,所述第二结果子单元控制第二线程触发第三线程进行性能数据的读取;若所述监测队列没有达到阈值,且所述服务器产生的新的性能数据较多时,则所述第三结果子单元控制第一线程触发第二线程将一部分放入到监测队列使监测队列达到阈值,将另一部分放入到监测文件中暂存。
本实施例使用第一预先设置的监测队列存储要读取的少量数据,监测队列读取速度快,可以快速地将所述性能数据进行读取,保证监测过程的高效性。同时,使用第二预先设置单元设置的监测文件对服务器产生的大量性能数据进行暂存,防止所述性能数据的丢失,保证监测结果的准确性。
请参阅图6,其示出了本申请提供的一种国产环境下服务器监测装置实施例六的部分结构示意图,实施三的第三触发单元305可以有以下方式实现:划分子单元601及读取子单元602。其中:
所述划分子单元601,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
所述读取子单元602,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
该实现方式中,控制所述第二线程触发所述第三线程,由所述第三线程多次读取所述监测队列中的性能数据,可以减轻每次数据传输过程中的传输负担。
上述各个装置的实施例,还可以包括显示性能数据的显示单元,即将所述第三线程读取的所述性能数据进行显示,以供有关人员进行分析,从而得到所述服务器的运行状态,为对所述服务器工作参数的设置提供依据。所述显示单元显示性能数据的方式,可以为图或表格的形式,当然,包括并不限定于以上两种方式。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明所提供的一种国产环境下服务器监测方法及装置进行了详细介绍,对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种国产环境下服务器监测方法,其特征在于,包括:
接收用户发送的监测指令;
依据接收到的监测指令,创建第一线程、第二线程及第三线程;
触发所述第一线程实时监测所述服务器是否产生性能数据;
若是,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据;
其中,预先设定监测队列的阈值容量为Q,预先设置有监控文件,所述控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,包括:
控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;
当所述第一结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
当所述第一结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,使得所述监测队列中的性能数据由N变为M,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;
当所述第二结果为是时,控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;
当所述第二结果为否时,控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
2.根据权利要求1所述的方法,其特征在于,所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据,包括:
控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
3.根据权利要求1至2任意一项所述的方法,其特征在于,在所述控制第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据之后,还包括:
将所述第三线程读取的所述监测队列中的性能数据进行显示。
4.一种国产环境下服务器监测装置,其特征在于,包括:
接收指令单元,用于接收用户发送的监测指令;
创建线程单元,用于依据接收到的监测指令,创建第一线程、第二线程及第三线程;
第一触发单元,用于触发所述第一线程实时监测所述服务器是否产生性能数据;若是,触发第二触发单元;
第二触发单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入到预先设置的监测队列中,触发第三触发单元;
第三触发单元,用于控制所述第二线程触发所述第三线程,由所述第三线程读取所述监测队列中的性能数据;
第一预先设置单元,用于预先设置阈值容量为Q的监测队列;
第二预先设置单元,用于预先设置监控文件;
其中,所述第二触发单元包括:
第一判断子单元,用于控制第一线程触发所述第二线程,由第二线程判断所述监控文件中的性能数据与所述监测队列中的性能数据N之和是否大于等于所述阈值容量Q,获得第一结果;当所述第一结果为是时,触发第一结果子单元;当所述第一结果为否时,触发第二结果单元;
第一结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述监控文件中获取Q-N条性能数据放入所述监测队列中;
第二结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述监控文件中的性能数据放入所述监测队列中,使得所述监测队列中的性能数据由N变为M,并判断所述服务器产生的性能数据与所述监测队列中的性能数据M之和是否大于等于所述阈值容量,获得第二结果;当所述第二结果为是时,触发第三结果子单元;当所述第二结果为否时,触发第四结果子单元;
第三结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程从所述服务器产生的性能数据中获取Q-M条性能数据放入所述监测队列中,并将所述服务器产生的性能数据中的剩余性能数据放入所述监控文件中;
第四结果子单元,用于控制所述第一线程触发所述第二线程,由所述第二线程将所述服务器产生的性能数据放入所述监测队列中。
5.根据权利要求4所述的装置,其特征在于,所述第三触发单元包括:
划分子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程将所述监测队列中的性能数据分为多个性能数据块;
读取子单元,用于控制所述第二线程触发所述第三线程,由所述第三线程依次读取所述各个性能数据块。
6.根据权利要求4至5任意一项所述的装置,其特征在于,还包括:
显示单元,用于将所述第三线程读取的所述监测队列中的性能数据进行显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310669832.8A CN103631694B (zh) | 2013-12-10 | 2013-12-10 | 一种国产环境下服务器监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310669832.8A CN103631694B (zh) | 2013-12-10 | 2013-12-10 | 一种国产环境下服务器监测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103631694A CN103631694A (zh) | 2014-03-12 |
CN103631694B true CN103631694B (zh) | 2016-09-07 |
Family
ID=50212779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310669832.8A Active CN103631694B (zh) | 2013-12-10 | 2013-12-10 | 一种国产环境下服务器监测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103631694B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2942541C (en) | 2014-04-17 | 2022-11-22 | Ab Initio Technology Llc | Integrated monitoring and control of processing environment |
CN105183613A (zh) * | 2015-10-28 | 2015-12-23 | 成都博睿德科技有限公司 | 网络化3d打印机监控方法 |
CN107984471B (zh) * | 2016-10-26 | 2020-08-11 | 珠海格力智能装备有限公司 | 机器人工作状态的确定方法和装置及机器人 |
CN107181800B (zh) * | 2017-05-22 | 2020-04-21 | 中国电子科技集团公司第四十一研究所 | 一种状态监测媒体数据的Web实时共享实现方法 |
CN107301114A (zh) * | 2017-06-21 | 2017-10-27 | 郑州云海信息技术有限公司 | 一种云海os监控资源及其信息添加方法和装置 |
CN109344031A (zh) * | 2018-09-25 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种存储***的状态检测方法、装置、设备及存储介质 |
CN109831485A (zh) * | 2018-12-29 | 2019-05-31 | 芜湖哈特机器人产业技术研究院有限公司 | 一种激光雷达的数据通信与解析方法 |
CN112463545A (zh) * | 2020-12-22 | 2021-03-09 | 上海金卓科技有限公司 | 一种操作***的检测方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408889A (zh) * | 2008-11-12 | 2009-04-15 | 阿里巴巴集团控股有限公司 | 一种性能监控的方法、装置及*** |
CN103051496A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种监测点服务器的监控方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6898540B2 (en) * | 2002-11-12 | 2005-05-24 | General Electric Company | System and method for displaying real-time turbine corrected output and heat rate |
-
2013
- 2013-12-10 CN CN201310669832.8A patent/CN103631694B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408889A (zh) * | 2008-11-12 | 2009-04-15 | 阿里巴巴集团控股有限公司 | 一种性能监控的方法、装置及*** |
CN103051496A (zh) * | 2012-12-21 | 2013-04-17 | 大唐软件技术股份有限公司 | 一种监测点服务器的监控方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103631694A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103631694B (zh) | 一种国产环境下服务器监测方法及装置 | |
CN105912401B (zh) | 一种分布式数据批处理***和方法 | |
US8954971B2 (en) | Data collecting method, data collecting apparatus and network management device | |
CN109669992A (zh) | 一种数据可视化转换的实现方法 | |
CN102255386A (zh) | 客户端配电设备运行管理*** | |
CN103823706B (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN103345298A (zh) | 一种基于虚拟it资源分配技术的数据中心节能***及方法 | |
CN107992367B (zh) | 一种Modbus串口数据处理方法 | |
CN110532076A (zh) | 一种云资源创建的方法、***、设备及可读存储介质 | |
CN104156296A (zh) | 智能监控大规模数据中心集群计算节点的***和方法 | |
CN103685309A (zh) | 面向地图可视化瓦片服务接入的异步请求队列模型 | |
CN106201443A (zh) | 一种基于Storm流式计算框架多并发写文件的方法及*** | |
CN105610899B (zh) | 一种文本文件并行上传方法及装置 | |
CN203118041U (zh) | 工程造价进度管理*** | |
CN103944985A (zh) | 一种异构云计算***节能方法及任务调度方法 | |
Zhou et al. | Scheduling workflow in cloud computing based on ant colony optimization algorithm | |
CN105934915A (zh) | 云计算网络中设备负载状态展示方法与装置 | |
CN106483876A (zh) | 一种新能源数据中心的能量调度架构 | |
CN104299170B (zh) | 间歇性能源海量数据处理方法 | |
CN106209390A (zh) | 网络设备管理及节能方法及其资源管理装置、路由节能装置 | |
Zhang et al. | Research on communication network architecture of energy internet based on SDN | |
CN103559255B (zh) | 一种分布式液压***的可视化数据处理方法 | |
CN202795012U (zh) | 一种风力发电机组数据采集和分析装置 | |
CN103491138A (zh) | 一种企业实时信息*** | |
CN107391338A (zh) | 一种固态硬盘访问操作的监控方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211203 Address after: 250014 No. 41-1 Qianfo Shandong Road, Lixia District, Jinan City, Shandong Province Patentee after: SHANDONG CIVIC SE COMMERCIAL MIDDLEWARE Co.,Ltd. Address before: 250014 No. 41-1 Qianfo Shandong Road, Lixia District, Jinan City, Shandong Province Patentee before: SHANDONG CVIC SOFTWARE ENGINEERING Co.,Ltd. |