Wie kann ich die Speichernutzung von Node.js überwachen?
javascript
node.js
memory
fsiaonma
quelle
quelle
Antworten:
Node-Memwatch : Erkennen und Auffinden von Speicherlecks im Node.JS-Code. Überprüfen Sie dieses Tutorial, um Speicherlecks in Node.js aufzuspüren
quelle
Das integrierte Prozessmodul verfügt über eine Methode
memoryUsage
, die Einblick in die Speichernutzung des aktuellen Node.js-Prozesses bietet. Hier ist ein Beispiel aus Node v0.12.2 auf einem 64-Bit-System:In diesem einfachen Beispiel sehen Sie, dass das Zuweisen eines Arrays von 10 Millionen Elementen ungefähr 80 MB kostet (siehe
heapUsed
).Wenn Sie bei V8 Quellcode aussehen (
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), dann sehen Sie, dass die von einem Array verwendeten Speicher ist ein fester Wert plus der von der Größe eines Zeigers multipliziert Länge. Letzteres beträgt 8 Bytes auf einem 64-Bit-System, was bestätigt, dass eine beobachtete Speicherdifferenz von 8 x 10 = 80 MB sinnvoll ist.quelle
--expose-gc
für diegc
Funktion nicht benötigt ?--expose-gc
für brauchenprocess.memoryUsage()
.gc()
(erforderlich--expose-gc
) wurde in der Antwort verwendet, um die Speicherbereinigung deterministisch auszulösen, damit dieprocess.memoryUsage
Berichte leichter angezeigt werden können.Wenn Sie den globalen Speicher und nicht den Knotenprozess kennen möchten:
Siehe Dokumentation
quelle
Die ursprüngliche Memwatch ist im Wesentlichen tot. Versuchen Sie stattdessen memwatch-next , das auf modernen Node-Versionen gut zu funktionieren scheint.
quelle
Verwenden Sie unter Linux / Unix (Hinweis: Mac OS ist ein Unix)
top
und drücken Sie M ( Shift+ M), um Prozesse nach Speichernutzung zu sortieren.Verwenden Sie unter Windows den Task-Manager.
quelle
Applications > Utilities
und Sie finden eineActivity Monitor
App. Dieser entspricht dem Task-Manager. OS X hat auch dentop
Befehl.htop
anstelle von Top unter Linux. Es ist viel besser.