PassengerMaxInstancesPerApp似乎不起作用

时间:2012-01-14 04:07:01

标签: ruby-on-rails passenger

我在DreamHost VPS上有我的rails应用程序。 默认情况下,它具有以下设置。

<IfModule mod_passenger.c>
RailsAutoDetect off
RackAutoDetect off
PassengerMaxPoolSize 4
PassengerPoolIdleTime 1200
RailsAppSpawnerIdleTime 3600
PassengerMaxInstancesPerApp 2
PassengerRoot /dh/passenger
PassengerRuby /usr/bin/ruby1.8
</IfModule>

如您所见,PassengerMaxInstancesPerApp为2,这意味着当多个请求到达时,2个rails实例将响应。

但是,我的测试显示了不同的结果。

我创建了以下2个测试页面。

  1. http://mis.digitalpowr.com/sandbox/door/hello#=&gt;输出文本'Hello'
  2. http://mis.digitalpowr.com/sandbox/door/long_process#=&gt;睡30秒并输出'完成'
  3. 如果我拨打[1],它会立即响应。如果我立即调用[2]和[1],[1]会等到[2]结束。这违背了我的期望。如果同时发出2个请求,则应运行2个实例。为什么要等到另一个响应结束?

    感谢。

    萨姆

1 个答案:

答案 0 :(得分:1)

现在,我弄清楚它为什么会发生。

乘客身份显示所有4名乘客被分配到4个申请。 因此具体应用只能有1个乘客实例。

我会要求DreamHost调整最大池大小。