PRM-Linux的进程资源监视器
PRM是Linux系统的CPU,内存,进程和运行(经过)时间资源监视器。
它通过监视给定系统上的进程表并在配置文件或者基于每个进程的规则中将进程ID与设置的资源限制进行匹配来做到这一点。
匹配或者超过设置的限制的进程ID会被记录并杀死,并且警报可以发送到电子邮件地址。
PRM的资源监视功能可以通过许多忽略选项,配置软/硬终止触发器,等待/重新检查定时以及将终止信号发送到父/子进程树的能力来控制。
PRM安装
1.下载源程序包:
wget http://www.rfxnetworks.com/downloads/prm-current.tar.gz
2.解压缩压缩的源文件:
tar –xvzf prm-current.tar.gz
3.运行安装脚本:
cd prm-* ./install.sh
PRM配置
PRM安装的配置文件可以在“ /usr/local/prm/conf.prm”中找到。
我们可以在这里查看PRM的主要配置参数。
- IGNORE_ROOT =“ 1”
这告诉PRM忽略任何root拥有的进程,但是,当设置KILL_PARENT选项时,root拥有的父进程仍然会被杀死。
- IGNORE =“”
这是一个重要的选项,是使用规则系统时忽略的推荐方法。
可接受的值是基本和扩展正则表达式,它们使用管道(|)作为分隔符。
例如,如果将IGNORE =“ ^ httpd $| ^ sendmail $”放在名为nobody.user的规则中,它将忽略用户nobody下任何命令名称完全为“ httpd”或者“ sendmail”的进程。
- USR_ALERT =“ 1”
这将启用用户电子邮件警报。
- USR_ADDR =“ root,[email protected]”
这将配置用于接收警报的电子邮件地址。
- MIN_LOAD =“ 1”
PRM可选地具有运行所需的平均负载。
如果负载不等于或者大于此值; PRM将无法运行。
- KILL_TRIG =“ 3”
KILL_WAIT =“ 10”
这些值控制流程的软重新检查,允许流程在两次检查之间使用WAIT时间来重新检查其资源的TRIG时间,从而为流程“突增”资源并使其恢复正常使用提供了一点余地。
杀死进程的最大时间等于TRIG * WAIT,如果要立即杀死有问题的进程,可以将这些值设置为0。
- MAXCPU =“ 40”
在PRM将其标记为杀死之前,进程可以安全使用的CPU的最大百分比。
- MAXMEM =“ 20”
某个进程的最大内存使用率读数,该值是允许某个进程使用的系统总内存的百分比。
- KILL_PARENT =“ 1”
这是一个重要的选项,在大多数情况下应启用该选项。
它允许杀死父进程和父进程的子进程。
这很重要,因为当一个进程由父线程器(例如Apache)创建时,当子进程消失时,父进程会简单地派生出一个新的子线程来替换它。
PRM的规则文件
规则系统有两种使用方法,第一种是基于用户的规则,第二种是基于过程命令的规则。
规则路径位于/usr/local/prm/rules /中,命名约定如下:
USERNAME.user
COMMAND.cmd
规则文件示例,rules/nobody.user:
IGNORE="^httpd$|^suexec$|^suphp$|^cgiwrap$|^spamd$" MAX_CPU="50" MAX_MEM="10" MAX_PROC="25" KILL_TRIG="3" KILL_WAIT="10" # We need to kill parent here otherwise the HTTP Request that spawned the # script we are trying to kill, will probably just respawn it. KILL_PARENT="1" KILL_SIG="9" KILL_RESTART_CMD="/etc/init.d/httpd restart"
自动执行PRM
可执行程序位于“/usr/local/prm/prm”和“/usr/local/sbin/prm”中。
prm可执行文件可以接收以下两个参数之一:
-s标准运行
-q安静运行
PRM的默认执行通过/etc/cron.d/prm处理,并设置为每5分钟运行一次。