解决启动 gunicorn 时候异常自动重启问题

问题

首先我的 flask 服务在没有使用 gunicorn 的情况下是可以正常提供服务的,在使用了 guniorn 之后遇到了以下的坑。我的服务启动需要加载很多东西,需要一段时间,使用下面命令进行启动,开多个进程:

bash 复制代码
gunicorn -c gunicorn.py test:app

启动之后正常运行,但是执行到中间就会自己中断然后重新进行启动,而且一直在重复这个重启过程,我将 gunicorn_error.log 的内容打印出来,如下:

less 复制代码
2023-10-31 15:16:07 +0800] [798] [ERROR] Worker (pid:1062) was sent SIGKILL! Perhaps out of memory?
[2023-10-31 15:16:07 +0800] [798] [ERROR] Worker (pid:1047) was sent SIGKILL! Perhaps out of memory?

看到有 out of memory 我起初以为是 OOM 的问题,空出足够的内容,重新启动 gunicorn -c gunicorn.py test:app ,然而仍然是上面的问题,于是我将 worker 的数量将为 1 去重新启动,仍然是上面的问题。

解决

我经过打印日志计时发现每次在正常运行后的 30s 左右会自己重启,于是我突然灵机一动去查看 gunicorn 的默认配置(见参考的链接),果然发现了一个和 30s 相关的参数 --timeout ,

这个参数表示的就是超过默认时间 30s 后工作将被杀掉并重新启动,和我遇到的现象一摸一样。于是我在配置文件 gunicorn.py 中将其改为了 60s ,如下:

ini 复制代码
timeout = 60

保存文件后,然后重新启动,果然可以正常运行了。

tnnd,差点就被日志误导了。

参考

www.jiebaiyou.com/2019/12/18/...

相关推荐
长和信泰光伏储能1 小时前
京津冀光伏发电:绿色能源的未来之路
python·能源
浦信仿真大讲堂2 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来
python·自动化·cst·仿真软件·达索软件
Gu Gu Study2 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)
人工智能·python
卷无止境3 小时前
写代码这件事,到底该讲究点什么?
后端·python
卷无止境3 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂
后端·python
lpfasd1233 小时前
MediaCrawler 项目深度分析
chrome·python·chrome devtools
Dxy12393102164 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)
开发语言·python
bamb004 小时前
一个项目带你入门AI应用开发01
python
0566464 小时前
Python康复训练——常用标准库
开发语言·python·学习
昆曲之源_娄江河畔4 小时前
Python如何安装flask, pymssql
开发语言·python·flask·pymssql