当前位置:网站首页>解决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
边栏推荐
- 打卡day05
- MySQL Advanced Study Notes
- Py's mlxtend: a detailed guide to the introduction, installation, and usage of the mlxtend library
- MySQL (3)
- August 2022 plan, focusing on ue4 video tutorials
- typescript ‘props‘ is declared but its value is never read 解决办法
- [21天学习挑战赛——内核笔记](一)——设备树的概述(硬件、目标、效果、文件类型)
- 返回文件名问题
- 看图就懂|衡量业务增长健康的销售指标如何选择
- Understand C operators in one article
猜你喜欢

optional

能与观众实时互动的Claper

Leading the demand and justifying the HR value - the successful launch of the "Human Resource Leading Model HRLM"

有点奇怪!访问目的网址,主机能容器却不行

abaqus如何快速导入其他cae文件的assembly?

Nodejs installation tutorial

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?

HCIP 第二天

Go inside the basic knowledge
![[Dataset][VOC] Male and female dataset voc format 6188 sheets](/img/72/d3e46a820796a48b458cd2d0a18f8f.png)
[Dataset][VOC] Male and female dataset voc format 6188 sheets
随机推荐
PMP新考纲通关秘籍,告别抓瞎
Node installation and environment configuration
Dataset:机器学习中常用数据集下载链接集合之详细攻略
chrome 插件开发指南
Nodejs installation and global configuration (super detailed)
[数据集][VOC]男女数据集voc格式6188张
MySQL Advanced SQL Statements (2)
About the local server problem after ue4.27 pixel streaming package
.NET静态代码织入——肉夹馍(Rougamo) 发布1.1.0
有人开源全凭“为爱发电”,有人却用开源“搞到了钱”
Detailed explanation of 9 common reasons for MySQL index failure
request.getSession(), the story
(部分不懂,笔记整理未完成)【图论】差分约束
MySQL(3)
Leetcode Weekly 304
Specified URL is not reachable,caused by :‘Read timed out
rhce homework
技术管理三级跳
typescript ‘props‘ is declared but its value is never read 解决办法
Two good php debug tutorials