它经常发生在共享服务器上的用户cron作业全部同时运行并陷入争用(接近我已经能够告诉).所以加载爆炸,Nagios很生气,Apache停止响应,你不能SSH因为它超时等等我不能处于我可以单方面决定用户不能运行crons的位置,但我想解决这个问题,其中pgrep crond | wc -l返回> 50.
似乎应该可以通过限制在任何给定时间或类似时间运行的crond进程的数量来错开它们(比如发送SIGSTOP,直到其中一些清理得更少hacky),但我还没有找到任何好的线索.
硬件:4 cpu及以上,低端是戴尔1435s,带有~8GB内存,RAID 10 WD EADS
主要是Plesk和cPanel,也有一些邪恶的Sphera系统.
你怎么处理这个问题,科夫?
解决方法
您可以使用cron.allow和cron.deny来限制用户对cron的访问,或者您可以使用
PAM limits来限制cpu使用率,进程数和类似的东西.除此之外,解决方案是创建一些东西来监视和处理用户的cron作业,因为cron实际上并没有限制运行多少个作业.
我认为CPanel同时运行多个cron作业,但它是一个特定的工具(不确定).