我尝试使用 nginx + gunicorn 部署 django 应用程序。
我的问题
gunicorn 花费大量时间/proc/mem 将上传的文件复制到本地文件系统中。
- 时间:35秒复制一个150Mb的文件
- 中央处理器:> 95%
- 内存:50Mb
配置:
- nginx 被配置为使用uploadprogress模块并且进度条工作正常。
- gunicorn 与套接字文件绑定(尝试使用 tcp 套接字不会改变任何内容)
- django 1.4:不要在这个文件(FileField)上做任何事情,而是在本地 FS 上复制
我尝试了什么:
在 8050 端口单独运行 gunicorn
- => 没有进度条(当然既然是 nginx 怎么给这个)
- => gunciron 需要相同的时间/mem/proc
- => 传输比使用 nginx 需要更长的时间,但完成速度更快:
- nginx + gunicorn:传输:4 秒,响应生成:30 秒
- gunicorn:传输:30 秒,响应生成:4 秒/
- => 如果在 POST 中将文件放到一个不需要 POST 的视图中,则需要的时间会少一点,但 > 25 秒
当我要求他将文件传输到 django 应用程序时,gunicorn 似乎很弱。
gunicorn cmd 行(无配置文件)
gunicorn_django --user=www-data --group=www-data --workers=2 --bind 192.9.201.3:8050 -t 90 --name=TheName.domain.ltd