devo.ps团队对JavaScript的留恋曾经不是甚么机密了;node.js作为Server端,AngularJS作为客户端,某种水平上说,我们的仓库是用它建成的.我们构建静态客户端和RESTful JSON API的办法意味着我们跑了非常多的node.js,我必需供认虽然node.js的一切都使人畏敬,但当我们在生产情况中运转它时它依然会让我们觉得头疼.比拟一些愈加成熟的言语,它的Tools和最好理论依然缺少(试想一下:监控,日记,错误处置).
到今朝为止,我们依然依靠美丽俏皮的node-forever模块.它长短常巨大的模块,不外仍然缺失一些功用:
这就是为何我们要在过来的几个月里去写PM2模块.在我们行将宣布针对生产情况的正式版之前我们想先让您看一眼.
起首第一件事,你需求先经过 npm 来安装它:
npm install -g pm2
让我们经过表格来比照下:
Feature | Forever | PM2 |
---|---|---|
Keep Alive | ? | ? |
Coffeescript | ? | |
Log aggregation | |
? |
API | |
? |
Terminal monitoring | |
? |
Clustering | |
? |
JSON configuration | |
? |
如今让我来引见一点点首要特征...
Node v0.6引入了集群特征,答应你在多个Node使用中同享socket.问题在于,它不克不及在容器外运转并且需求一些额定的设置装备摆设来处置主过程和子过程.
PM2原生支撑处置这个问题,并且不需求额定的代码:PM2自身作为主过程,然后它将你的代码封装到一个特别的集群过程里,就像node.js一样,为你的代码文件添加一些全局变量.
想要启动一个运用一切CPU中心的集群,你只需求键入以下的指令:
$ pm2 start app.js -i max
然后;
$ pm2 list
然后就会显示相似下面的工具(ASCII UI FTW);
就像你看到的,如今你的使用有几多个过程就取决于你的CPU中心数了.
经过pm2 list号令来察看一切运转的过程和它们的形态曾经足够好了.可是怎样来追踪它们的资本耗费呢?别担忧,用这个号令:
$ pm2 monit
你可以失掉过程(和集群)的CPU的运用率和内存占用.
声明: node-usage 到今朝为止还不支撑MacOS(随意甚么功能请求),不外它在Linux下运转杰出.
如今,让我们来核实一下我们的集群,另有对内存仓库的渣滓收受接管,我们假定你曾经有一个HTTP基准测试Tools(假如没有,你必定要运用 WRK):
$ express bufallo // Create an express app $ cd bufallo $ npm install $ pm2 start app.js -i max $ wrk -c 100 -d 100 http://localhost:3000/
在另外一个终端,运转监控选项:
$ pm2 monit
耶~
如今你不能不管理多个集群过程:一个爬取数据,一个处置数据,等等...这就意味着大量log,你可以依照老式的办法处置:
$ tail -f /path/to/log1 /path/to/log2 ...
但我们想的很周密,我们增加了logs功用:
$ pm2 logs
如今工作一切顺遂,你的过程嗡嗡的运转着,你需求做一次硬重启(hard restart).如今吗?是的,起首,dump掉:
$ pm2 dump
然后,你可以从文件中恢复它:
$ pm2 kill // 让我们假定一个PM2停掉了
$ pm2 resurect // 我一切的过程又满血满形态复生了
比如说,你想要监控一切被PM2管理的过程,并且同时还想监控运转这些过程的机械的形态(乃至盼望创立一个Angular使用来挪用这些API...):
$ pm2 web
翻开阅读器输出 http://localhost:9615 ,我嘞个去!!
起首,你可以去Github上粉我们(我们爱好stars): https://github.com/Unitech/pm2.
我们开发的PM2供给了进步前辈完好的Node过程管理处理计划.我们盼望能有更多的人来协助我们:更多的pull requests.一些还逗留在开发道路图上面的功用我们会尽快完成,下面这些就是:
特殊感激 Makara Wang 的观念和Tools,另有 Alex Kocharin 提的建议和提交的代码.
本文中的一切译文仅用于进修和交换目标,转载请务必注明文章译者、出处、和本文链接。 2KB翻译任务按照 CC 协议,假如我们的任务有进犯到您的权益,请实时联络我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务