华为云Windows Server服务器下,Node使用pm2-logrotate分割pm2日志,解决pm2日志内存占用过高的问题。

一、简介

  1. PM2 是一个守护进程管理器,它将帮助您管理和保持您的应用程序在线。
  2. PM2 入门很简单,它以简单直观的 CLI 形式提供,可通过 NPM 安装。
  3. 官网地址:https://pm2.keymetrics.io/

二、问题:pm2日志内存占用过高,且无法自动清理相关日志文件。

三、解决办法:使用pm2-logrotate分割pm2日志,解决pm2日志内存占用过高的问题。

pm2-logrotate 是一个pm2的插件,可以对pm2日志进行管理,所以它的运行需要依靠pm2。使用pm2-logrotate 解决pm2日志体积过大,进行分割。

  1. 手动删除日志
    两种办法
    (1)使用pm2命令手动删除:pm2 flush
    (2)找到pm2/logs文件夹,将文件夹内txt日志文件删除
  2. 安装
    注:该命令是 pm2 install不是 npm install
powershell 复制代码
pm2 install pm2-logrotate
  1. 查看配置指令
powershell 复制代码
pm2 conf pm2-logrotate
  1. 配置项
powershell 复制代码
// 每个文件最大存储   注:10G  10M  10K
pm2 set pm2-logrotate:max_size 50k

// retain:保留的日志文件个数,比如设置为30,那么在日志文件达到30个后就会将最早的日志文件删除
pm2 set pm2-logrotate:retain 30

// 是否通过gzip压缩日志
pm2 set pm2-logrotate:compress false

// dateFormat 日志文件名的日期格式。如设置的日志名为out.log,就会生成out-YYYY-MM-DD_HH-mm-ss.log 的日志文件
pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss

// 检查日志大小的时间间隔,最小为1
pm2 set pm2-logrotate:workerInterval 30

// 设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割
pm2 set pm2-logrotate:rotateInterval 0 0 * * *
    
// rotateModule 是否把pm2本身的日志也进行分割    
pm2 set pm2-logrotate:rotateModule true
  1. 设置:自动删除pm2日志
powershell 复制代码
pm2 set pm2-logrotate:max_size 1M
pm2 set pm2-logrotate:retain 10

到此,就解决了pm2日志内存占用过高的问题。

本文原创,原创不易,如需转载,请联系作者授权。

相关推荐
风为你而吹33 分钟前
【玩泰山派】4、制作ubuntu镜像-(6)使用鲁班猫的sdk去制作镜像
linux·运维·ubuntu
running thunderbolt40 分钟前
项目---网络通信组件JsonRpc
linux·服务器·c语言·开发语言·网络·c++·性能优化
影子24011 小时前
Windows Server2016 服务器安装JDK,一直卡在“应用程序正在为首次使用作准备,请稍候” ,导致jdk安装失败解决方案
运维·服务器·windows·jdk
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第48题
运维·数据库·sql·oracle·database·开闭原则·ocp
_OP_CHEN1 小时前
Linux 系统编程:(一)从历史演进到 XShell 远程登录实操
linux·运维·服务器·centos·unix·xshell
为java加瓦2 小时前
Rust 的类型自动解引用:隐藏在人体工学设计中的魔法
java·服务器·rust
罗技1233 小时前
Docker 启动 Easysearch 时自定义初始密码的几种方式
运维·docker·容器
未来之窗软件服务3 小时前
操作系统应用开发(二十八)rust OIDC服务器—东方仙盟筑基期
服务器·rustdesk·仙盟创梦ide·东方仙盟
维尔切4 小时前
Nginx 反向代理与负载均衡
运维·nginx·负载均衡
知白守黑2674 小时前
反向代理和负载均衡
运维·负载均衡