2017-03-22 4 views
1

Ich benutze pm2 und Knoten js. Was ich tun möchte, ist eine maximale Speichergrenze für eine Anwendung festzulegen. Die Grenze meines Dev-Servers ist 500mb aufgeteilt zwischen zwei Anwendungen. Im Idealfall möchte ich es auf 200mb beschränken. Ich brauche diese Grenze, um eine harte Grenze für die Anwendung zu sein, und dafür, die Anwendung nicht neu zu starten, wenn sie es überschreitet, wie der PM2-Befehl "max_memory_restart" tut. Ich habe auch versucht, den Befehl --max_old_space_size ohne Glück zu verwenden. Gibt es eine Möglichkeit, dies zu tun?Knoten JS pm2 maximale Speichergrenze

Beispiel PM2 JSON-Datei

{ 
    "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

Ihr Code wird funktionieren, wenn Sie nur 'args' durch' node_args' ersetzen. – Xaqron

Antwort

2

verwendete ich PM2 direkt node.js Skripte auszuführen und dieser Code funktioniert für mich:

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

Hoffe, dass die max-Memory- Neustart-Argument funktioniert für Sie

+2

Ich hasse es, wenn die Leute abstimmen und nicht der Person sagen, warum ... – Pytth

+0

Wie auch immer, dies ohne Neustart zu tun, wenn es den maximalen Speicher erreicht, aber ... einfach unter einem bestimmten Level halten? – MasterN8

+0

@ MasterN8 Wenigstens weiß ich das sowieso nicht. Sie können nicht auf den Server zugreifen, wenn er angehalten und neu gestartet wird. Eine Möglichkeit, die Häufigkeit des Neustarts zu reduzieren, besteht darin, den Code zu verbessern, um Speicherlecks zu reduzieren und das Speicherlimit angemessen festzulegen. – zhangjinzhou