我是否应该始终将 worker_processes 设置为 nginx 中的 CPU 数量

我是否应该始终将 worker_processes 设置为 nginx 中的 CPU 数量

我正在设置一个具有 4 vCPU 的 VPS,它将运行一个网站。

大多数地方建议将 nginx 配置设置worker_processes为 CPU 的数量,因此在本例中为 4。

该服务器还将运行一些其他服务(主要是mysql、memcached),供网站使用。

在当前情况下,是否仍建议设置worker_processes为 4 或者将其限制为 3 是否有好处?

编辑:还通过 php-fpm 运行 php - 不知道我怎么认为这不相关

答案1

在这种情况下,即使 1 也应该没问题,因为 MySQL 和 Memcache 可能会比 nginx 占用更多的 CPU。我猜你也会在其上运行某种脚本语言,这会更加耗费资源。

答案2

这肯定取决于您预期的 VPS 负载。

通常情况下,我会遵循建议并让底层操作系统完成其工作,以充分利用您的 VPS,尽管 Nginx 相当轻量级资源,并且仅在一个核心上也可能做得很好。

答案3

在这种情况下,将工作进程设置为与 CPU 核心相同没有任何坏处。

NGINX 执行的大多数处理器操作都很简单,它们将在 CPU 的 L1 缓存中处理,并且不会影响服务器上的其他服务。

与往常一样,这取决于服务器负载和您的配置,但是,我运行的网站每天的点击量约为 6,000,000 次以上,而 CPU 甚至达不到 10%。它还运行 MySQL 和 PHP-FPM,以及用于缓存的 APM。

相关内容