本来说是告一段落,根据需要,又增加了两个功能。
|---------------------------------------------
| v0.5.1 更新内容
|
| 1、增加调度进程活跃度显示
|---------------------------------------------
| v0.6.0 更新内容
|
| 1、修正v0.5.1中活跃度功能一处bug
| 2、增加报警接口
|---------------------------------------------
说明:
1、活跃度显示
这个功能主要是方便查看那些没有挂掉,但被“憋死”(类似死锁)的进程。
实现原理是,由于DP(调度做事进程)基于循环,我让其每循环一次,发送一个signal给对应的LP(监听进程),LP在内部进行统计,再由监控中心来处理一定时间段内DP的循环次数(活跃度)。
PHP封装的posix和pcntl真的很好用,使用起来和C几乎一模一样。这样就可以使用linux进程间的信号处理函数,效率很高。
2、报警接口
整套结构目前除了log记录外,只提供了命令控制台查看的功能,无法及时对出现的情况向用户发出警报。
由于公司之前已有人做了个监控报警程序(出问题时会发短信到值班人手机),一直在使用。因此我只需要提供个接口给该报警程序。
实现原理很简单,通过命令行形式调用,程序访问run.ing文件获取实时信息,若有问题返回相应内容。另外,参数支持报警级别。
最新版本的结构图:
最后,这次真的是告一段落了~_~
接下来需要研究个新问题:linux下文件监控
先大概搜了一下,基本上都是说通过inotify这个内核特性来实现的(linux 2.6.13以上内核支持)。
需要研究一下。。。