我看过很多帖子建议如何设置 nginx 的worker_processes
,但很少有帖子详细说明当设置得太高时会发生什么。我即将运行一些基准测试,但我希望得到有关我应该期待什么的建议。如果我有一个核心(两个硬件线程)可用于 nginx,如果我将worker_processes
2 更改为 24,哪些指标会受到影响?
我首先想到的是,CPU 争用会导致吞吐量降低和延迟增加。这是正确的吗?预计其他任何指标都会受到明显影响吗?我还应该对哪些指标进行基准测试?
答案1
该worker_processes
指令确定 nginx 将从主进程中产生多少个子进程/分支。仅当您拥有 24 个 CPU 核心(或者在超线程(HT)技术的情况下至少有 24 个虚拟 CPU 核心,但仍然有 12 个核心)时,24 个进程才有意义。
CPU 争用
绝对是的,而且这将是你最大的问题。
预计其他指标是否会受到明显影响——我还应该对哪些指标进行基准测试?
您的操作系统也必须管理这些进程。您的整体性能将受到影响,并且内存使用量应该会明显受到影响(尽管影响不大)。
如果您正在进行基准测试,请增加每个进程允许处理的连接数。这将增加您的吞吐量,但不会通过简单地向硬件投入越来越多的进程来增加硬件的负载。