如何优化 nginx 中的 worker_processes 和 worker_connections?

Posted

技术标签:

【中文标题】如何优化 nginx 中的 worker_processes 和 worker_connections?【英文标题】:How to optimize worker_processes and worker_connections in nginx? 【发布时间】:2014-07-13 22:02:58 【问题描述】:

我想优化 EC2 实例中的 nginx 配置。目标是在 rails / unicorn app(s) 中为尽可能多的并发用户请求提供服务

实例规格

vCPU(s):  2 
ECU:      6.5 
MEMORY:   17.1 GB

当前配置:

worker_processes = 4
worker_connections = 12288

监控工具报告:

Memory usage: Around 80%
CPU usage: Around 20%

在当前可用的 CPU 和内存的情况下,是否有可能在 nginx 中实现更好的性能? 提前致谢。

【问题讨论】:

【参考方案1】:

对于 nginx + unicorn 设置,我倾向于遵循的一般经验法则如下:

    Nginx 工作进程 = 内核数

    Nginx 工作程序连接 = 一个非常高的数字 (10000+)。这取决于您的存活时间,但如果您需要,拥有大量可用连接是有意义的。

    Unicorn 工作进程:最小值是核心数。如果进程相对轻量级(留出大量可用 RAM),我倾向于增加此值。

要了解您在 EC2 实例上实际可以访问多少个内核有点困难,因此在这方面需要更多基于反复试验的调整。

【讨论】:

谢谢,我必须采用试错法。问候

以上是关于如何优化 nginx 中的 worker_processes 和 worker_connections?的主要内容,如果未能解决你的问题,请参考以下文章

如何始终重定向到 Nginx Docker 中的 index.html?

Nginx高可用

Nginx四层反向代理

Nginx四层反向代理

win上配置nginx

如何优化 nginx 中的 worker_processes 和 worker_connections?