PM2实践

一直听着PM2的大名,可是并非很了解这位大哥的具体用法,今天特地来一波测试,=。。。。node

如下,直接上代码---noderedis

/**
 * 首页路由
 * @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

启动四个实例服务。session

而后我用了三个浏览器开始访问/index
下面是结果截图:
图片描述app

显而易见的,PM2动态分配了CPU资源,在某个实例CPU满负荷的状况下自动调用下一个实例,这就是它的内建负载均衡。负载均衡

再看看OS的任务管理器测试

图片描述

个人8核,启动了四个实例,CPU稳定在50%左右,去掉其余服务占比,能够得知:一台机子能启动的最大实例个数为CPU核数。spa

另外,恕我直言,这很高端。。。。线程

若是session共享没有什么难度的话,不过想来走redis的session应该没有问题吧,有待测试。。。code

以上我的观点,欢迎拍砖。。。。。

相关文章
相关标签/搜索