Python中uWSGI worker报错:master disconnected,如何解决worker自杀问题?
自己写了个 Django 项目,部署以后一会儿就出现这个情况,不知不觉就挂了,实在找不到原因啊,有没有大佬给指点一下?
日志信息:
*** uWSGI is running in multiple interpreter mode ***
gracefully (RE)spawned uWSGI master process (pid: 1738)
spawned uWSGI worker 1 (pid: 2499, cores: 1)
spawned uWSGI worker 2 (pid: 2500, cores: 1)
spawned uWSGI worker 3 (pid: 2501, cores: 1)
spawned uWSGI worker 4 (pid: 2502, cores: 1)
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x1627770 pid: 2502 (default app)
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x1627770 pid: 2500 (default app)
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x1627770 pid: 2499 (default app)
WSGI app 0 (mountpoint='') ready in 3 seconds on interpreter 0x1627770 pid: 2501 (default app)
Fri Mar 29 07:12:44 2019 - uWSGI worker 3 screams: UAAAAAAH my master disconnected: i will kill myself !!!
uwsgi.ini 文件:
[uwsgi]
socket=:9000
chdir=/root/python/salary/salary_pro
module=salary_pro.wsgi
master=true
processes=4
vacuum=true
lazy-apps=true
启动命令:
nohup uwsgi --ini uwsgi.ini &
Python中uWSGI worker报错:master disconnected,如何解决worker自杀问题?
6 回复
uwsgi 写入日志<br>daemonize = /project/logs/uwsgi.log<br>
然后再去看看
这个问题通常是因为worker进程和master进程之间的心跳检测失败导致的。核心解决思路是调整uWSGI的worker相关超时参数。
在你的uWSGI配置文件中(比如uwsgi.ini),增加或调整以下参数:
[uwsgi]
# 基础配置
socket = :8000
chdir = /path/to/your/project
module = your_project.wsgi:application
master = true
workers = 4
# 关键参数调整
worker-reload-mercy = 60 # worker优雅退出的等待时间
max-worker-lifetime = 3600 # worker最大生命周期(秒)
harakiri = 120 # 请求处理超时时间
reload-mercy = 60 # 重载时的优雅等待时间
worker-reload-mercy = 60 # worker重载时的等待时间
如果使用命令行启动,可以这样:
uwsgi --socket :8000 --workers 4 --master --worker-reload-mercy 60 --max-worker-lifetime 3600 --harakiri 120
主要参数说明:
harakiri: 单个请求最大处理时间,超时worker会被重启max-worker-lifetime: worker最大存活时间,避免内存泄漏worker-reload-mercy: worker重启时的宽限时间
如果问题持续,检查系统资源(内存/CPU)是否充足,或者考虑减少worker数量。
调整超时参数通常能解决。
虽然没用过 ,但是这个日志 莫名的萌啊
谢谢,我先去试试
kill 自己,哈哈哈
解决了么?

