如何在nginx中优化worker_processes和worker_connections?

时间:2014-05-24 17:40:46

标签: amazon-web-services nginx aws-opsworks

我想优化EC2实例中的nginx配置。目标是在rails / unicorn应用程序中提供尽可能多的并发用户请求

实例规范

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 个答案:

答案 0 :(得分:2)

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

  1. Nginx工作进程=核心数

  2. Nginx worker connections =一个非常高的数字(10000+)。这取决于您的保持活动时间,但如果您需要,可以使用大量连接。

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

  4. 有点难以理解您在EC2实例上实际访问了多少个核心,因此在进行此操作时,它会进行一些基于试验和错误的调整。