使用 sidekiq gem - 我有使用 IO.popen 运行进程(大存储库的 git-tf 克隆)并跟踪标准输出以检查克隆进度的 sidekiq 工作人员。
当我运行worker时,我看到sidekiq内存随着时间的推移越来越大,直到我得到内核OOM并且进程被杀死。子进程(java 进程)只占用总内存的 5%。
如何调试/检查代码中的内存泄漏?sidekiq 内存是我的工作人员内存与 popen 进程的总和吗?
有谁知道如何解决它?
编辑
这是我的工人的代码 -
https://gist.github.com/yosy/5227250
编辑 2
我在没有 sidekiq 的情况下运行了代码,并且没有内存泄漏..这对于 sidekiq 和 tfs 中的大型存储库来说有些奇怪