一直听着PM2的大名,但是并不是很了解这位大哥的具体用法,今天特意来一波测试,=。。。。
以下,直接上代码---node
/**
* 首页路由
* @param app Express.App
* @return {[type]} [description]
*/
function _indexRoutes (app) {
app.get('/index', function(req, res) {
var j = 0;
while (true) {
j++;
}
res.send(j + '');
console.log(123)
});
}
module.exports = _indexRoutes;
如上所见,我来了一发死循环已保证该核CPU(node单线程,占一核CPU)满负荷运行,哇咔咔。。
接下来,用大PM2启动我的node服务
PM2 start -i app.js 4
启动四个实例服务。
然后我用了三个浏览器开始访问/index
下面是结果截图:
显而易见的,PM2动态分配了CPU资源,在某个实例CPU满负荷的情况下自动调用下一个实例,这就是它的内建负载均衡。
再看看OS的任务管理器
我的8核,启动了四个实例,CPU稳定在50%左右,去掉其他服务占比,可以得知:一台机子能启动的最大实例个数为CPU核数。
另外,恕我直言,这很高端。。。。
如果session共享没有什么难度的话,不过想来走redis的session应该没有问题吧,有待测试。。。
以上个人观点,欢迎拍砖。。。。。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。