Node.jsのメモリリークの対策について
こんにちは。
現在、私はNode.js×socket.ioを利用してリアルタイム通信用のサーバーを構築しています。
Node.jsもsocket.ioも今回が初めての初心者です。
Node.jsのプロセス管理にはpm2を利用しています。
Node.js v0.12.2
socket.io v0.9.17
pm2 v0.14.2
先日、完成したサーバーに対して負荷テストを実施したところ、
負荷をかけている最中はメモリ利用量がどんどん上昇していき、負荷をかけ終わったにも関わらずメモリ利用量が変わらないという状態になりました。
調べてみると、ソースコード上からGCを実行できることを発見したため試してみました。
global.gc();
きちんと上記のコードは実行されることを確認出来ましたが、対してメモリ利用量は変わりませんでした。
起動時 40MB程度
負荷テスト終わった後 80MB程度
GCが走った後 75MB程度
本当はソースコードを示せればいいのですが、事情で示すことが出来ません。
これは、ソースコードが悪いのでしょうか(GCで回収されないものがある)、それともこんなものなのでしょうか。
情報があまりないのですが、心当たり程度でもありがたいのでご教授いただけると助かります。
よろしくお願い致します。