gpt4 book ai didi

python - uWSGI 在达到生命周期时重置工作人员导致停机

转载 作者:行者123 更新时间:2023-12-05 00:54:20 27 4
gpt4 key购买 nike

我有运行 Django 的 uWSGI。我将我的 uWSGI 工作人员配置为 max-worker-lifetime=3600。

我看到的是,每 3600 秒,两个 uWSGI 工作人员都会一起终止,这会导致大约 10-15 秒的停机时间,所有到服务器都失败,来自远程服务器的 502。

这些是日志:

Everything normal

00:00:00 worker 1 lifetime reached, it was running for 3601 second(s)
00:00:00 worker 2 lifetime reached, it was running for 3601 second(s)

00:00:01 HTTP 502 (on the remote server)
00:00:01 HTTP 502 (on the remote server)
...
00:00:11 HTTP 502 (on the remote server)
00:00:11 HTTP 502 (on the remote server)

00:00:11 Respawned uWSGI worker 1 (new pid: 66)
00:00:11 Respawned uWSGI worker 2 (new pid: 67)

Everything goes back to normal

我不确定它为什么会有这种行为。

这是使用的配置(仅相关部分):

    UWSGI_MASTER=true \
UWSGI_WORKERS=2 \
UWSGI_THREADS=8 \
UWSGI_LISTEN=250 \
UWSGI_LAZY_APPS=true \
UWSGI_WSGI_ENV_BEHAVIOR=holy \
UWSGI_MAX_WORKER_LIFETIME=3600 \
UWSGI_RELOAD_ON_RSS=1024 \
UWSGI_SINGLE_INTERPRETER=true \
UWSGI_VACUUM=true

最佳答案

您应该使用最近通过社区贡献添加的参数max-worker-lifetime-delta

https://github.com/unbit/uwsgi/issues/2020

https://github.com/unbit/uwsgi/pull/2021

这将确保您的工作人员不会重启得太近。此外,由于您的工作人员的加载时间很长,因此要有足够的工作人员,以便重新启动工作人员不会产生很大的影响。

此外,您使用的工作超时时间看起来很低,您也应该尝试一下,并将其增加到您认为更好的值

关于python - uWSGI 在达到生命周期时重置工作人员导致停机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66489889/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com