- PM2 常用相关命令(以下命令使用时需要转为小写)
- PM2 LS 查看进程列表
- PM2 MONIT 查看实时进程列表 (可查看进程启动文件)
- PM2 LOGS 查看所有进程日志
- PM2 LOGS [进程ID或者进程名称] 查看指定进程日志
- PM2 DELETE [进程ID或者进程名称] 删除指定进程
- PM2 KILL 杀死PM2中的所有进程
- PM2 update 更新并重启所有进程
- PM2 reload [进程ID或者进程名称或者启动文件] 重启PM2指定进程
- PM2 start [进程ID或者进程名称或者启动文件] 启动PM2指定进程
- PM2 stop [进程ID或者进程名称或者启动文件] 暂停PM2指定进程
- PM2 常用配置
- 配置文件一般是“ecosystem.config.js”
- 配置示例
- 常用配置相关解释
- 经常需要修改的:
- name: 进程名称
- script :进程启动文件(基于配置文件的相对或者绝对路径)
- Instances : 同时启动的进程数量
- 对运维有用的
- max_memory_restart :自动重启内存限制
- cron_restart:定时重启策略规则请百度 “cron表达式”
- 经常需要修改的:
- PM2 经验总结
- 一般关键点
- 内存:5-20分钟之内上升到40-60之间浮动说明服务正常,低于说明访问压力很小、高于访问压力大
- cpu: 0%-5%之间浮动为正常,偶尔一下很高也属于正常,其他情况一般都是服务异常,请检查以下几个方面:
- 前端代码错误(通过PM2 logs 查看)
- 后端代码报错 (通过PM2 logs 查看)
- 服务器中其他进程占用过高(通过top -c 查看)
- 超级大访问或者攻击 (可通过网关负载或者其他方式等其他方面查看)
- Uptine(在线时长) 和“重启次数”(图标):一般这两个是相对的,Uptine(在线时长)短,说明刚刚重启,可观察PM2整体的Uptine(在线时长) 和“重启次数”(图标),若有某一个经常重启说明进程严重不足。请从以下几个方面判断是否需要增加进程:
- 前端代码错误(通过PM2 logs 查看)
- 后端代码报错 (通过PM2 logs 查看)
- 服务器中其他进程占用过高(通过top -c 查看)
- 超级大访问或者攻击 (可通过前面负载或者其他方式等其他方面查看)
- 日志相关
- 存放位置一般在root/.pm2/logs文件夹下
- 存放文件名是以进程名称+日期命名
- 日志分析
- 查看日志文件大小,一般只需要关注日志文件太大的,可以对比其他进程文件,日志文件过大说明有以下几个方面问题
- 前端代码中打印内容过多
- 前端或者后端报错过多
- 大访问
- 定期查看日志文件过大的文件,查看你其中报错,是否存在攻击或者漏洞扫描。具体可以百度
- 一般监测方法,当发现存在日志异常时,如下操作最终确定是否异常。
- 进入日志目录,执行rm -rf ** 删掉所有日志
- 执行 命令 pm2 update 重启PM2,PM2会自动生成日志
- 观察5-10分钟内日志文件的大小变化,若对比整体上涨很多,或者大于10KB,就判断为异常。需要联系开发判断文档根源
- 查看日志文件大小,一般只需要关注日志文件太大的,可以对比其他进程文件,日志文件过大说明有以下几个方面问题
- 进程分配及操作
- 建议不要超过服务器总进程数的200%,最多不超过300%。
- 根据项目情况,即时调整进程数,如果需要保有服务,可以将进程减少到1个
- 进程增加或减少,操作如下:
- 进入项目目录修改启动文件,一般为“ecosystem.config.js”中的“Instances ”字段
- 执行命令:pm2 delete [启动文件]
- 执行命令:pm2 start [启动文件]