2014-03-19 9 views
6

Ich habe eine statische Express.js Server wie folgt aus:NodeJS/Express.js Speicherverlust

var express = require("express"), 
    app = express(); 

app.use(express.static(__dirname)); 

app.listen(1050); 

Wenn ich den Server zu starten verwendet es 20MB v8 Haufen. Wenn ich jede Sekunde eine Seite neu lade, wächst der verwendete Heap kontinuierlich. Nach 4 Stunden geht es auf 40MB v8 Heap um. Der gesamte v8-Heap wird auf 80 MB gesetzt und der RSS-Wert (der gesamte vom Prozess verwendete Speicher) wird auf 130 MB erhöht.

Warum verwendet dieser einfache und statische Server so viel RAM? Es scheint ein Speicherleck zu sein. Wenn ich das erneute Laden der Seite nicht stoppe, wächst der verwendete Speicher weiter.

Es ist unmöglich, größere Projekte zu machen, wenn ein einfacher statischer Server wie dieser zu viel Ram verwendet.

NodeJS Version: v0.10.21 Express.js Version: 3.3.5

EDIT: Ich habe bemerkt, dass es ein Problem mit NodeJS ist, weil ich versucht, Knoten statische statt Express, und während die verwendete/gesamte V8 Haufen konstant geblieben, der von nodejs verwendete RSS-Speicher wuchs weiter.

Screen:
https://www.dropbox.com/s/4j5qs3rv2549dix/Screenshot%202014-03-20%2014.06.57.png https://www.dropbox.com/s/0c30ou8l3rv2081/Screenshot%202014-03-20%2014.07.54.png https://www.dropbox.com/s/5be1isk4v70qj8g/Screenshot%202014-03-20%2014.08.10.png
(Startet um 13:48 Uhr)

+0

Ich sehe nichts ähnliches (neuere Versionen/Ubuntu). –

+0

Wie machen Sie Ihre Anfragen? Schließst du sie? –

+0

Was meinst du mit "Abfrage"? Dies ist eine statische Website, der Server sendet nur statische HTML-Dateien, wir haben keinen SQL-Server. Hinweis: Ich habe Debian. – angelocala94

Antwort

3

Nicht sicher, ob Sie noch in der Notwendigkeit einer Antwort, aber schlecht Beitrag für jemand anderen gibt, die die gleichen Probleme haben könnten .

ich das gleiche genaue Problem hatte und fixiert es durch die Verwendung:

--max-old-space-size 5 

Dies begrenzt, wie viel Speicher gehalten wird, bis er durch GC gelöscht wird.