同事昨天在服务器上执行pm2 list,没反应。重复了几次,服务器就卡爆了。和我之前遇到的一样(执行pm2 list,机器负载飙升,当时怀疑是Pm2,还有业务代码),这次又复现了。阿里云单核负载快到20。不同的业务代码。
从系统日志看到服务被oom-killer处理了(当时占内存最大的)。异常发现多个PM2进程(当前登陆用户),之前都是root启动pm2.
从监控可以看到现象: load,io-wait飙升,cpu利用率不高。感觉负载较高时,监控数据有些验证。load还是平均的。。。
复现:找了一台机器。root用户执行pm2 list正常。使用自己账号执行,复现了。
应该是pm导致负载上升,导致内核分配失败,启动oom-killer。业务进程中枪。
解决: 升级pm(1.1.3->2.1.5)
npm install pm2@latest -g ; pm2 update
参考:
http://www.vpsee.com/2013/10/how-to-configure-the-linux-oom-killer/