当前位置:网站首页>解决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
边栏推荐
- zabbix email alarm and WeChat alarm
- Expert Insights | 3 ways to seize innovation opportunities in a downturn
- Understand C operators in one article
- The second day HCIP
- August 2022 plan, focusing on ue4 video tutorials
- Revitalize rural circular economy and digital chain to link agricultural "ecological chain"
- MySQL高级语句(一)
- Specified URL is not reachable,caused by :‘Read timed out
- C# FileInfo class
- MySQL - Multi-table query and case detailed explanation
猜你喜欢

宝塔+FastAdmin 404 Not Found

Technology empowers Lhasa's "lungs", Huawei helps Lalu Wetland Smart Management to protect lucid waters and lush mountains

MySQL - Multi-table query and case detailed explanation

HCIP 第二天

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?

实验8 VLAN综合实验

zabbix email alarm and WeChat alarm
![[数据集][VOC]男女数据集voc格式6188张](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)
[数据集][VOC]男女数据集voc格式6188张

Clapper that can interact with the audience in real time

MySQL Advanced Statements (1)
随机推荐
Go inside the basic knowledge
See the picture to understand | How to choose sales indicators to measure the health of business growth
Node installation and configuration (node-v12.20.2-x64 ) and introduction to node version switching
MySQL high-level --- storage engine, index, lock
MySQL 23道经典面试吊打面试官
Specified URL is not reachable,caused by :‘Read timed out
Toolbox App 1.25 New Features at a Glance | Version Update
c语言指针运算
一文搞懂C操作符
chrome 插件开发指南
HCIP day one
nacos源码启动找不到istio包
optional
How the Internet of Things is changing the efficiency of city operations
ASP.NET Core Web API 幂等性
abaqus如何快速导入其他cae文件的assembly?
SphereEx苗立尧:云原生架构下的Database Mesh研发实践
Ant three sides: MQ message loss, duplication, backlog problem, what are the solutions?
In-depth analysis of the initialization of member variables and local variables
DNS resolution process