Nginxconfiguration中工作进程的理想值是什么?

我有31GB内存8核心Web服务器,每分钟3k的当前负载。

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

在这里输入图像说明

而且,使这个值为8会对我有帮助吗?

其他一些程序使用CPU,如PHP也许? 粘贴所有的顶部输出,不仅是你的CPU,而且也是程序。 打开线程的可视性…(H键,如果我没有记错的话)

从文档 :

最佳值取决于许多因素,包括(但不限于)CPU内核数量 ,存储数据的硬盘驱动器数量以及负载模式。 当有疑问时,将其设置为可用的CPU核心数将是一个很好的开始(值“自动”将尝试自动检测它)

所以,基本上,把它设置为CPU的数量是个好主意。 但是,如果您有磁盘延迟问题,请降低该值。

worker_processes的值等于所使用的CPU内核的数量。 顾名思义,它只控制将要运行的单个nginx进程实例的数量。 这些实例中的任何一个都会产生多个线程来处理传入的请求,即使您select只使用一个辅助进程,这些线程也将在所有可用的内核上运行。

至于为什么每个CPU的一个工作进程优于仅仅一个 – 我不知道。 知道nginx如何使用线程的内部工作的人将不得不阐明这一点。

PS。 我想知道为什么你的服务器负载如此之高 – 我们正在运行一个小型的双核服务器,可以处理高达200请求/秒,几乎没有任何负载。