2017-03-22 167 views
1

我正在使用pm2和節點js。我想要做的是爲應用程序設置最大內存限制。我的開發者服務器的限制是在兩個應用程序之間分割500MB。理想情況下,我想限制到200mb。我需要這個限制是對應用程序的一個硬性限制,並且如果它超過了它,就像pm2命令「max_memory_restart」那樣不重新啓動應用程序。我也嘗試使用--max_old_space_size命令,但沒有運氣。有沒有辦法做到這一點?節點JS pm2最大內存限制

例PM2 JSON文件

{ 
    "apps": [ 
    { 
    "name": "Sample", 
    "script": "runit.js", 
    "watch": false, 
    "cwd": "xxxxxx", 
    "env": { 
     "NODE_TLS_REJECT_UNAUTHORIZED": '0', 
     "NODE_ENV": "local_public", 
     "PORT": 3000, 
     "PROXY_PORT": 4000, 
    }, 
    "args": [ 
     "--max_old_space_size=200" 
    ] 
    } 
] 

}

+0

如果你只是用'node_args'替換'args',你的代碼就可以工作。 – Xaqron

回答

2

我用PM2直接運行的Node.js腳本和此代碼的工作對我來說:

pm2 start file.js --max-memory-restart 100M 

希望最大 - 內存 - 重啓參數適用於你

+2

我討厭它當人們投票,並不告訴人爲什麼... – Pytth

+0

無論如何不重新啓動,當它達到最大記憶雖然...只是保持在一定的水平? – MasterN8

+0

@ MasterN8至少我不知道這樣做。停止並重新啓動時,您將無法訪問服務器。降低重新啓動頻率的一種方法是改進代碼以減少內存泄漏,並設置合理的內存限制。 – zhangjinzhou