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

相关推荐
威联通网络存储17 小时前
编织数智转型的底座:某中型服装制造企业基于威联通的存储实践
python
6+h17 小时前
【Spring】Bean的生命周期详解
java·python·spring
李昊哲小课18 小时前
Python CSV 模块完整教程
java·服务器·python
年少无为呀!18 小时前
OpenClaw 飞书 Skill 开发完全指南
python·机器人·飞书·助手·openclaw·skill开发
赵谨言19 小时前
基于YOLOv5的植物目标检测研究
大数据·开发语言·经验分享·python
不光头强19 小时前
IO流知识点
开发语言·python
老师好,我是刘同学19 小时前
Python列表用法全解析及实战示例
python
夫唯不争,故无尤也19 小时前
HTTP方法详解:GET、POST、PUT、DELETE
开发语言·windows·python
zh路西法20 小时前
【宇树机器人强化学习】(一):PPO算法的python实现与解析
python·深度学习·算法·机器学习·机器人
小钻风336620 小时前
Optional:告别NullPointerException的优雅方案
开发语言·python