PM2 介绍

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【10月更文挑战第11天】

PM2 是一个流行的 Node.js 应用的进程管理器,它提供了许多功能,包括进程监控、自动重启、日志管理以及负载均衡等。以下是 PM2 进行进程管理的介绍、原理以及在应用中的使用说明:

介绍

PM2 是一个生产环境下的 Node.js 应用的进程管理器。它允许开发者管理和保持应用程序在线,即使在遇到崩溃或系统更新时也不会中断服务。PM2 提供了命令行工具,通过它可以启动、重启、停止和监控应用程序。

原理

  1. 进程守护: PM2 能够将 Node.js 应用程序作为守护进程运行,这意味着即使关闭了终端窗口,应用程序也会继续在后台运行。
  2. 自动重启: 当应用程序崩溃或停止响应时,PM2 能够自动重启它,确保服务的持续可用性。
  3. 日志管理: PM2 会记录应用程序的标准输出和错误输出,并将它们保存在日志文件中,方便开发者进行调试和监控。
  4. 负载均衡: PM2 支持多进程,可以按照配置启动多个应用程序实例,并且能够在这些实例之间实现负载均衡。
  5. 零停机重载: PM2 提供了零停机部署的功能,可以在不中断服务的情况下重新加载应用程序。
    以下是 PM2 的一些关键原理:
  • Cluster Mode: PM2 使用 Node.js 的 cluster 模块来利用多核 CPU 的能力,通过创建多个工作进程来提高应用程序的性能和可靠性。
  • 配置文件: PM2 允许通过配置文件来管理应用程序的设置,这使得在不同环境中部署和维护应用程序变得更加容易。

    应用

    在应用 PM2 时,以下是一些常见的步骤和用法:
  1. 安装 PM2:
    npm install pm2@latest -g
    
  2. 启动应用程序:
    pm2 start app.js
    
  3. 查看应用程序列表:
    pm2 list
    
  4. 监控应用程序:
    pm2 monit
    
  5. 日志管理:
    pm2 logs
    
  6. 零停机重载:
    pm2 reload app.js
    
  7. 停止应用程序:
    pm2 stop app.js
    
  8. 删除应用程序:
    pm2 delete app.js
    
  9. 使用配置文件:
    创建一个 ecosystem.config.js 文件来定义应用程序的配置,然后使用以下命令启动:
    pm2 start ecosystem.config.js
    
    通过使用 PM2,开发者可以简化 Node.js 应用的生产部署和维护工作,确保应用的高可用性和稳定性。

PM2 提供了自动重启功能,它可以在应用程序崩溃或者停止运行时自动重新启动应用程序。以下是配置 PM2 自动重启策略的步骤:

1. 使用命令行选项

当使用 PM2 启动应用程序时,可以指定一些命令行选项来配置自动重启策略:

  • --watch:监控应用程序的文件变动,一旦文件被修改,则自动重启应用。
  • --restart-delay:设置重启前的延迟时间(以毫秒为单位)。
    例如:
    pm2 start app.js --watch --restart-delay=5000
    
    这个命令将启动 app.js 应用程序,并且如果文件发生变化,它将在 5000 毫秒后重启。

    2. 使用配置文件

    创建一个 PM2 配置文件(通常命名为 ecosystem.config.js),可以更灵活地配置自动重启策略。以下是配置文件的一个例子:
    module.exports = {
         
    apps : [{
         
      name: 'app-name',
      script: 'app.js',
      // 自动重启配置
      autorestart: true, // 默认为 true,即启用自动重启
      watch: true, // 启用文件监控
      ignore_watch: ['node_modules', 'logs'], // 忽略监控的文件夹或文件
      watch_options: {
         
        followSymlinks: false,
        usePolling: true,
        interval: 1000,
        binaryInterval: 3000
      },
      restart_delay: 5000 // 重启前的延迟时间(毫秒)
    }]
    };
    
    在这个配置文件中:
  • autorestart: 启用或禁用自动重启功能。
  • watch: 启用文件监控,当文件变动时自动重启应用。
  • ignore_watch: 指定不希望被监控的文件夹或文件。
  • watch_options: 更详细的文件监控配置,例如使用轮询(usePolling)和监控间隔(interval)。
  • restart_delay: 设置重启前的延迟时间。

    3. 应用配置文件

    使用配置文件启动应用程序:
    pm2 start ecosystem.config.js
    
    这样,PM2 就会根据 ecosystem.config.js 文件中的配置来管理应用程序,包括自动重启策略。

    注意事项

  • 文件监控可能会消耗额外的系统资源,特别是在大型项目中。
  • 在生产环境中,频繁的重启可能会影响用户体验,因此建议谨慎使用文件监控和自动重启功能。
  • 如果使用版本控制系统(如 git),请确保监控列表中不包括 .git 目录,以避免不必要的重启。
    通过以上步骤,你可以为你的 Node.js 应用程序配置 PM2 的自动重启策略,以确保应用的持续可用性。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
项目管理
如何成为一名优秀的技术PM
如何成为一名优秀的技术PM
204 1
|
4月前
|
监控 测试技术 项目管理
一文聊聊我理解的技术PM
作为技术同学,不仅要写好自己的代码,做好功能交付,往往还需要担任复杂项目的技术PM,但有些同学缺少项目管理经验,不知道怎么才能做好技术PM,本文结合作者自身的一些经验,分享一些心得。
|
5月前
|
监控 测试技术 项目管理
我理解的技术PM
我理解的技术PM
|
7月前
|
敏捷开发 运维 项目管理
一个优秀的PM应该是什么样
【4月更文挑战第14天】一个优秀的PM应该是什么样
|
机器学习/深度学习 人工智能 边缘计算
PM3398B-6P-1–3P-E 80026–172–23
PM3398B-6P-1–3P-E 80026–172–23
74 0
PM3398B-6P-1–3P-E 80026–172–23
|
程序员 API
PIONEER MAGNETICS PM3398B-6P-1-3P-E 80026-172-23
PIONEER MAGNETICS PM3398B-6P-1-3P-E 80026-172-23
82 0
PIONEER MAGNETICS PM3398B-6P-1-3P-E 80026-172-23
|
JSON 负载均衡 监控
PM2 工具的认识与使用
PM2是node进程管理工具。简化node应用管理的繁琐任务,如性能监控,自动重启,负载均衡
222 0
|
监控 Ubuntu JavaScript
pm2
pm2
138 0
|
Ubuntu 小程序 JavaScript
运行pm2命令只出现[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
小程序上线过程中,pm2安装成功了,但是运行pm2命令只打印一句话
595 0