pm2配置快速入门

字节逆旅

共 1683字,需浏览 4分钟

 · 2021-06-21

在对express进行项目部署的时候,我们需要一个东西来守护进程,类似于java中的tomcat一样,pm2就是一个node进程管理工具,它可以对node应用进行简化管理,使用起来非常方便。这里只做基本的配置入门介绍。

1、安装pm2

npm install pm2 -g

如果在windows服务器上,要注意添加pm2环境变量;具体操作可以找下相关资料,比较简单,需要注意一点:path栏指向的是软件启动文件所在地址。

2、常用命令

这里有些常用命令先贴出来:

pm2 start app.js --name=fork  -i 0 #启动app.js 

# --name=fork 命名为fork
# -i 0 根据CPU核数启动进程个数

pm2 start app.js --watch # 当文件变化时自动重启应用
pm2 start script.sh # 启动 bash 脚本
pm2 list # 列表 PM2 启动的所有的应用程序
pm2 monit # 显示每个应用程序的CPU和内存占用情况
pm2 show [app-name] # 显示应用程序的所有信息
pm2 logs # 显示所有应用程序的日志
pm2 stop all # 停止所有的应用程序
pm2 stop 0 # 停止 id为 0的指定应用程序
pm2 restart all # 重启所有应用
pm2 reload all # 重启 cluster mode下的所有应用
pm2 delete all # 关闭并删除所有应用
pm2 delete 0 # 删除指定应用 id 0
pm2 scale api 10 # 把名字叫api的应用扩展到10个实例pm2 reset [app-name] # 重置重启数量
pm2 startup # 创建开机自启动命令
pm2 save # 保存当前应用列表
pm2 resurrect # 重新加载保存的应用列表

#内存使用超过上限自动重启 可以加上--max-memory-restart参数
pm2 start app.js --max-memory-restart 20M

3、pm2启动项目

pm2 start ./bin/www

4、管理内存溢出问题

如果遇到内存溢出问题,进程崩掉了,这时需要重启进程。

有一种方法是在启动时设置内存阈值重启,就是这样:

pm2 start www --max-memory-restart 4096M

不过我在实际操作中发现此命令无效,我后来改成6G都没法阻止重启,服务一调用就直接js heap out of memory了。

最后,实在没办法,只有不用pm2,直接用npm启动

这需要在package.json文件中的启动节点进行最大内存配置:

"scripts": {
    "start""node --max_old_space_size=4096 ./bin/www"
  }

然后启动就可以了

npm start

进程因为内存溢出崩掉后也会自动重启


浏览 141
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报