2016-04-03 5 views
1

Warum geklont mein node.js Server-Prozess? Und ich habe keine Anfragen gestellt, seit ich es aufgestellt habe. Ich benutze für immer Knotenmodul. Könnte es verwandt sein?Warum wird mein node.js-Serverprozess geklont?

enter image description here

+0

Hat weiterhin das je länger tun es läuft? oder ist es bei einer gewissen Anzahl von Fäden/„Klonen“ zu stoppen? – user2267175

Antwort

1

Was Sie sehen, sind die Fäden in demselben Knoten Prozess. v8 (für Funktionen zu optimieren, sammelt Müll, etc.) und libuv/Knoten (zum Ausführen von Dateisystemoperationen auf den meisten Plattformen, DNS-Lookups, zlib, etc.) verwenden, um zusätzliche Themen, so dass diejenigen, sind das, was Sie sehen.

Zum Zeitpunkt dieses Schreibens verwendet v8 höchstens 4 Threads (obwohl an option to configure this previously hardcoded value in Knoten v5.10.0 + verfügbar ist). Auch libuv standardmäßig erstellt einen Thread-Pool von 4 Threads, aber diese Zahl kann durch Einstellen des UV_THREADPOOL_SIZE Umgebungsvariable geändert werden. Bei der Anpassung dieser Werte ist Vorsicht geboten, da dies die Leistung negativ beeinflussen könnte, wenn sie zu niedrig oder zu hoch eingestellt wird.

FWIW im Setup-Menü des htop können Sie es konfigurieren (unter Display-Einstellungen) auf beide zeigen Prozess Bäume und Threads eine andere Farbe. Diese Änderungen machen es einfacher, den Unterschied zwischen Threads und Prozessen zu sehen.

+0

Was bedeutet das? Warum brauche ich mehr Threads? Wenn ich den Server starte, habe ich nur 2 Threads, aber sie werden im Laufe der Zeit geklont und die Speichernutzung steigt. Ich möchte nicht, dass die Speichernutzung so zunimmt. – David

+0

Ich habe meine Antwort aktualisiert, um mehr Details zu enthalten. Es gibt keine erhöhte Speichernutzung, da es sich * nicht um separate Prozesse * handelt. Die einzige Möglichkeit, die Speicherauslastung für * Threads * selbst zu reduzieren, wäre, die Größe des Betriebssystemstapels und andere Ressourcenbeschränkungen zu reduzieren. – mscdex