如何优化 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?的主要内容,如果未能解决你的问题,请参考以下文章