Sidekiq工人正在泄漏记忆

Yos*_*osi 10 memory-leaks ruby-on-rails out-of-memory sidekiq git-tf


使用sidekiq gem - 我有sidekiq worker使用IO.popen运行一个进程(大型存储库的git-tf克隆)并跟踪stdout以检查克隆的进度.

当我运行worker时,我发现sidekiq内存越来越大,直到我得到内核OOM并且进程被杀死.子进程(java进程)只占总内存的5%.

我如何调试/检查我的代码中的内存泄漏?并且sidekiq内存是我的工人记忆与popen过程的总和?
有没有人知道如何解决它?

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

编辑2
我没有sidekiq运行代码,我没有内存泄漏..这与tfs中的sidekiq和大型存储库有点奇怪

Yos*_*osi 0

我没有找到sidekiq内存泄漏的原因,但是我找到了摆脱sidekiq的办法。

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

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

稍后当我修复一些错误时,我将添加有关 sever 命令的文档。