Nginx:如何在不更改 sysctl.conf 的情况下增加积压(net.core.somaxconn)?想要允许许多待处理连接

Nginx:如何在不更改 sysctl.conf 的情况下增加积压(net.core.somaxconn)?想要允许许多待处理连接

我没有运行 Web 应用程序,而是运行需要提供实时预测的机器学习模型。

我正在使用 Nginx 和 Gunicorn,它们都在 docker 容器中运行。该设置使用 4 个 gunicorn 工作器,每个工作器有 1 个线程(托管我的模型的 4 个副本),以及 nginx 和 1 个工作进程。

目前,当我的客户端向我的服务器发送大量请求时,此设置会返回 502 错误。我想避免这种情况,即使这意味着每个请求的响应时间更长。

我尝试过的事情:

  • 从 128增加到net.core.somaxconn2048:这可以缓解 502 问题。但是,我无法sysctl.conf在生产环境中进行更改,因为我的 docker 容器以非特权模式运行(我无法控制这一点,因为它由另一个团队控制)。
  • 完全删除 nginx。这确实有效,因为我不会从互联网接收流量,也不必提供静态内容,只需提供作为 HTTP POST 请求传入的 ML 预测。但我想避免这样做,因为 Gunicorn 不推荐这样做。

这里有谁能帮忙吗?

相关内容