起因

大早上收到报警,几台机器内存不足
想上去查原因,已登录不上

排查

查看监控,发现以下现象

  • 内存耗尽
  • cpu cs在某个时间开始飙高
  • 其他部分机器也有内存使用开始下降的趋势

找了1台还能登录的机器看了下,sleep状态的进程数目6000+
都是监控上报进程
messages里面没什么有用的信息,cron的log中有如下条目
crond[21657]: (root) INFO (Job execution of per-minute job scheduled for 18:08 delayed into subsequent minute 18:13. Skipping job run.)
说明是cron任务卡住

另外strace跟了下监控上报进程,全在wait状态
杀对应进程,故障恢复

ansible批量pkill -f $PATTERN

改进

  • 加入task数量监控
  • 监控上报程序自防御措施
  • OOM监控,但此例未见OOM

BTW: 这篇水文主要是测试hexo ^_^

-EOF-