sidekiq gem の使用 - IO.popen を使用してプロセス (大きなリポジトリの git-tf クローン) を実行し、stdout を追跡してクローンの進行状況を確認する sidekiq ワーカーがあります。
ワーカーを実行していると、カーネル OOM が発生してプロセスが強制終了されるまで、時間の経過とともに sidekiq メモリが大きくなっていることがわかります。サブプロセス (Java プロセス) は総メモリの 5% しか使用していません。
コード内のメモリリークをデバッグ/チェックするにはどうすればよいですか? sidekiqメモリは、popenプロセスを使用したワーカーメモリの合計ですか?
そして、誰もそれを修正する方法を知っていますか?
編集
これは私のワーカーのコードです -
https://gist.github.com/yosy/5227250
EDIT 2
sidekiqなしでコードを実行しましたが、メモリリークはありません..これは、sidekiqとtfsの大きなリポジトリでは奇妙なことです