我对Gunicorn占用大量内存感到困惑。我正在运行的应用程序是用于自动图像识别的深度学习框架。
即使我将内存大小从1GB增加到3GB,内存使用率仍在67%左右徘徊。令人困惑的是,该内存似乎由多个相同的Gunicorn进程使用,如下所示。我已经手动杀死了一些高耗用的进程,例如PID 2004和1860,但是它们不断地返回,并且67%的内存使用率仍然存在,有时甚至更高。结果,由于内存不足,诸如cv2.imread之类的图像读取工具始终无法处理大尺寸的图像。
$ ps aux --sort =-%mem
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 2004 5.6 39.0 2304052 1201968 ? S 17:33 0:08 /home/user/anaconda3/envs/project/bin/python /home/user/anaconda3/envs/project/bin/gunicorn --workers 2 --bind unix:/home/user/project-master/project.sock -m 007 wsgi:app
user 1860 2.5 38.6 2289024 1189396 ? S 17:14 0:32 /home/user/anaconda3/envs/project/bin/python /home/user/anaconda3/envs/project/bin/gunicorn --workers 2 --bind unix:/home/user/project-master/project.sock -m 007 wsgi:app
user 1694 0.0 0.5 43620 17416 ? Ss 17:14 0:00 /home/user/anaconda3/envs/project/bin/python /home/user/anaconda3/envs/project/bin/gunicorn --workers 2 --bind unix:/home/user/project-master/project.sock -m 007 wsgi:app
我想知道Gunicorn服务的Web应用程序具有如此高的RAM使用率是否正常?如果没有,我有什么办法可以解决?谢谢!
答案 0 :(得分:1)
我对某些图像也遇到了同样的问题。
尝试删除这样的变量:
del img, otherVar
答案 1 :(得分:0)
我的意思是,如果循环中有太多功能,您可能只需要向那个坏男孩扔一个time.sleep(.05)。