gpt4 book ai didi

django - Gunicorn 同步 worker 生成进程

转载 作者:行者123 更新时间:2023-12-03 22:46:00 28 4
gpt4 key购买 nike

我们在我们的服务器中使用 Django + Gunicorn + Nginx。问题是,过了一段时间,我们看到很多 Gunicorn 工作进程变成了孤儿,还有很多其他的变成了僵尸。我们还可以看到一些 Gunicorn 工作进程产生了一些其他 Gunicorn 工作人员。我们最好的猜测是,这些 worker 在他们的 parent worker 去世后成为孤儿。
为什么 Gunicorn worker 会产生童工?他们为什么会死?!我们如何防止这种情况发生?
我还应该提到我们已经将 Gunicorn 日志级别设置为 debug我们仍然没有看到任何重要的事情,除了 worker 数量的定期日志,它报告了我们想要从中获得的 worker 数量。

更新
这是我们用来运行 gunicorn 的行:
gunicorn --env DJANGO_SETTINGS_MODULE=proj.settings proj.wsgi --name proj --workers 10 --user proj --group proj --bind 127.0.0.1:7003 --log-level=debug --pid gunicorn.pid --timeout 600 --access-logfile /home/proj/access.log --error-logfile /home/proj/error.log

最佳答案

在我的情况下,我部署在 Ubuntu 服务器(LTS 版本,现在几乎是 14.04 LTS 服务器)并且我从来没有遇到过 gunicorn 守护进程的问题,我创建了一个 gunicorn.conf.py 并使用这个配置从 Upstart 使用这样的脚本启动 gunicorn在 /etc/init/djangoapp.conf

description "djangoapp website"
start on startup
stop on shutdown
respawn
respawn limit 10 5

script
cd /home/web/djangoapp
exec /home/web/djangoapp/bin/gunicorn -c gunicorn.conf.py -u web -g web djangoapp.wsgi
end script

我使用 .py 文件配置来配置 gunicorn,并设置了一些选项(详情如下)并在 virtualenv 中部署我的应用程序(使用 /home/web/djangoapp )僵尸和孤儿 unicorn 进程没有问题。

我验证了您的选项,超时可能是一个问题,但另一个问题是您没有在配置中设置 max-requests,默认情况下为 0,因此,在您的守护进程中不会自动重新启动工作程序,并且会产生内存泄漏( http://gunicorn-docs.readthedocs.org/en/latest/settings.html#max-requests )

关于django - Gunicorn 同步 worker 生成进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304315/

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