7

私のサーバー監視によると、私のメモリ使用量は時間の経過とともに忍び寄っています:

ここに画像の説明を入力

約 4 週間のアップタイムの後、問題やクラッシュが発生します (私が m1.large インスタンス => 8GB RAM で EC2 を使用していて、RAM が約 1.5 GB/週で増加しているように見えることを考えると、これは理にかなっています)。

node.js アプリを再起動すると、メモリ使用量がリセットされます。それでも...私はを介してメモリ使用量を追跡してprocess.memoryUsage()おり、〜1週間後でも見ています

{"rss":"693 Mb","heapTotal":"120 Mb","heapUsed":"79 Mb"}

私は何が欠けていますか?明らかにリークはノードにありますが、プロセスはそれを認識していないようです...

4

1 に答える 1

1

ノードでのリーク検出とヒープ差分に役立つnode-memwatchモジュールを試すことができます。

ヒープ差分は次のようになります。

{
  "before": { "nodes": 11625, "size_bytes": 1869904, "size": "1.78 mb" },
  "after":  { "nodes": 21435, "size_bytes": 2119136, "size": "2.02 mb" },
  "change": { "size_bytes": 249232, "size": "243.39 kb", "freed_nodes": 197,
    "allocated_nodes": 10007,
    "details": [
      { "what": "String",
        "size_bytes": -2120,  "size": "-2.07 kb",  "+": 3,    "-": 62
      },
      { "what": "Array",
        "size_bytes": 66687,  "size": "65.13 kb",  "+": 4,    "-": 78
      },
      { "what": "LeakingClass",
        "size_bytes": 239952, "size": "234.33 kb", "+": 9998, "-": 0
      }
    ]
  }
于 2013-05-31T12:04:47.277 に答える