零、前言
自上次用flask搭了个接口跑yolo以后,一直都很ok
直到有一天请求数突然多了起来...
只要有1个以上线程请求就崩掉
查了一下原来app.run()是用于开发环境测试用的
笑死,根本不保证稳定性和性能
在不需要复杂的代码修改了环境部署前提下,我实测了下面这种可以用于生产环境的部署方式:
一、安装gunicorn
pip install gunicorn
二、导入proxyfix
from werkzeug.middleware.proxy_fix import ProxyFix
三、加入代码
# 放在原来这个代码的位置
# app.run(host='0.0.0.0', port=5000)
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run()
四、启动
gunicorn -w 5 -b 0.0.0.0:5000 flask_yolo:app
-w是线程数,RTX2080(8G)实测只能开5个,6个会显存溢出
-b是ip和端口
flask_yolo:app 我的python文件就是叫flask_yolo.py你的文件叫什么就放在前面,app不要动
五、守护进程
sudo apt-get install supervisor
安装好了以后要写一个配置文件
sudo touch /etc/supervisor/conf.d/config.conf
sudo gedi