解决启动 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/...

相关推荐
AllData公司负责人7 分钟前
通过Postgresql同步到Doris,全视角演示AllData数据中台核心功能效果,涵盖:数据入湖仓,数据同步,数据处理,数据服务,BI可视化驾驶舱
java·大数据·数据库·数据仓库·人工智能·python·postgresql
Flittly1 小时前
【LangGraph新手村系列】(5)时间旅行:浏览历史、分叉时间线与修改过去
python·langchain
2301_782040452 小时前
CSS Flex布局中如何实现导航栏与Logo的左右分布_利用justify-content- space-between
jvm·数据库·python
yaoxin5211232 小时前
400. Java 文件操作基础 - 使用 Buffered Stream I/O 读取文本文件
java·开发语言·python
用户8356290780513 小时前
使用 Python 自动创建 Excel 折线图
后端·python
小白学大数据3 小时前
面向大规模爬取:Python 全站链接爬虫优化(过滤 + 断点续爬)
开发语言·爬虫·python
WL_Aurora3 小时前
【每日一题】贪心
python·算法
IT策士4 小时前
Python 中间件系列:redis 深入浅出
redis·python·中间件
Dxy12393102164 小时前
Python Pillow库:`img.format`与`img.mode`的区别详解
开发语言·python·pillow
༒࿈南林࿈༒5 小时前
刺猬猫小说下载
python·js逆向