2015-09-15 10 views
6

Ich möchte install a Ghost Blog on a shared server via GitHub. Während der Installation muss ich npm install, grunt init und grunt prod ausführen. Mein Host bietet 500 MB Speicherverbrauch, wenn ein Prozess mehr als 600 MB verwendet, tötet er es.Wie die CPU- und Speicherauslastung für Knotenprozesse zu begrenzen

Daher brauche ich eine Option, um die Speicherauslastung dieser Prozesse zu begrenzen, weil sie alle mehr als 500 MB Speicher benötigen!

Ich habe versucht, die Prozesse mit --max-old-space-size=450 auszuführen, aber es scheint nicht zu funktionieren.

Ich würde mich freuen, wenn mir jemand einen Link zu einem Tutorial oder einer Dokumentation über die Ausführung von Knotenprozessen mit Optionen liefern könnte.

Vielen Dank!

UPDATE: Seit ich das gepostet habe, hat sich die Installation von Ghost komplett geändert.

+0

Wenn Ihr Host-Betriebssystem Linux ist, können Sie cgroups verwenden, um die Speichernutzung von ANY-Prozessen zu begrenzen. – slebetman

+0

cgroups ist nicht blockiert, und ich darf es nicht installieren. Aber danke! – PDXIII

Antwort

1

Von Knoten v8 +, die Eingabe wie folgt vor:

node --help 

zeigen eine --v8-Optionen Option. Dann eingeben:

node --v8-options 

gibt:

... 
--max_old_space_size (max size of the old space (in Mbytes)) 
    type: int default: 0 
--initial_old_space_size (initial old space size (in Mbytes)) 
    type: int default: 0 
... 

ich es geschafft haben, die erste Option wie folgt zu verwenden:

node --max-old-space-size=250 `which npm` install 

Hier haben wir Knoten gesagt RAM-Auslastung zu 250Mo zu begrenzen, die ' hitch npm 'gibt den aktuellen npm-Pfad an und' install 'ist das Skript, das Sie ausführen möchten.

+0

Wahrscheinlich brauche ich nicht mehr, aber aus Neugier sagen wir, ich habe ein typisches npm-Projekt mit einem _package.json_ und ich möchte die CPU-Auslastung des '' 'begrenzen start '' 'script, ich kann zum App-Verzeichnis navigieren und' '' node eingeben --max-old-space-size = 250 npm start'''. – PDXIII

+0

@PDXIII Absolut! Ich habe derzeit eine automatisierte Deployment-Pipeline auf einem Projekte, die diesen Befehl ausführen, um zu vermeiden, dass die maximale RAM-Nutzungsmenge überschritten wird, die von einem begrenzten Docker-Container erlaubt wird –

+0

@Quetin Pétel, danke! Wir werden es versuchen! – PDXIII

1

So machen Sie es.

Sie senden einen Befehl zur Begrenzung der RAM-Auslastung.

npm install --max-old-space-size=400 
+0

Vielen Dank für Ihre Antwort. Aber wie ich in meinem ursprünglichen Beitrag beschrieben habe, habe ich das versucht und es schien nicht zu funktionieren. Aber irgendwie habe ich eine Arbeit gefunden. – PDXIII

+0

@PDXIII Hey. Wie hast du das Problem gelöst? Danke – tomexx

+0

@tomexx Ich habe es einfach nicht getan. Ich habe daran gearbeitet. Das Projekt, das ich auf dem Server aufbauen wollte, habe ich lokal erstellt. – PDXIII

Verwandte Themen