环球动态:一文教你如何使用Node进程管理工具-pm2
pm2 是一个守护进程管理工具,它能帮你守护和管理你的应用程序。通常一般会在服务上线的时候使用 pm2 进行管理。pm2 能做的其实有很多,比如监听文件改动自动重启,统一管理多个进程,内置的负载均衡,日志系统等等,下面就让我们看下 pm2 是如何使用的吧
pm2 基本命令首先我们先创建一个简单的 node 服务,新建文件夹执行npm init
,然后装 pm2
npm i pm2 -g
新建 index.js 和 index2.js,写两个简单的 http 服务,然后用 pm2 进行管理
【资料图】
//index.jslet http = require("http");let server = http.createServer();server.on("request", function (req, res) { console.log("------------------enter"); res.write("hello juejin"); res.end();});server.listen(3000, function () { console.log(`服务器启动成功,通过http://localhost:3000/进行访问`);});
//index2.jslet http = require("http");let server = http.createServer();server.on("request", function (req, res) { console.log("------------------enter2"); res.write("hello juejin2"); res.end();});server.listen(3001, function () { console.log(`服务器启动成功,通过http://localhost:3001/进行访问`);});
接下来我们将使用 pm2 的第一个命令: pm2 start index.js
和pm2 start index2.js
分别启动这两个个程序
当然如果你想指定进程名字可以这样: pm2 start -n test index.js
,如果你想监听文件改动可以加--watch
等等
访问http://localhost:3000/
执行pm2 log
可以看到我们打印的日志
pm2 的命令还有很多,下面列举几个
停止 1 个/多个/所有程序pm2 stop id/id1 id2 id3/all
杀死 1 个/多个/所有程序 pm2 delete id/id1 id2 id3/all
重启 1 个/多个/所有程序 pm2 restart id/id1 id2 id3/all
启动并查看日志 pm2 start api.js --attach
列出应用程序 pm2 list
查看监控面板 pm2 monit
查看程序数据 pm2 show [id]
负载均衡我们都知道 NodeJS 是一个异步单线程语言,倘若不做任何处理直接部署到服务器上,那么它也只能使用服务器的一个线程,这样是非常浪费性能的。
使用 pm2 只需一个命令就能让我们的程序充分利用服务器的 CPU,拿 index.js 为例:pm2 start index -i max
,比如我的电脑是 10 核 20 线程,它就会开 20 个线程
当然如果你想指定多少线程可以直接将 max 改成你想开的线程数 pm2 start index -i 3
上面的例子我们都是使用命令行进行管理的,这样其实挺不方便的,好在 pm2 提供了配置文件的形式。
我们直接使用命令pm2 init simple
即可生成一个简单的配置文件ecosystem.config.js
,修改一下让它指向我们的两个服务
module.exports = { apps: [ { name: "index", script: "./index.js", }, { name: "index2", script: "./index2.js", }, ],};
然后我们将原先的进程都 kill 掉,执行pm2 start ecosystem.config.js
,同样的我们的两个服务都被启动了
下面列举一些配置项ecosystem.config.js
module.exports = { apps: [ { name: "index", //name script: "./index.js", //相对于pm2 start 的相对路径 cwd: "", //要启动的应用程序的目录 instances: 2, //要启动实例的数量,就是上面提到的负载 watch: true, //是否启动监听 env: { NODE_ENV: "development" }, //将出现在您的应用程序中的 env 变量 env_xxx: { NODE_ENV: "xxx", //使用pm2注入xxx变量进行切换 }, log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式 error_file: "./log/index-error.log", //错误文件路径 out_file: "./log/index-out.log", //输出日志文件路径 max_restarts: 10, //最大重启数 restart_delay: 4000, //重启延迟时间ms autorestart: true, //是否自动重启 cron_restart: "", //定时重启 使用cron表达式 }, { name: "index2", script: "./index2.js", }, ],};
日志日志对于后端排查错误是非常重要的,pm2 自带日志功能,比如我们在上面配置文件中配置了日志相关的参数
log_date_format: "YYYY-MM-DD HH:mm Z", //日志时间格式error_file: "./log/index-error.log", //错误文件路径out_file: "./log/index-out.log", //输出日志文件路径
当我们启动项目的时候,日志就会记录在 log 下
pm2 自带的日志功能是不支持日志分割的。随着时间的推移,日志文件会越来越大,不仅会影响性能,后期排查问题也十分麻烦,因此我们需要对日志进行分割。日志分割操作很简单,只需要安装pm2-logrotate
插件即可,注意这里是 pm2 install
pm2 install pm2-logrotate
然后执行 pm2 conf 可以看到相关配置
解释一下相关含义
Compress:是否通过 gzip 压缩日志
max_size:单个日志文件的大小
retain:保留的日志文件个数
dateFormat:日志文件名中的日期格式,默认是 YYYY-MM-DD_HH-mm-ss
rotateModule:是否把 pm2 本身的日志也进行分割,
workerInterval:检查文件时间间隔
rotateInterval:设置强制分割,默认值是 0 0 * * *,意思是每天晚上 0 点分割,这里使用的是 corn 表达式,不会的可以搜索一下
如果我们想要配置也很简单,比如修改 max_size
pm2 set pm2-logrotate:max_size 1K
然后我们简单测试一下这个工具,我们先设置每个 log 文件最大 1kb
然后重启我们的项目
pm2 restart ecosystem.config.js
然后就会发现我们的日志被分割了
总结pm2对于node服务的管理是十分方便的,文中提到的只是其中一部分,如果你想使用pm2管理你的服务的话可以到官网pm2.io/ 进行学习
关注公众号web前端进阶每日更新最新前端技术文章,你想要的都有!
标签:
推荐
- 环球动态:一文教你如何使用Node进程管理工具-pm2
- 全球通讯!中银晨会聚焦
- 家电套餐(家电套餐)
- 今日讯!2023山东东营市第一批次高中、中职类教师资格证书配送公告
- 韩媒:执政党人士称想给尹锡悦包里放支镇定剂,让他冷静冷静 世界速看料
- 台媒:彰化一食品厂突发大火,9人被救出时无生命迹象|快播报
- 天天快报!联合国人权专家走访调查美国种族歧视问题
- 全球快播:北京市发布沙尘蓝色预警
- 天天快看:三峡五年累计收集驯养珍稀特有鱼类110多种 生态效益成效显著
- 全球新消息丨正是一年好春光 植绿护绿正当时
- 天天新动态:美联储5月加息25个基点的概率为98.9%
- 讯息:中国大使馆协助中国公民撤离苏丹、入境埃及
- 今日快讯:CBA四强出炉 老牌强队陷危机
- 大基建板块震荡下挫|当前热门
- 当前消息!恒指开盘跌0.28%,恒生科技指数跌0.56%
- 雷柏科技:4月24日获融资买入1358.48万元,占当日流入资金比例13%
- 当前速看:加速研发、追赶国际 本土流脑疫苗填补空白
- 北京市公共建筑将设五级能效等级 视焦点讯
- 真人版《小美人鱼》5月25日登陆中国内地院线, 爱丽儿携人鱼家族亮相
- 迈为股份公布分配预案:拟10转增6派15元(含税)
- 天天热文:杭州亚运会代表团团长大会今天在杭州开幕
- 法国将提高基本诊费 措施批准后将在6个月后生效
- 精选!俄国防部:乌方袭击危及黑海粮食外运协议再次延期
- 一整个优秀!原来你是这样的“95后”航天人 消息
- 聚焦“美丽产业” 洛阳计划用3~5年培育达百亿元美妆产业
- 全面提升技术技能人才培养水平
- 全球观焦点:广发期货早知道:在去美元化的趋势下未来贵金属持仓有望继续增长,原油短期区间波段操作为主
- 生如夏花之绚烂死如秋叶之静美_生如夏花之绚烂死如秋叶之静美是什么意思
- 本周晴雨相间 气温逐渐回暖_全球新视野
- 佳木斯大学的临床医学如何是几本怎么样 世界热点
- 当前焦点!域外漫笔/茨威格的足迹\林中洋
- 快报:保险购买今后多久收效 收效当天出险可以理赔吗,具体原因详细内容介绍
- 大风降温!明日新一股冷空气将抵厦-环球新动态
- 韩日市民街头喊话日本政府:为了人类共同未来 必须取消核污水排海-当前快看
- 就业形势逐步恢复、总体稳定
- 美国迪士尼公司开始新一轮裁员计划
- 泡沫经济是什么意思通俗(泡沫经济是什么意思)|环球速读
- 天天观速讯丨恭喜国足!曝36岁队长接近日本J联赛,外援夸赞中超:犹如踢欧冠
- 辉煌“中轴故事”
- 溢价近400倍拍下锂矿后弃购,官方出手了-世界微资讯
- 环球观热点:单个产品线在亚马逊上卖了80亿!怎么做到的?
- 美总统拜登批准俄克拉荷马州重大灾难声明
- 每日热文:美国北达科他州州长签署法案 禁止女性怀孕六周后堕胎
- 消费呈现恢复向好态势(经济新方位·首季数据观察)-微头条
- 博睿数据(688229)4月24日主力资金净卖出498.86万元_天天快讯
- 中国驻法国使馆发言人谈话
- 中联重科(01157.HK):4月24日南向资金减持4.04万股
- 【热闻】一场峰会直播报价是怎样的?有因直播带你全面了解
- 酸味十足!美抹黑中国沙特新未来城合作,沙媒:中国对该计划弥足珍贵 天天关注
- 天天速读:巴黎奥运会开幕式面纱逐渐揭开,典礼主持人:保证高处人们能免费看到
- 瑞典智库:去年全球军费开支创新高,欧洲军费增长最明显|全球观天下
- 日本国会议员补选,自民党4胜1败,最大在野党未能获得席位 全球关注
- 全球消息!匈牙利外长:欧盟国家向乌克兰提供武器将延长冲突
- 看点:存金通
- 火星全球彩色影像图发布 为探测和研究提供质量更好的基础底图
- 剧种荟萃名家云集!探班全国戏曲(北方片)会演暨梆子声腔优秀剧目展演开幕式台前幕后
- 观察:风吹草低见牛羊的见是什么意思 低的意思_风吹草低见牛羊中的见是什么意思
- 全球及中国家居市场数据分析: 70.3%消费者表示偏好简约现代风格-焦点观察
- 春耕备播忙,夏粮丰收基础实(中国经济,开局跑出新气象)
- 会展业“动起来”,彰显香港经济活力 环球视点
- 合创A06,快充0.6小时,纯电续航630KM,售价19.98万
- 全球热消息:2022辽宁盘锦高新技术产业开发区招聘拟聘事业编制工作人员公示
- 那读音_那的读音是什么-每日速读
- 精索静脉曲张怎么自检_精索静脉曲张图片-世界热消息
- 头条焦点:暖妻入侵_对于暖妻入侵简单介绍
- 中信国际电讯(01883.HK):4月24日南向资金增持7.3万股-全球快看点
- 微资讯!国家税务总局:今年一季度累计免征新能源车辆购置税212亿元
- 轮渡与渡轮的区别_轮渡和渡轮的区别是什么 世界今热点
- 勾芡是什么_勾芡 今亮点
- 数据分析揭示美国枪支暴力地区性差异原因 焦点讯息
- 最新:磁悬浮列车的速度是450千米/时_磁悬浮列车的速度
- 当前热文:立体字怎么画_ps画立体字教程
- 沈铁将在“五一”假期开行民俗体验高铁
- 甘肃金川区“网格信息直通车”连着群众心-世界资讯
- 爱尔兰的劳动力是全球最具生产力的国家之一
- 观天下!中重科技拟出资2亿元设立上海融诚融资租赁有限公司
- 环球信息:魔芋站上风口 上市公司争相布局
- 焦点快看:安仁:构建调解新格局,化解基层“麻纱事”
- 环球焦点!茂莱光学(688502.SH):一季度净利润1397.2万元 同比增长0.70%
- 王者荣耀帅气头像大全(帅气头像分享)|环球聚焦
- 湘阴县鹤龙湖镇:“群英断是非”构建基层治理新蓝图 每日报道
- 一个支付宝能绑定几个淘宝账户 一个支付宝可以绑定几个淘宝账户-天天日报
- 全球关注:美团2023五一假期消费趋势洞察:味蕾游、沉浸式、住玩一体引领新风潮
- 金价跌了!4月以来,首次跌破这一关键关口|观察
- 这幅“壁画”讲述了古北这个涉外小区18年的绿色生态故事
- 当前消息!长春市图书馆举办口述无障碍电影专场活动
- 《生化4RE》联名信用卡今日申请开始 第一年免年费 天天时快讯
- 持续7天!安顺这条路将实行交通管制!
- 世界消息!版面速览|4月24日贵州日报《生态》新闻版
- “避堵”攻略来了!广东交警:五一假期将出现三波道路出行高峰
- 城市癌症早诊早治 这些人群可申请免费筛查!
- 小心反弹后跌更重!大摩知名空头:美联储与“财报杀”将夹击美股
- 要闻速递:山灵MG800耳机即将发售:碳纳米管+DLC复合振膜、双磁路动圈单元
- 人社部:将加强新就业形态就业人员劳动权益保障
- 全球快消息!聚产业聚人才、促疏解促发展!一起了解这两个服务团
- 灯火千万家 中国网络媒体论坛走进南京仙林街道 世界新动态
- 视频|走进宜万铁路 感受别样之美
- 世界热讯:澳门举办“中国航天日”专题活动
- 中国开展屋顶上的“绿色战役”应对气候变化_全球新要闻
- 3月份入境澳门旅客逾195万人次 当前动态
X 关闭
政策法规
X 关闭