文档章节

Node pm2

China_OS
 China_OS
发布于 2017/09/08 11:10
字数 651
阅读 40
收藏 0
点赞 0
评论 0

背景

        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


 

© 著作权归作者所有

共有 人打赏支持
China_OS
粉丝 403
博文 438
码字总数 487778
作品 0
徐汇
技术主管
TODO:Node.js pm2使用方法

TODO:Node.js pm2使用方法 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的。 1.使...

OneTODO
2016/11/07
31
0
Zabbix添加Node.js监控

目前网上已有 工具可以实现 Zabbix 对 Node.js 的监控报警,Github地址。 特征: 自动发现通过 PM2 管理的 Node.js 进程。 报告 Nodes.js 进程状态、CPU 使用率、内存占用以及进程是否重启。...

董松
2016/10/12
1K
12
yog-pm

yog-pm是在pm2的基础上提供了几个增强命令,提高pm2的易用性和稳定性。 安装 $ npm install -g yog-pm 使用 startOrReload : 启动pm2服务 服务没有启动时start服务,服务已经启动则会reloa...

叶秀兰
2014/07/28
424
0
搭建Highcharts曲线图导出工具

Highcharts是非常不错的页面曲线图工具,官网在https://www.highcharts.com/download/ 问题就是如果工作环境是个封闭的内网,曲线图就无法正常导出,就需要搭建本地导出服务器。 搭建方法如下...

chaodaibing
2017/12/02
0
0
linux下安装pm2,pm2: command not found

对于一个linux新手来说,真的是一大坑,看了网上好多例子,但没有一个能说明白的,我发现没有哪个程序狗能把一个问题说的像我一样完美。不服来打死我,我不还手的。 1:安装pm2 操作描述: ...

3岁的小黄瓜
04/20
0
0
通过Github与PM2部署Node应用

作者:郭一实 链接:https://zhuanlan.zhihu.com/p/20940096 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 背景 前一段时间,是通过百度云的BAE部署自...

anziguoer
2016/10/20
40
0
使用PM2运行node.js服务

欢迎关注http://quanke.name/ 转载请注明出处,谢谢 GitHub 地址: https://github.com/Unitech/pm2 官网: http://pm2.keymetrics.io/ 为什么需要使用PM2 因为node.js 是单进程,进程被杀死...

quanke
2017/11/06
0
0
PM2 介绍 启动Nodejs 框架Express项目

文章主要来自豆瓣上一位同学的文章:PM2 介绍,中间可能有部分修改! 介绍 PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。 当你要把你的独立代码利用全部的服务器上的所有 CPU,并保...

투판시
2017/10/26
0
0
阿里云linux从0部署node+nginx+mongo (2)安装node及npm

本系列为新手从成功购买阿里服务后,到网站完全部署运行提供一整套解决方案。 本文主要介绍如何安装node及npm 1、一般来讲我们把安装包放在local目录下,首先进入local目录 2、下载node安装包...

塔塔七
05/24
0
0
使用pm2 管理你的node项目

主要特性: 内建负载均衡(使用Node cluster 集群模块) 后台运行 0秒停机重载,我理解大概意思是维护升级的时候不需要停机. 具有Ubuntu和CentOS 的启动脚本 停止不稳定的进程(避免无限循环...

造化玉碟
2015/07/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
21分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
28分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
32分钟前
0
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
35分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
38分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
51分钟前
13
0
ARTS说明

湾曲日报,作者每天阅读5篇优质英文文章,从2014/08/06开始,到今天也1216期了. 阮一峰的每周分享,从2018/04/20开始,每周5分享一周作者认为值得分享的东西,现在最新是14期. 关于ARTS Algorithm ...

yysue
53分钟前
0
0
python爬虫日志(6)小小实践

经过3天的学习,现在对简单的网页基本可以爬取想爬取的信息了,但还无法应对网站一些复杂的反爬虫措施。 今天利用目前为止所学的知识,试着爬取了煎蛋网几页图片并下载到本地。 #首先还是先导...

茫羽行
今天
0
0
js中用oop思想封装轮播

用户可以自己设置:1、速度speed:fast,normal,slow 2、是否自动轮播:true,false 3、选择器(当然可以根据需求,增加,目前先封的这三个)仅供参考 觉得oop面向对象的思想比较有意思,前端...

琴妹
今天
0
0
使用fastjson将json格式的数据转化为对象

1. 导入fastjson的jar包 <!-- 9.fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> 2. 常用几种类型的......

Lucky_Me
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部