Nginx 和 Passenger - 连接到上游时失败(11:资源暂时不可用)

Nginx 和 Passenger - 连接到上游时失败(11:资源暂时不可用)

我有一个 Nginx 和 Passenger 设置,但存在问题。

在相对较低的负载下,服务器似乎会备份并开始将如下结果搅入 error.log 中:

connect() to unix:/passenger_helper_server failed 
(11: Resource temporarily unavailable) while connecting to upstream

我的乘客设置是:

passenger_min_instances 2;
passenger_pool_idle_time 1200;
passenger_max_pool_size 20;

我做了一些调查,发现 CPU 似乎已经饱和。内存使用情况似乎不错,passenger_memory_stats 显示最多使用了 700MB,但 CPU 接近 100%。

这足以导致这种类型的错误吗?

我应该减小池大小吗?我还应该查看其他配置设置吗?

任何帮助表示感谢

其他相关信息:

  • Amazon EC2 小型实例
  • Ubuntu 10.10
  • Nginx(最新稳定版本)
  • 乘客 (最新稳定版)
  • Rails 3.0.4

答案1

free -m当 CPU 接近 100% 并查看 EC2 小型实例的规格时,我感觉您的机器正在交换。启动服务器时查看输出,然后在进行负载测试时观察它。

摘自 Phusion Passenger 的文档

数字越大,内存使用量越大,但可以提高处理并发 HTTP 请求的能力。

您真的需要处理大量并发请求吗?如果是这样,您可能应该投资购买更大的 EC2 实例,然后调高您的passenger_max_pool_size。我怀疑您需要的不仅仅是乘客用那台小机器提供的 6 个默认请求。

相关内容