Feature
Forever
PM2
Keep Alive
✔
✔
Coffeescript
✔
Log aggregation
✔
API
✔
Terminal monitoring
✔
Clustering
✔
JSON configuration
✔
稳定运行建议
PM2是一款非常优秀的Node进程管理工具,它有着丰富的特性:能够充分利用多核CPU且能够负载均衡、能够帮助应用在崩溃后、指定时间(cluster model)和超出最大内存限制等情况下实现自动重启。
个人几点看法保证常驻应用进程稳定运行:
定时重启,应用进程运行时间久了或许总会产生一些意料之外的问题,定时可以规避一些不可测的情况;
最大内存限制,根据观察设定合理内存限制,保证应用异常运行;
合理min_uptime,min_uptime是应用正常启动的最小持续运行时长,超出此时间则被判定为异常启动;
设定异常重启延时restart_delay,对于异常情况导致应用停止,设定异常重启延迟可防止应用在不可测情况下不断重启的导致重启次数过多等问题;
设置异常重启次数,如果应用不断异常重启,并超过一定的限制次数,说明此时的环境长时间处于不可控状态,服务器异常。此时便可停止尝试,发出错误警告通知等。
与supervisor对比
supervisor可以实现修改命令后重启应用,但是关闭控制台之后,整个进程就挂了。pm2则可以后台运行,关闭控制台之后也不影响进程运行。