【问题标题】:Memory not getting reclaimed on restart of a process重新启动进程时未回收内存
【发布时间】:2018-07-21 00:24:55
【问题描述】:

我有一个运行 caffe 网络的 python 作业,用于在 nvidia GPU 上进行图像处理。该作业从 rabbitmq 队列中获取图像,对其进行处理,然后将结果写入另一个队列。当我重新启动这项工作时,进程被杀死但内存没有被回收。

因此,在重新启动一定次数后,机器会崩溃。一旦我终止作业,就没有在 ps 或 top 中运行的 python 进程,但 CPU 内存没有被回收。

如何调试这个问题?

编辑:CPU 内存

【问题讨论】:

  • 你指的是GPU内存还是CPU内存?
  • CPU 内存。您可以免费获得的那个。

标签: python memory-management gpu caffe


【解决方案1】:

这是您的 GPU 内存没有被释放。获取进程id

$ nvidia-smi

然后

$ kill -9 <process id>

【讨论】:

  • 运行 nvidia-smi 时出现“没有进程运行”。
  • 你能看到消耗额外内存的进程吗?使用$ ps aux | less 找出过程。然后用$ pkill -9 &lt;process id&gt;杀死进程。
  • 没有进程在 ps 或 htop 中运行。看起来这是 Caffe 库中的一些错误,它没有释放共享内存。
  • 我不明白。当你说 CPU 内存没有被回收时,这意味着一定有一些进程在消耗内存。你肯定忽略了它。再次运行 Caffe,然后在不同的终端检查 CPU 和 GPU 中不同进程使用的内存。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多