Nginx和乘客 – 连接上游时失败(11:资源暂时不可用)

我有一个Nginx和Passenger的设置,certificate是有问题的。

在相对较低的负载下,服务器似乎得到了备份,并开始搅动结果,如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%。

这足以造成这种types的错误?

我应该把游泳池的尺寸缩小一些吗? 是否有其他configuration设置我应该看?

任何帮助赞赏

其他相关信息:

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

随着CPU接近100%,看着EC2小实例的规格,这听起来像你的机器交换。 在启动服务器的同时查看free -m的输出,然后在进行一些负载testing时观察它。

从Phusion Passenger的文档

数量越大,内存使用率越高,但是处理并发HTTP请求的能力也会提高。

你真的需要处理很多并发请求吗? 如果是这样,你可能应该投资一个更大的EC2实例,然后调高你的passenger_max_pool_size 。 它怀疑你将需要超过乘客提供的那个小机器的默认值6。