一直聽着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
以上我的觀點,歡迎拍磚。。。。。