24

我有一个系统管理员和开发人员的问题。我看到 uWSGI 允许我在运行 uWSGI 时设置数量或工作程序或进程,并且我读过它取决于安装的机器,所以我有下一个问题:

  1. 定义机器工人数量的规则是什么?
  2. 与 nginx 一起使用时,worker_processesnginx.conf 中的配置会影响这个吗?
  3. 与 Celery 和 Redis 一起使用时,concurrency与此有关吗?
  4. 此设置中的线程安全性如何?(我在我的应用程序中看到过 1 个请求执行 1 个任务,结果是 2 次调用 celery 执行此任务。)
4

1 回答 1

17
  • 定义机器工人数量的规则是什么?

    来自uWsgi 文档

    设置进程或线程的数量没有神奇的规则。它取决于应用程序和系统。不要认为使用像 2*cpucores 这样的简单数学就足够了。您需要尝试各种设置并不断监控您的应用程序。uwsgitop 可能是找到最佳价值的好工具。

  • 与 nginx 一起使用时,nginx.conf 中的配置“worker_processes”会影响这个吗?

    该设置仅与 nginx 有关,不会直接影响 uwsgi。但是,您可能需要修改此设置,因为您不希望有 20 个 nginxworker_processes和只有一个 uwsgi 工作者。

  • 与 celery+redis 一起使用时,“并发”与此有关吗?

    我通常使用 django 的 manage.py 启动 Celery 守护进程,因此它将在 uwsgi 之外运行。

  • 此设置中的线程安全性如何?

    我必须知道更多细节/细节才能发表评论。

于 2012-10-11T14:53:00.183 回答