由于https://bugs.python.org/issue36054 ,这些文档中的建议在容器内运行时很危险。 如果你的容器在 64 核的机器上分配了(比如说)一个核和 512 MB 的 RAM, multiprocessing.cpu_count()
认为它有 64 个核而不是只有 1 个,你最终会产生 129 个工人。 这比容器拥有的资源要多得多,最终导致内存不足崩溃。
你好😄! 感谢您的通知。
Gunicorn 中的默认设置是单个工作人员,即使文档中有一个检测数字的示例。 鉴于这看起来最终可能是一个 Python 错误修复,我不确定我们应该在这里特别做些什么。 不过,在flask-gunicorn 向下游提交它很有意义。
它更多的是应该在 python 中修复的东西,而不是真正的问题。 该文档是在 docker 甚至不存在的时候制作的,但我认为它对于示例仍然有用,因为它非常明确。 然后关闭问题。
在文档中添加 1 条细线来说明(“但如果使用容器,请注意BPO-36054 !”)可以让许多用户在他们仍然使用未修复此问题的 Python 版本之后的几年里头疼不已。 如果您不反对合并它,如果没有人击败我,我将提交 PR。
@twosigmajab好主意! 请继续 :)
最有用的评论
@twosigmajab好主意! 请继续 :)