[发明专利]进程状态监控方法及单元无效
申请号: | 201010134411.1 | 申请日: | 2010-03-25 |
公开(公告)号: | CN102200941A | 公开(公告)日: | 2011-09-28 |
发明(设计)人: | 李方宁 | 申请(专利权)人: | 杭州华三通信技术有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 王一斌;王琦 |
地址: | 310053 浙江省杭州市高新技术产业*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 状态 监控 方法 单元 | ||
技术领域
本发明涉及计算机应用技术领域,具体涉及进程监控方法及单元。
背景技术
进程是计算机应用软件运行的一个实例,对进程状态的监控和管理是计算机软件管理的一个重要范畴。一个好的应用程序,尤其是对外提供服务的应用程序,必须能够将其内部运行状态实时反馈给外部系统,供外界对其进行监控、管理和维护。一旦进程运行出现问题,外界能够及时获知,并进而采取相应的对策如:重新启动进程等。
对进程状态监控的准确性,直接影响到应用软件的可用性。现有对进程进行监控的方法主要有两种:
第一种:通过操作系统提供的应用程序接口(API,ApplicationProgramming Interface)对操作系统中运行的进程进行监控。各种不同的操作系统都提供了系统监控的API,能够监控到系统中正在运行的各个进程状态,此方式能实时得到进程的中央处理单元(CPU,Central Processing Unit)利用率、内存占用率等通用信息。
第二种:进程通过打开特定的套接字(Socket)端口,与外部程序通信并进行数据交互,将进程的内部状态信息反馈给外部程序。
第一种方案存在以下缺点:
一、监控数据不完整:通过操作系统提供的API只能获知进程是否正在运行,并得到CPU、内存等通用信息,无法获知进程更具体的内部状态信息,例如:一个服务进程在开始启动到能够正常提供服务有一个时间间隔,此时进程的状态应该是“正在启动”,而不是通过操作系统的API获知的“已经启动并能提供服务”。
二、跨平台能力较低:对不同的操作系统需要使用不同的API进行监控,使得监控软件的跨平台能力降低。
三、无法对多实例进程的各个实例进行区分:同一个操作系统中如果同时启动同一个应用程序的多个实例,操作系统无法区分具体需要监控哪个实例。对基于Java虚拟机的服务进程进行监控时该问题尤其突出,系统中所有使用Java虚拟机的程序使用操作系统提供的API取到的进程名都是“java”,无法区分哪个进程是需要监控的进程。
第二种方案存在以下缺点:
一、可能出现监控冲突:Socket端口是操作系统中的一类重要资源,不同的进程不能绑定相同的端口以提供服务,因此应用程序启动时,如果监控端口已经被其它进程占用了,就会产生监控失败的问题。
二、Socket资源对操作系统依赖过高:当操作系统发生问题时,Socket端口可能会误认为被监控进程已经停止,从而不继续提供监控服务,此时监控操作将会失败。
在进程的监控过程中,一旦由于外部原因导致获取的监控数据出现问题,就可能导致外部监控程序对被监控进程执行误操作如:将正常运行的进程重启等,此类误操作导致的后果往往很严重。因此,亟需一种稳定、简单、通用的进程状态监控方法。
发明内容
本发明提供进程状态监控方法及单元,以提高监控进程状态的准确性、稳定性和通用性。
本发明的技术方案是这样实现的:
一种进程状态监控方法,预先设定每个被监控进程的每个实例对应一个状态文件,且所有状态文件互不重叠,该方法包括:
一个被监控进程的一个实例启动,该实例在自身的状态文件上加互斥锁,并将自身从启动到停止过程中的各个状态信息写入该状态文件中;
监控进程从所述被监控进程的所述实例的状态文件中读取状态信息。
所述状态信息为:正在启动、已经启动、正在停止或已经停止。
所述监控进程从所述被监控进程的所述实例的状态文件中读取状态信息之前进一步包括:
监控进程定时查询所述被监控进程的所述实例的状态文件,判断是否该状态文件不存在或者未加锁,若是,则确定所述实例未启动或已停止;否则,执行所述从所述被监控进程的所述实例的状态文件中读取状态信息的动作。
当监控进程发现所述被监控进程的所述实例的状态文件加锁时,
所述方法进一步包括:监控进程发现所述状态文件中的状态信息在预设时长内未被更新,则执行实例异常操作。
所述该实例在自身的状态文件上加互斥锁之后进一步包括:
该实例定时将自身的资源占用信息写入自身的状态文件中;
且,监控进程定时从所述实例的状态文件中读取资源占用信息;
或者,该实例在自身发生运行错误现象时,将错误信息写入自身的状态文件中;
且,监控进程定时从所述实例的状态文件中读取错误信息。
所述方法进一步包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华三通信技术有限公司,未经杭州华三通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010134411.1/2.html,转载请声明来源钻瓜专利网。