我有带 saslauthd 的 postfix 电子邮件服务器。saslauthd 守护进程一次又一次地占用 100% 的 CPU。重新启动这些服务后 CPU 使用率会恢复正常。
是否有合适的脚本来确定 CPU 使用率高的服务并自动重新启动它。
提前致谢。
答案1
你可能想看看monit
(官方网站)。
它可以轻松配置以监视高 CPU 使用率并在需要时重新启动进程。
一个简单的例子(你应该根据你的系统路径和需要进行配置):
check process saslauth with pidfile /var/run/saslauthd/saslauthd.pid
group mail
start program = "/etc/init.d/saslauthd start"
stop program = "/etc/init.d/saslauthd stop"
if cpu > 90% for 2 cycles then restart
其中(取自手册):
CPU([user|system|wait]) is the percent of time the system spend in user or
kernel space and I/O. The user/system/wait modifier is optional, if not
used, the total system cpu usage is tested
以及循环等于set daemon
配置选项中的秒数。