CN102622290A - 一种进程监控的方法及系统 - Google Patents
一种进程监控的方法及系统 Download PDFInfo
- Publication number
- CN102622290A CN102622290A CN2012100573875A CN201210057387A CN102622290A CN 102622290 A CN102622290 A CN 102622290A CN 2012100573875 A CN2012100573875 A CN 2012100573875A CN 201210057387 A CN201210057387 A CN 201210057387A CN 102622290 A CN102622290 A CN 102622290A
- Authority
- CN
- China
- Prior art keywords
- thread
- monitored
- priority
- idleness
- monitor
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种进程监控的方法及系统,上述方法包括以下步骤。设定线程池中所有线程的优先级。根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系。计算每个优先级中所有线程的空闲率。分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
Description
技术领域
本发明属于通信技术领域,尤其涉及一种进程监控的方法及系统。
背景技术
随着信息社会的飞速发展,各种各样的通信工具如飞信、QQ等被人们普遍使用,除了个人应用以外,一些企业版的即时通信方式也逐渐为大众所熟悉,譬如视频会议等。在企业日常维护工作中,难以避免有进程意外停止的情况出现。目前,常用的做法是为进程分配指定的监控程序,当进程关闭时,程序报警以引起注意。这种方法事先为进程分配固定的资源以实施监控,当重要进程因压力过大或其它情况导致崩溃时,不能按照进程的不同分配个性化的监控线程,也不能提供按线程的空闲情况灵活分配监控线程。另外,对于重复开启的进程,还没有检验并关闭多余进程的方法。
发明内容
本发明提供一种进程监控的方法及系统以解决上述问题。
本发明提供一种进程监控的方法,上述方法包括以下步骤。设定线程池中所有线程的优先级;根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系;计算每个优先级中所有线程的空闲率;分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
本发明提供一种进程监控的系统,包括控制器、存储器、计算器以及处理器,所述控制器连接所述存储器,所述存储器连接所述计算器,所述计算器连接所述处理器。所述控制器,用于设定线程池中所有线程优先级。所述存储器,用于根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系。所述计算器,用于计算每个优先级中所有线程的空闲率。所述处理器,用于分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
相较于先前技术,根据本发明提供的进程监控的方法及系统,事先对线程池中所有线程设定优先级,并获取待监控进程与线程优先级的对应关系,为不同进程分配不同优先级的监控线程。另外,可定时或实时计算每个优先级中所有线程的空闲率,根据不同时刻线程的空闲率,动态分配该优先级中空闲率最高的线程监控优先级对应的待监控进程,并实时监控待监控进程。既做到了进程实时监控,又合理利用了系统资源。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为根据本发明的较佳实施例提供的进程监控的方法的流程图;
图2所示为根据本发明的较佳实施例提供的进程监控的系统的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1所示为根据本发明的较佳实施例提供的进程监控的方法的流程图。如图1所示,本发明的较佳实施例提供的进程监控的方法包括步骤101~104。
步骤101:设定线程池中所有线程的优先级。
具体而言,服务器创建一个线程后,即放入线程池中,所述线程池用于存放空闲线程,当线程执行任务时,服务器从线程池中取出所需线程进行分配,任务完成后,服务器将空闲线程释放至线程池中。其中,服务器为每个线程设定不同的优先级。线程池中线程与其优先级对应关系例如表1所示。
线程名 | 优先级 |
线程1 | 第一等级 |
线程2 | 第一等级 |
线程3 | 第一等级 |
线程4 | 第二等级 |
线程5 | 第二等级 |
线程6 | 第三等级 |
线程7 | 第四等级 |
线程8 | 第四等级 |
线程9 | 第五等级 |
线程10 | 第五等级 |
表1
在表1中,各线程优先级由高到低依次为:第一等级、第二等级、第三等级、第四等级、第五等级。上表中线程及优先级的对应关系为部分举例,在其它实施例中,可以根据需要对线程个数及优先级等级重新设置,对此本发明并不作限定。
步骤102:根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系。
具体而言,客户端存储各进程的配置文件及其对应的线程优先级,并通过统一端口对服务器提供查询,服务器读取配置文件并获取待监控进程列表,该列表为待监控进程与线程优先级的对应关系表。服务器从所述进程列表中获取待监控进程的全路径,同时扫描操作系统任务管理器的进程列表以获取所有进程的全路径列表,判断上述所有进程的全路径列表中是否包含待监控进程的全路径,若包含,则所述待监控进程已开启。所述待监控进程与线程优先级的对应关系表例如表2所示。
待监控进程名称 | 待监控进程全路径 | 线程优先级 |
进程a | C:\Program Files\a.exe | 第一等级 |
进程b | C:\Program Files\b.exe | 第二等级 |
进程c | C:\Program Files\c.exe | 第三等级 |
进程d | C:\Program Files\d.exe | 第四等级 |
进程e | C:\Program Files\e.exe | 第五等级 |
表2
结合表1及表2的示例,优先级最高的第一等级线程包括线程1、线程2及线程3,当服务器分配线程监控进程a时,选择第一等级的线程1、线程2及线程3中空闲率最高的线程对待监控进程a进行监控。同样地,当服务器分配线程对其它进程进行监控时,选择待监控进程对应的优先级中空闲率最高的线程监控所述进程。表2中各进程与线程优先级的对应关系为部分举例,在其它实施例中,可以根据需要对进程与线程优先级的对应关系重新设置,对此本发明并不作限定。
另外,服务器定时检验是否存在多个相同的待监控进程,若有多个相同的待监控进程同时开启,关闭多余的待监控进程。所述检验的方法为,扫描操作系统任务管理器的进程列表后获取所有进程的全路径列表,判断所述全路径列表是否包含多个相同的全路径内容,若包含,则关闭多余的待监控进程。关闭多余待监控进程的方法可以为:比较多个相同的待监控进程的打开日期,保留打开日期最早的待监控进程,其余全部关闭;或者所述方法可以为:比较多个相同的待监控进程的内存大小,保留内存最大的待监控进程,其余全部关闭。
步骤103:计算每个优先级中所有线程的空闲率。
具体而言,线程的空闲率是指在采样时长内,线程的空闲时间占采样时长的百分比。线程空闲率的计算方式可以为实时计算或定时计算。
下面以线程1为例对空闲率的实时计算方式作出详细说明。当服务器重新分配线程监控待监控进程时,需重新计算线程空闲率,此时空闲率为,从线程创建时刻到服务器重新分配线程时刻之间的时间段内,该时间段内线程的空闲时间占所述时间段的百分比。例如,服务器在当日0时创建了线程1,于9时需重新计算线程空闲率。在0~9时之间,线程1的空闲时间为3小时,则在9时实时计算得出线程1的空闲率为3/9*100%=33%。上述空闲率的实时计算方式,当服务器需要重新分配线程监控待监控进程时,实时计算待监控进程对应优先级的线程空闲率,并分配空闲率最高的线程监控待监控进程。
接下来以线程2为例对空闲率的定时计算方式详细说明。可以在预设的定点时刻,取线程创建时间到所述定点时刻之间为采样时长,则线程空闲率为在采样时长内线程的空闲时间占所述采样时长的百分比。例如,服务器定时整点计算空闲率,若服务器于0时创建线程2,0时至9时线程2的空闲时间为2小时,服务器于9时计算线程2的空闲率为2/9*100%=22%,在接下来的1小时内线程2仍空闲,则线程2在10时的空闲率为(2+1)/10*100%=30%。于此,若服务器在9~10时之间任一时刻需重新分配线程监控待监控进程,空闲率取值为前一定点时刻的计算值,即以线程2为例,空闲率按照9时取值为22%。
所述空闲率的定时计算方式也可以为,从需要计算空闲率的时刻往前推至某一时刻的时间段为采样时段,所述采样时段的大小根据实际需要设定。线程空闲率为线程在采样时段内的空闲时间占所述采样时段的百分比。以线程3为例,若服务器在当日0时创建了线程3,在11时需计算线程3空闲率,若设定采样时段大小为2小时,从11时往前推2小时,即9时至11时之间的2小时为采样时段。若线程3在9~11时之间空闲时间为0.5小时,则服务器11时计算线程3空闲率为9时至11时之间线程3的空闲时间占采样时段的百分比,即0.5/2*100%=25%。若服务器在11~12时之间任一时刻需重新分配线程监控待监控进程,空闲率取值为前一定点时刻的计算值,以线程3为例,空闲率按11时取值为25%。若服务器每隔1小时整点计算线程空闲率,在下一个整点时刻即12时,服务器重新计算线程3的空闲率,于此,采样时段为10~12时,若在10~12时之间线程3的空闲时间为0.4小时,则12时线程3的空闲率为0.4/2*100%=20%。同样地,在12~13时之间,若服务器需重新分配线程监控待监控进程,空闲率取值为12时的计算结果。以此类推,若服务器每一整点定时计算线程空闲率时,采样时段均为所述整点时刻之前最近的两小时。
步骤104:分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
具体而言,线程监控对应的待监控进程,若待监控进程被关闭或监控待监控进程的线程超时,则激活该线程,且在线程被激活后,线程判断待监控进程是否被关闭,若待监控进程被关闭,则重启待监控进程,若待监控进程未被关闭,则该线程继续监控待监控进程。当待监控进程重启后,查询线程池中是否存在与待监控进程对应优先级的线程,若存在,释放该线程至线程池中,重新查询该优先级中所有线程的空闲率,并重新分配该优先级中空闲率最高的线程监控待监控进程。若线程池中不存在与待监控进程对应优先级的线程,该线程继续监控该待监控进程。
结合表1及表2中的示例,待监控进程b对应的线程优先级为第二等级,优先级为第二等级的线程包括线程4、及线程5,若通过实时计算获得它们对应的线程空闲率分别为25%及46%,则服务器分配空闲率最高的线程5监控进程b。
当线程5监控待监控进程b时,若进程b被关闭或线程5超时,服务器激活线程5。激活的线程5可用于判断待监控进程b是否被关闭。若待监控进程b被关闭,则服务器重启待监控进程b。若待监控进程b未被关闭,则线程5继续监控待监控进程b。当待监控进程b重启后,服务器查询线程池中是否存在与进程b对应优先级的线程,即,优先级为第二等级的其它线程,若存在,释放线程5至线程池中,查询该优先级中所有线程的空闲率,并分配所述优先级中空闲率最高的线程监控所述待监控进程b。于此,释放线程5至线程池后,若通过实时计算获得第二等级优先级的线程4、5空闲率分别为45%、21%,则服务器分配空闲率最高的线程4监控待监控进程b。若查询得到线程池中不存在与所述待监控进程b对应优先级的线程时,即线程4已不在线程池中,则线程5继续监控所述待监控进程b。
图2所示为根据本发明的较佳实施例提供的进程监控的系统的示意图。如图2所示,本发明的较佳实施例提供的进程监控的系统包括控制器201、存储器202、计算器203以及处理器204,所述控制器201连接所述存储器202,所述存储器202连接所述计算器203,所述计算器203连接所述处理器204。所述控制器201,用于设定线程池中所有线程优先级。所述存储器202,用于根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系。所述计算器203,用于计算每个优先级中所有线程的空闲率。所述处理器204,用于分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
综上所述,根据本发明较佳实施例提供的进程监控的方法及系统,为不同进程分配相应优先级的监控线程,并定时或实时计算所有线程的空闲率,动态分配相同优先级中空闲率最高的线程监控优先级对应的待监控进程。若进程被关闭或线程超时,激活线程后,根据线程对进程的监控结果,决定是否对监控线程进行再分配,确保在进程被关闭后,能瞬间重启进程。在不另外占用资源监控进程的同时,做到了进程实时监控。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种进程监控的方法,其特征在于,包括以下步骤:
设定线程池中所有线程的优先级;
根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系;
计算每个优先级中所有线程的空闲率;
分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
2.根据权利要求1所述的方法,其特征在于,若所述待监控进程被关闭或监控所述待监控进程的线程超时,则激活所述线程,且于所述线程被激活后,所述线程判断所述待监控进程是否被关闭,若所述待监控进程被关闭,则重启所述待监控进程,若所述待监控进程未被关闭,则所述线程继续监控所述待监控进程。
3.根据权利要求2所述的方法,其特征在于,于所述待监控进程重启后,查询线程池中是否存在与所述待监控进程对应优先级的线程,若存在,释放所述线程至线程池中,重新查询所述优先级中所有线程的空闲率,并重新分配所述优先级中空闲率最高的线程监控所述待监控进程。
4.根据权利要求3所述的方法,其特征在于,若查询得到线程池中不存在与所述待监控进程对应优先级的线程时,所述线程继续监控所述待监控进程。
5.根据权利要求1所述的方法,其特征在于,定时检验是否存在多个相同的待监控进程,若有多个相同的待监控进程同时开启,关闭多余的待监控进程。
6.根据权利要求1所述的方法,其特征在于,所述线程池中每个优先级的所有线程的空闲率通过定时计算获得。
7.根据权利要求1所述的方法,其特征在于,根据配置文件获取待监控进程列表,并依次从所述列表获取待监控进程的全路径,扫描操作系统任务管理器的进程列表以获取所有进程的全路径列表,判断上述所有进程的全路径列表中是否包含待监控进程的全路径,若包含,则所述待监控进程已开启。
8.一种进程监控的系统,其特征在于,包括控制器、存储器、计算器以及处理器,所述控制器连接所述存储器,所述存储器连接所述计算器,所述计算器连接所述处理器,
所述控制器,用于设定线程池中所有线程优先级;
所述存储器,用于根据配置文件获取待监控进程列表,并获取待监控进程与线程优先级的对应关系;
所述计算器,用于计算每个优先级中所有线程的空闲率;
所述处理器,用于分配所述优先级中空闲率最高的线程监控所述优先级对应的待监控进程,所述线程监控对应的待监控进程是否关闭。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100573875A CN102622290A (zh) | 2012-03-07 | 2012-03-07 | 一种进程监控的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100573875A CN102622290A (zh) | 2012-03-07 | 2012-03-07 | 一种进程监控的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102622290A true CN102622290A (zh) | 2012-08-01 |
Family
ID=46562217
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100573875A Pending CN102622290A (zh) | 2012-03-07 | 2012-03-07 | 一种进程监控的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622290A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176901A (zh) * | 2013-02-27 | 2013-06-26 | 深圳创维数字技术股份有限公司 | 一种嵌入式软件测试监控方法及系统 |
CN105630653A (zh) * | 2016-03-15 | 2016-06-01 | 青岛海信传媒网络技术有限公司 | Docker容器的CPU空闲率确定方法及装置 |
CN106020909A (zh) * | 2016-06-01 | 2016-10-12 | 努比亚技术有限公司 | 应用进程的控制装置及方法 |
WO2019024640A1 (zh) * | 2017-07-31 | 2019-02-07 | Oppo广东移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN110942246A (zh) * | 2019-11-25 | 2020-03-31 | 维珍(深圳)数据技术有限公司 | 一种工单的监控方法和设备 |
CN111324423A (zh) * | 2020-03-03 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 容器内进程的监控方法、装置、存储介质和计算机设备 |
CN112346906A (zh) * | 2019-08-08 | 2021-02-09 | 丰鸟航空科技有限公司 | 无人机守护进程处理方法、装置、设备、及存储介质 |
WO2021057855A1 (zh) * | 2019-09-26 | 2021-04-01 | 三维通信股份有限公司 | 程序进程监控的方法、装置、计算机设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084377A1 (en) * | 2001-10-31 | 2003-05-01 | Parks Jeff A. | Process activity and error monitoring system and method |
JP2003345620A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Software Eng Co Ltd | 多ノードクラスタシステムのプロセス監視方法 |
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式系统性能的评估方法及系统 |
CN102207890A (zh) * | 2011-05-27 | 2011-10-05 | 苏州阔地网络科技有限公司 | 一种任务信息处理方法及调度控制处理装置 |
-
2012
- 2012-03-07 CN CN2012100573875A patent/CN102622290A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030084377A1 (en) * | 2001-10-31 | 2003-05-01 | Parks Jeff A. | Process activity and error monitoring system and method |
JP2003345620A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Software Eng Co Ltd | 多ノードクラスタシステムのプロセス監視方法 |
CN101620562A (zh) * | 2009-08-07 | 2010-01-06 | 中兴通讯股份有限公司 | 一种嵌入式系统性能的评估方法及系统 |
CN102207890A (zh) * | 2011-05-27 | 2011-10-05 | 苏州阔地网络科技有限公司 | 一种任务信息处理方法及调度控制处理装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176901A (zh) * | 2013-02-27 | 2013-06-26 | 深圳创维数字技术股份有限公司 | 一种嵌入式软件测试监控方法及系统 |
CN105630653A (zh) * | 2016-03-15 | 2016-06-01 | 青岛海信传媒网络技术有限公司 | Docker容器的CPU空闲率确定方法及装置 |
CN106020909A (zh) * | 2016-06-01 | 2016-10-12 | 努比亚技术有限公司 | 应用进程的控制装置及方法 |
CN106020909B (zh) * | 2016-06-01 | 2019-10-29 | 努比亚技术有限公司 | 应用进程的控制装置及方法 |
WO2019024640A1 (zh) * | 2017-07-31 | 2019-02-07 | Oppo广东移动通信有限公司 | 进程控制方法、装置、存储介质以及电子设备 |
CN112346906A (zh) * | 2019-08-08 | 2021-02-09 | 丰鸟航空科技有限公司 | 无人机守护进程处理方法、装置、设备、及存储介质 |
WO2021057855A1 (zh) * | 2019-09-26 | 2021-04-01 | 三维通信股份有限公司 | 程序进程监控的方法、装置、计算机设备及可读存储介质 |
CN110942246A (zh) * | 2019-11-25 | 2020-03-31 | 维珍(深圳)数据技术有限公司 | 一种工单的监控方法和设备 |
CN111324423A (zh) * | 2020-03-03 | 2020-06-23 | 腾讯科技(深圳)有限公司 | 容器内进程的监控方法、装置、存储介质和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622290A (zh) | 一种进程监控的方法及系统 | |
CN102622291A (zh) | 一种进程的监控方法及系统 | |
EP2863306B1 (en) | Predictive auto scaling engine | |
WO2020181813A1 (zh) | 一种基于数据处理的任务调度方法及相关设备 | |
US9940177B2 (en) | Traffic control method and system | |
CN105592127B (zh) | 用于云计算环境的应用管理系统 | |
CN104850460A (zh) | 一种服务程序线程管理方法 | |
CN106470163B (zh) | 一种信息处理方法、装置和系统 | |
CN112579304A (zh) | 基于分布式平台的资源调度方法、装置、设备及介质 | |
CN111967697A (zh) | 一种在线动态能耗智能预警方法、系统、装置和存储介质 | |
CN106685894B (zh) | 一种风险识别方法、装置及系统 | |
CN104598300A (zh) | 分布式业务流程定制方法及系统 | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
WO2018099090A1 (zh) | 从云计算系统中确定主调度器的方法及装置 | |
CN106708608A (zh) | 一种分布式锁服务方法、获取方法及相应装置 | |
CN104618493A (zh) | 数据请求处理方法及装置 | |
CN111124829A (zh) | 一种kubernetes计算节点状态监测方法 | |
CN106598740A (zh) | 一种限制多线程程序占用cpu利用率的系统及限制方法 | |
CN103475742B (zh) | 云计算环境中主控节点确定的方法及系统 | |
CN103605575A (zh) | 一种Cloud Foundry平台应用调度系统及方法 | |
CN103188103A (zh) | 一种网管系统自监控方法 | |
CN112866314A (zh) | 分布式主从系统中从节点的切换方法、主节点设备和存储介质 | |
CN109120424B (zh) | 一种带宽调度方法及装置 | |
CN106530059A (zh) | 订单处理方法及系统 | |
CN202548826U (zh) | 一种进程的监控系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120801 |