2013-03-20 38 views
10


使用sidekiq gem - 我有使用IO.popen运行进程(git-tf大型存储库的克隆)的sidekiq worker并跟踪stdout来检查克隆的进度。
Sidekiq工人正在泄漏内存

当我运行worker时,我发现sidekiq内存越来越大,直到我得到内核OOM并且进程被终止。子进程(java进程)仅占内存总量的5%。

如何调试/检查内存泄漏我在我的代码中?并且sidekiq内存是我的员工内存与popen进程的总和吗?
并没有任何人有任何想法如何解决它?

编辑
这是我的工作人员的代码 - https://gist.github.com/yosy/5227250

EDIT 2
我跑不sidekiq的代码,我没有内存泄漏..这是一件奇怪的与tk中的sidekiq和大版本库

回答

0

我没有在sidekiq中找到内存泄漏的原因,但是我找到了一个离开sidekiq的方法。

我修改了git-tf以使服务器命令接受来自redis队列的命令,它从我的代码中移除了很多复杂性。

的git-TF的修改后的版本是在这里: https://github.com/yosy/gittf

我之后会添加文档有关服务器命令时,我会修复一些bug。