大津です。

ベンチマークではサーバに対し多数(0〜1000)接続 し、disconnectやconnect
を繰り返し
Nodeのメモリ使用量を監視していますが、
定期的に使用量がグッと下がる(恐らくGC)ことはありますが、長いスパンで見
ると全体として増え続けています。
※どこかのタイミングで接続数を0(ゼロ)にしてしばらく経過すると、メモリ使
用量はNode起動時の状態に戻りますが、実運用ではあり得ない状態だと思います。

この状態であれば、例えばメモリを2GB積んだサーバの場合、
2〜3日でメモリが枯渇してしまうのではないかと危惧しています。

ちょっと使用量が大きいですね。

ちなみにベンチマークするクライアントでは socket.io-client がちゃんと動作 していますでしょうか? (1000接続をどうシミュレートしたのか気になります。)

socket.io の heartbeat はサーバから送信する時に毎回 setTimeout() でタイ マーを登録するので heartbeat が返ってこないとタイムアウト時間(default 60 秒)までタイマーが登録されたままです。デバッグ出力に

   debug - got heartbeat packet
   debug - cleared heartbeat timeout for client XXXXXX

とか出力されていますか?

メールによる返信