【问题标题】:what is worker_processes and worker_connections in Nginx?Nginx 中的 worker_processes 和 worker_connections 是什么?
【发布时间】:2021-01-24 19:31:49
【问题描述】:

请帮助我了解 Nginx 中的 worker_processesworker_connections 是什么以及它们之间的关系。我查看了Nginx directives,上面写着:

worker_processes

工作进程是单线程进程。

如果 Nginx 正在执行诸如 SSL 或 gzipping 之类的 CPU 密集型工作,并且您有 2 个或更多 CPU/内核,那么您可以将 worker_processes 设置为等于 CPU 或内核的数量。

如果您提供大量静态文件并且文件的总大小大于可用内存,那么您可以增加 worker_processes 以充分利用磁盘带宽。

worker_connections

主要部分的 worker_connections 和 worker_processes 允许您计算可以处理的最大客户端数:

max clients = worker_processes * worker_connections

所以我知道worker_processes 是单线程的,它的价值有助于 CPU 密集型工作,但我无法理解“允许您处理可以处理的最大客户端”。

如果有人能举出worker_processes中给出的例子,那将有助于我理解。

【问题讨论】:

    标签: nginx


    【解决方案1】:

    worker_connections 是同时连接的数量;所以他们只是在说明如何计算,例如:

    • 您只运行 1 个具有 512 个连接的进程,您将只能为 512 个客户端提供服务。

    • 如果 2 个进程各有 512 个连接,您将能够处理 2x512=1024 个客户端。

    连接数受系统上打开文件的最大数量 (RLIMIT_NOFILE) 限制

    nginx 对工作人员连接有更好、更新的描述。

    仅供参考,wiki 部分被认为是过时的(不要问),现在只首选主要的 nginx.org/en/docs...

    【讨论】:

    • 如果我有 1GB RAM 和 1CPU,理想的连接和处理器是什么?
    • 我认为这里需要注意的是,根据NGINX documenation,worker_connections 是工作人员可以同时打开的最大连接数,无论是客户端还是后端服务器(在代理的情况下)。所以如果你使用 nginx 作为反向代理,worker_processes * worker_connections 的结果不一定就是你可以服务的客户端数量。
    【解决方案2】:
    • 工作进程:

      • 处理传入请求的 Nginx 工作进程。
      • 将此设置为worker_process auto; 以根据可用内核自动调整 Nginx 工作进程的数量。
      • 如果您有 IO 访问权限,这可能超出可用内核。
    • 工作人员连接:

      • 每个工作进程默认可以打开一个 512 个连接。
      • 您可以通过worker_connections <no> 更改此限制。
      • 您可以将其设置为最大限制ulimit -n
      • 因此,

      max_clients = worker processes * worker connections

    【讨论】:

      【解决方案3】:

      来自Nginx's Beginner’s Guide

      nginx 有一个主进程和几个工作进程。主要的 主进程的目的是读取和评估配置, 并维护工作进程。工作进程进行实际处理 的请求。 nginx 采用基于事件的模型和依赖于操作系统的模型 在工作进程之间有效分配请求的机制。 工作进程的数量在配置文件中定义 并且可以针对给定的配置进行固定或自动调整 到可用 CPU 内核的数量

      【讨论】:

        猜你喜欢
        • 2014-07-13
        • 2023-03-04
        • 2018-10-25
        • 2022-12-28
        • 2021-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-05
        相关资源
        最近更新 更多