Node pm2
博客专区 > China_OS 的博客 > 博客详情
Node pm2
China_OS 发表于3个月前
Node pm2
  • 发表于 3个月前
  • 阅读 32
  • 收藏 0
  • 点赞 0
  • 评论 0
摘要: node.js pm2

背景

        Node.js运行在JavaScript平台上,我们把该平台称之为V8引擎(chrome的)。不论是V8引擎,还是之后的Node.js,都是以单线程的方式运行的,因此,在多核心处理器的系统中并不能发挥其最大的性能。不过,Node.js给我们提供了cluster模块,它可以生成多个工作线程来共享同一个TCP连接。首先,Cluster会创建一个master,然后根据你指定的数量fork出多个server app(也被称之为工作线程)。它通过IPC通道与工作线程之间进行通信,并使用内置的负载均衡来更好地处理线程之间的压力,该负载均衡使用了Round-robin算法(也被称之为循环算法),当使用Round-robin调度策略时,master accepts()所有传入的连接请求,然后将相应的TCP请求处理发送给选中的工作线程

介绍

        PM2内部包含了所有上述的处理逻辑,因此你不必对代码做任何修改,就可以让你的Node.js应用更好的压榨服务器资源,官网

安装

    设置npm 淘宝源

npm config set registry https://registry.npm.taobao.org 
npm info underscore 

    安装pm2

npm install pm2 -g

    更新pm2

npm install pm2@latest -g

用法

# General
$ pm2 start app.js              # Start, Daemonize and auto-restart application (Node)
$ pm2 start app.py              # Start, Daemonize and auto-restart application (Python)
$ pm2 start npm -- start        # Start, Daemonize and auto-restart Node application

# Cluster Mode (Node.js only)
$ pm2 start app.js -i 4         # 在cluster模式后台运行pm2,启动4个app.js进程,会自动负载均衡
$ pm2 reload all                # 0秒停机重载进程 (用于 NETWORKED 进程)
$ pm2 scale [app-name] 10       # 把某个app扩展到10个进程

# Process Monitoring
$ pm2 list                      # 显示所有PM2启动的进程状态
$ pm2 monit                     # 监视所有app进程
$ pm2 show [app-name]           # 显示指定app的信息

# Log management
$ pm2 logs                      # 显示所有app的日志
$ pm2 logs [app-name]           # 显示指定app的log信息
$ pm2 logs --json               # 以json格式显示log信息


# Process State Management
$ pm2 start app.js --name="api" # Start application and name it "api"
$ pm2 start app.js -- -a 34     # Start app and pass option "-a 34" as argument
$ pm2 start app.js --watch      # Restart application on file change
$ pm2 start script.sh           # 启动bash脚本
$ pm2 start app.json            # 启动app.json声明的应用
$ pm2 reset [app-name]          # Reset all counters
$ pm2 stop all                  # 停止所有app进程
$ pm2 stop 0                    # 停止id为0的app进程
$ pm2 restart all               # 重启所有app进程
$ pm2 gracefulReload all        # Gracefully reload all apps in cluster mode
$ pm2 delete all                # 杀死全部进程
$ pm2 delete 0                  # 杀死id为0的app进程

# Startup/Boot management
$ pm2 startup                   # Detect init system, generate and configure pm2 boot on startup
$ pm2 save                      # Save current process list
$ pm2 resurrect                 # Restore previously saved processes
$ pm2 unstartup                 # Disable and remove startup system


 

共有 人打赏支持
粉丝 392
博文 377
码字总数 482277
×
China_OS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: