Python 进程重新启动时未回收内存

Python 进程重新启动时未回收内存,python,memory-management,gpu,caffe,Python,Memory Management,Gpu,Caffe,我有一份python工作,在nvidia GPU上运行caffe网络进行图像处理。该作业从rabbitmq队列获取映像,对其进行处理,然后将结果写入另一个队列。当我重新启动此作业时,进程会被终止,但内存不会被回收 因此,在一定次数的重启后,机器会崩溃。一旦我终止了作业,就没有python进程在ps或top中运行,但是CPU内存没有得到回收 如何调试此问题 编辑:CPU内存未被释放的是您的GPU内存。获取进程id $ nvidia-smi 然后 $ kill -9 <process id&

我有一份python工作,在nvidia GPU上运行caffe网络进行图像处理。该作业从rabbitmq队列获取映像,对其进行处理,然后将结果写入另一个队列。当我重新启动此作业时,进程会被终止,但内存不会被回收

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

如何调试此问题


编辑:CPU内存未被释放的是您的GPU内存。获取进程id

$ nvidia-smi
然后

$ kill -9 <process id>
$kill-9

您指的是GPU内存还是CPU内存?CPU内存。这是你免费得到的。当我运行nvidia-smi时,我得到了“无进程运行”。你能看到消耗额外内存的进程吗?使用
$ps aux | less
查找流程。然后使用
$pkill-9
终止进程。没有进程在ps或htop中运行。看起来是Caffe库中的某个bug没有释放共享内存。我不明白。当你说CPU内存没有得到回收,这意味着一定有一些进程在消耗内存。你肯定忽略了它。再次运行Caffe,然后检查CPU和GPU中不同进程在不同终端中使用的内存。