Sidekiq工作进程正在泄漏内存。

10
使用sidekiq gem - 我有一个运行进程(大仓库的git-tf克隆)的sidekiq worker,使用IO.popen跟踪stdout以检查克隆的进度。当我运行worker时,我发现sidekiq内存随着时间的推移变得越来越大,直到我获得内核OOM并杀死进程。子进程(java进程)仅占用总内存的5%。

我该如何调试/检查代码中的内存泄漏? sidekiq内存是否为我的带popen进程的worker内存总和?是否有人有任何想法如何解决它?

编辑
这是我的worker代码 - https://gist.github.com/yosy/5227250

编辑2
我在没有sidekiq的情况下运行了代码,我没有内存泄漏...这对于tfs中的sidekiq和大型存储库来说是一件奇怪的事情。
1个回答

0

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

我修改了git-tf,使其具有从redis队列接受命令的服务器命令,这消除了我的代码中的许多复杂性。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接