我的 CentOS 服务器在正常运行一周后因交换导致 100% 内存崩溃。调查 /var/log/messages 向我显示以下内容:https://pastebin.com/CSF8DDzX基本上有以下几点:
Feb 12 23:31:32 [localhost] kernel: [31186] 0 31186 85296 0 116 1108 0 php
Feb 12 23:31:32 [localhost] kernel: [31252] 0 31252 45588 1 44 230 0 crond
Feb 12 23:31:32 [localhost] kernel: [31253] 0 31253 85296 0 112 1108 0 php
Feb 12 23:31:32 [localhost] kernel: [31315] 0 31315 45588 1 44 230 0 crond
Feb 12 23:31:32 [localhost] kernel: [31316] 0 31316 85296 0 116 1107 0 php
Feb 12 23:31:32 [localhost] kernel: [31377] 0 31377 45588 1 44 230 0 crond
看起来它陷入了一个循环。我的 crontab -e 向我展示了这个:
0 0,4,8,12,16,20 * * * php PeriodicallyKillWorkers.php
* * * * * php cheduleWorker.php
脚本运行良好,crontab 也运行良好。我应该在哪里进一步调查?
答案1
你每分钟运行一次:
* * * * * php cheduleWorker.php
检查里面有什么以及执行该脚本需要多长时间。并添加程序和脚本的完整路径
还要检查其他作业(运行多长时间、使用多少内存等等)