2013-03-20 30 views
10


sidekiq gemを使用しています - IO.popenを使用してプロセス(git-tf大きなリポジトリのクローン)を実行し、stdoutを追跡してクローンの進行状況を確認するsidekiqワーカーがいます。
Sidekiqワーカーがメモリをリークしています

私はワーカーを実行しているときに、カーネルのOOMを取得してプロセスが強制終了されるまで、sidekiqのメモリが大きくなっているのが分かります。サブプロセス(Javaプロセス)は合計メモリのわずか5%を占めています。

私は自分のコードにあるメモリリークをデバッグ/チェックできますか? sidekiqのメモリは私の労働者のメモリとpopenのプロセスの合計ですか?
それを修正する方法はありますか? https://gist.github.com/yosy/5227250

EDIT 2
これが持つ不思議なものです..私はsidekiqせずにコードを実行した、と私は何のメモリリークを持っていない -

EDIT
は、これは私の労働者のコードですsidekiqとtfsの大きなリポジトリ

答えて

0

私はsidekiqでメモリリークの原因を見つけられませんでしたが、私はsidekiqから道を得ることができました。

redisキューからコマンドを受け付けるサーバーコマンドをgit-tfに変更しました。これは、コードから複雑さを取り除いています。

のgit-TFの修正版はこちら: https://github.com/yosy/gittf

私はいくつかのバグを修正しますとき、私はサーバのコマンドについては、後でドキュメントを追加します。

関連する問題