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

以上我的觀點,歡迎拍磚。。。。。

相關文章
相關標籤/搜索