我有一个
Linux服务器用于我的一个Web应用程序.每隔一段时间,一个进程(可能是一个长时间运行的脚本)可能会失控,可能会消耗太多的内存/ cpu周期并阻塞所有其他进程.
在这种情况下,我无法进入服务器,我需要通过管理面板重新启动服务器.我更喜欢登录机器并仅处理有问题的过程.
是否可以在linux机器中安排资源,但是,如果进程占用资源,则总是有足够的资源可用于ssh连接?
解决方法
您可以使用“nice”来确定某些软件的优先级.
您还可以查看安装monit,如果满足某个阈值,您可以指示重新启动某个包.
沿这些行的monit配置将自动重启Apache:
check process apache with pidfile "/usr/local/apache/logs/httpd.pid" start program = "/etc/init.d/httpd start" with timeout 60 seconds stop program = "/etc/init.d/httpd stop" if 2 restarts within 3 cycles then timeout if totalmem > 100 Mb then alert if children > 255 for 5 cycles then stop if cpu usage > 95% for 3 cycles then restart if Failed port 80 protocol http then restart group server depends on httpd.conf,httpd.bin