saz*_*ary 13 django fork gunicorn
我们在服务器中使用Django + Gunicorn + Nginx.问题是,经过一段时间后,我们看到很多枪手工人流程已经变成了孤儿,还有很多其他人变成了僵尸.我们还可以看到一些Gunicorn工人进程产生了一些其他的Gunicorn工人.我们最好的猜测是,这些工人在父母工人去世后成为孤儿.
为什么Gunicorn工人会产生童工?他们为什么要死?!我们怎样才能阻止这种情况呢?
我还应该提一下,我们已经将Gunicorn的日志级别设置为debug并且我们仍然没有看到任何重要的事情,除了工作人员编号的定期日志,它报告了我们想要的工人数量.
更新 这是我们用来运行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 并使用这样的脚本从新贵启动了这个配置的 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
Run Code Online (Sandbox Code Playgroud)
我使用 .py 文件配置来配置 Gunicorn,并设置了一些选项(详细信息如下),并将我的应用程序(使用virtualenv)部署/home/web/djangoapp到僵尸和孤儿 Gunicorn 进程中,没有任何问题。
我验证了您的选项,超时可能是一个问题,但另一个问题是您没有在配置中设置最大请求数,默认情况下为 0,因此,守护进程中不会自动重新启动工作程序,并且可能会产生内存泄漏(http:// /gunicorn-docs.readthedocs.org/en/latest/settings.html#max-requests)
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |