一直听着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
以上我的观点,欢迎拍砖。。。。。