Nginx 配置中工作进程的理想值是多少?

Nginx 配置中工作进程的理想值是多少?

我有 31GB RAM 8 核 Web 服务器,当前负载为每分钟 3k。

目前,nginx 配置中的 worker_processes 参数为 4,根据我的理解,这意味着只会使用 4 个核心。但是当我查看 CPU 性能时,我发现所有 8 个核心的负载相同。为什么?

在此处输入图片描述

此外,将此值设为 8 对我的情况有帮助吗?

答案1

一些其他程序使用 CPU,比如 php?粘贴所有顶部输出,不仅是 CPU,还有程序。也打开线程可见性...(如果我没记错的话,是 H 键。)

答案2

文档

最佳值取决于许多因素,包括(但不限于)CPU 核心数、硬盘数量存储数据和加载模式。如果有疑问,将其设置为可用 CPU 核心数将是一个不错的开始(值“auto”将尝试自动检测它)

因此,基本上,将其设置为 CPU 数量是一个好主意。但是,如果您有磁盘延迟问题,请降低该值。

答案3

的值worker_processes不是相当于使用的 CPU 核心数。顾名思义,它仅控制单个 nginx 进程实例将会运行。这些实例中的任何一个都会生成多个线程来处理传入的请求,即使您选择仅使用单个工作进程,这些线程也会在所有可用核心上运行。

至于为什么每个 CPU 一个工作进程比例如只有一个工作进程更好——我不知道。了解 nginx 如何使用线程的内部工作原理的人应该能解释这一点。

附言:我想知道为什么你们的服务器负载这么高 - 我们正在运行一个小型的 2 核服务器,它每秒最多可处理 200 个请求,而几乎没有任何负载。

相关内容