当前位置:网站首页>解决Pytorch模型在Gunicorn部署无法运行或者超时问题
解决Pytorch模型在Gunicorn部署无法运行或者超时问题
2022-08-02 06:12:00 【[email protected]】
@TOC解决Pytorch模型在Gunicorn部署无法运行或者超时问题
问题描述
训练出了一个Pytorch 文本生成模型,想要用Flask+Gunicorn的方法部署。但是请求模型进行生成的接口时,一直没有结果,最后导致timeout。
我的模型生成接口大概长这样:
model = load_model() #load_model会返回一个pytorch模型
@app.route('/generate')
def generate_texts():
text = model.generate()
return text
当我用gunicorn部署:
gunicorn -c gunicorn_conf.py news_server:app > logs/runlog.txt 2>&1 &1
我的gunicorn_conf.py文件长这样的:
#!/usr/bin/python
#coding=utf-8#nohup gunicorn -c gunicorn_conf.py online_server:app &
import multiprocessingpreload_app = True
debug = True
bind = '0.0.0.0:9091'
workers = 3
threads = 6
backlog = 32 #服务器中在pending状态的最大连接数,即client处于waiting的数目。超过这个数目, client连接会得到
一个error。
worker_class = 'gevent'
worker_connections = 10 #最大客户端并发数量,默认情况下这个值为1000。此设置将影响gevent和eventlet工作模式
#timeout = 1
#proc_name = 'gunicorn.pid'
pidfile = 'logs/gunicorn.pid'
accesslog = 'logs/access.log'
access_log_format = '%(h)s %(t)s %(U)s %(q)s'
#errorlog = 'logs/gun_error.log'
#loglevel = 'logs/debug'
#logfile = 'logs/gun_debug.log'
部署并没有发现什么异常。但是每次请求这个模型生成文本接口时,一直得不到结果,最后超时。
经过一天的debug和查资料,发现国外一个老哥有很类似的问题。
https://stackoverflow.com/questions/67069183/worker-timeout-when-preloading-pytorch-model-in-flask-app-on-render-com
问题原因
Pytorch会在和Gunicorn的preload_app选项为True时出现bug。应该是gunicorn的共享内存机制和Pytorch有一些冲突。
解决方案
将gunicorn的preload_app设置为False。
preload_app的作用主要是在启动app时能节省一点时间,进程之间共享内存。但是有很大的副作用,具体可以参考这篇文章:https://zhuanlan.zhihu.com/p/371115835
————————————————
原文链接:https://blog.csdn.net/Ang_Quantum/article/details/122496024
版权声明
本文为[[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/zzddada/article/details/126040885
边栏推荐
- punch day05
- Ant three sides: MQ message loss, duplication, backlog problem, what are the solutions?
- Dataset:机器学习中常用数据集下载链接集合之详细攻略
- 关于ue4.27像素流送打包后的本地服务器问题
- ASP.NET Core Web API 幂等性
- HCIP 第一天
- Connection reset by peer 问题解析
- MySQL - Multi-table query and case detailed explanation
- 2022年8月计划,着重ue4视频教程
- typescript 'props' is declared but its value is never read solution
猜你喜欢

数据库概论之MySQL表的增删改查1

MySQL high-level --- storage engine, index, lock

Detailed explanation of 9 common reasons for MySQL index failure

Vscode connect to remote server "Acquiring the lock on the/home / ~ 'problem

MySql 5.7.38下载安装教程 ,并实现在Navicat操作MySql

The stock price has repeatedly hit new lows, and the real estate SaaS giant is in trouble. How should Mingyuan Cloud transform and save itself?

Kind of weird!Access the destination URL, the host can container but not

振兴农村循环经济 和数链串起农业“生态链”

Nodejs installation and global configuration (super detailed)

数据库概论-MySQL的数据表的基本操作
随机推荐
MySQL(3)
Node installation and environment configuration
Xgboost报错 ValueError: Invalid shape: (1650, 2) for label
CAT1 4G+Ethernet development board Tencent cloud mobile phone WeChat applet display temperature and delivery control
typescript 'props' is declared but its value is never read solution
HCIP 第三天实验
.NET Static Code Weaving - Rougamo Release 1.1.0
HCIP 第一天
打卡day05
Nodejs installation and global configuration (super detailed)
MySQL高级SQL语句(二)
In-depth analysis of the initialization of member variables and local variables
See the picture to understand | How to choose sales indicators to measure the health of business growth
SphereEx苗立尧:云原生架构下的Database Mesh研发实践
MySQL驱动jar包的下载--保姆教程
MySQL 5.7 安装教程(全步骤、保姆级教程)
Wuhan 2022 organizing of the high-performance computing added new ecological development of high-performance computing
zabbix auto-discovery and auto-registration
【暑期每日一题】洛谷 P1255 数楼梯
MySQL高级学习笔记