1 首先查看日志文件
命令:tail -f /var/log/messages
clipboard.png
2 根据报错信息,定位到内存溢出出现在23:19分(连续2天出现在23点之后)
3 初步判定是定时脚本问题:每天23点有执行抓取程序
4 猜测可能是抓取程序死循环导致的:优化了代码,检查是否有死循环的逻辑(发现没有),做了一系列非空判断:for循环里数据为空continue,for循环外数据为空 return。
5 检查crontab定时任务的执行时间:发现了真正的问题: 定时任务竟然是这么写的 * 23 * * *(每天23点间隔一分钟就会执行任务,23:00:00,23:01:00,23:02:00....) 逆天了;设计初衷是每天23点执行定时任务,正确的写法是:0 23 * * *
6 修改crontab之后,服务器再也没有宕机。
tips:
1 打开crontab: crontab -e
2 crontab表达式测试工具(力荐):http://tool.lu/crontab
网友评论