Gunicorn通过多个相同进程的高内存使用率?

时间:2018-12-21 01:55:23

标签: python-3.x web-services nginx gunicorn

我对Gunicorn占用大量内存感到困惑。我正在运行的应用程序是用于自动图像识别的深度学习框架。

即使我将内存大小从1G​​B增加到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使用率是否正常?如果没有,我有什么办法可以解决?谢谢!

2 个答案:

答案 0 :(得分:1)

我对某些图像也遇到了同样的问题。

尝试删除这样的变量:

del img, otherVar

答案 1 :(得分:0)

我的意思是,如果循环中有太多功能,您可能只需要向那个坏男孩扔一个time.sleep(.05)。