Warum verbraucht meine Node.js-App nach einigen Tagen so viel Speicher?

Ich habe ein Node.js-Backend auf einem DigitalOcean-Droplet, das Webhook-Verarbeitung handhabt. Nach ein paar Tagen Laufzeit steigt die Speichernutzung auf etwa 80-90%, und ich muss es neu starten. Es gibt keinen offensichtlichen Memory Leak in meinem Code, den ich sehen könnte. Sollte ich mir die Event Loop ansehen oder ist das etwas mit der Garbage Collection in Node?

1 Antworten

Überprüfe deine Webhook-Handler zuerst - nicht beendete Verbindungen, angesammelte Objekte in Closures oder Buffer, die nicht freigegeben werden, sind die üblichen Verdächtigen, viel häufiger als Garbage-Collection-Probleme. Nutze etwas wie clinic.js oder die eingebauten Heap-Snapshots, um zu sehen, was tatsächlich im Speicher hängenbleibt, anstatt zu raten. Die Event Loop selbst verursacht selten Speicherlecks; es sind fast immer Objekte, die nie aufgeräumt werden. Falls in deinem Code nichts Offensichtliches auftaucht, schau dir deine Dependencies an - manchmal cached eine Library aggressiv oder hat einen Bug, der in einer neueren Version behoben wurde.

Deine Antwort

Anmeldenzum Beantworten.