CPU 核心和 worker/maxservers

CPU 核心和 worker/maxservers

我正在尝试优化我的 apache 和 nginx 安装,并一直在寻找有关如何在 Apache 中设置正确数量或最小/最大服务器和连接以及在 Nginx 中设置工作进程的信息。

我想知道 Apache 和 Nginx 是否利用多核处理器以及如何在 Apache 和 Nginx 中设置配置?

例如,假设我有一个 4 核处理器,我应该在 nginx 中将工作器设置为 4 吗?我应该将 apache 中的备用服务器设置为多少?

答案1

worker_processes关于 Nginx。根据公式设置比较常见

worker_processes = num_cores * ratio

其中ratio介于 1.0 和 2.0 之间,取决于负载、硬件等。使用您的操作系统实用程序来确定是否已加载所有核心以进行调整ratio

答案2

是的,你可以在 nginx 中设置 4 个 worker,但请注意,除非你知道自己在做什么,否则请将连接数保持在最大 1024。(你可能会达到 OS 最大文件打开限制)

关于 Apache 这不是什么秘密http://httpd.apache.org/docs/2.0/mod/worker.html很多都是反复试验,因为它似乎受到 Apache 正在处理的应用程序的影响。因此,您应该从标准的东西开始,然后随着时间的推移进行调整,以了解哪种方法最适合您。这样做的目的是防止 Apache 频繁启动新服务器,另一方面是为了避免有太多空闲进程。

此外,如果你在与 apache 相同的服务器上使用 nginx,则有助于将 apache 和 nginx 的 worker 保持在 2 个以内。对于 nginx,有时设置 worker 不起作用,因此你可以定义 cpu 亲和性,参见http://wiki.nginx.org/CoreModule#worker_cpu_affinity

希望能帮助到你

相关内容