【发布时间】:2015-11-25 01:53:34
【问题描述】:
我们在我们的服务器中使用 Django + Gunicorn + Nginx。问题是,过了一段时间,我们看到很多 Gunicorn 工作进程变成了孤儿,还有很多其他的变成了僵尸。我们还可以看到一些 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
【问题讨论】:
-
你能发布你的 Gunicorn 配置吗?如果不知道它是如何设置的,就很难理解会发生什么。
-
您的问题有什么更新吗?您是否想出了解决方案或找出问题所在?
-
这是很久以前的事了,我问了这个问题一两天后,我们从gunicorn改为uWSGI,但没有找到解决方案。
-
您需要一个监视器,因为您可能需要集成 supervisord 以在它失败时重新启动。并将所有这些 gunicorn 行传递给 .sh 文件。