Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在特定乘客流程上奇数重新启动_Ruby On Rails_Passenger - Fatal编程技术网

Ruby on rails 在特定乘客流程上奇数重新启动

Ruby on rails 在特定乘客流程上奇数重新启动,ruby-on-rails,passenger,Ruby On Rails,Passenger,我最近一直在使用我们的乘客设置,并通过NewRelic的RPM监控我们的应用程序。截至上周,我注意到我们的应用程序的生产版本大约每小时重启一次(并不是精确到每小时重启一次,这似乎是随机的,而且只发生在白天,我能分辨出来——尽管晚上很少有请求,所以我从来没有看到启动的光点)。但是,同一框中的其他站点没有 查看乘客状态我看到: ----------- Domains ----------- /web/marketing/current: PID: 2897 Sessions: 0

我最近一直在使用我们的乘客设置,并通过NewRelic的RPM监控我们的应用程序。截至上周,我注意到我们的应用程序的生产版本大约每小时重启一次(并不是精确到每小时重启一次,这似乎是随机的,而且只发生在白天,我能分辨出来——尽管晚上很少有请求,所以我从来没有看到启动的光点)。但是,同一框中的其他站点没有

查看
乘客状态
我看到:

----------- Domains -----------
/web/marketing/current: 
  PID: 2897    Sessions: 0    Processed: 178     Uptime: 22h 35m 58s

/web/demo/current: 
  PID: 11664   Sessions: 0    Processed: 58      Uptime: 17h 14m 59s
  PID: 11026   Sessions: 0    Processed: 20      Uptime: 17h 50m 21s

/web/production/current: 
  PID: 20103   Sessions: 0    Processed: 12      Uptime: 9m 49s
  PID: 20107   Sessions: 0    Processed: 3       Uptime: 9m 49s
  PID: 20099   Sessions: 0    Processed: 20      Uptime: 9m 49s
  PID: 20032   Sessions: 0    Processed: 20      Uptime: 11m 46s
  PID: 20105   Sessions: 0    Processed: 17      Uptime: 9m 49s
  PID: 20101   Sessions: 0    Processed: 2       Uptime: 9m 49s
  PID: 20110   Sessions: 0    Processed: 1       Uptime: 9m 43s
我们的乘客设置目前为:

PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.15
PassengerRuby /usr/local/bin/ruby_gc_wrapper

PassengerMaxPoolSize 20
PassengerUseGlobalQueue on
PassengerStatThrottleRate 120
PassengerPoolIdleTime 0

RailsSpawnMethod smart
RailsFrameworkSpawnerIdleTime 0
RailsAppSpawnerIdleTime 0
ruby_gc_包装看起来像:

#!/bin/sh

# wrap ruby with gc tuning parameters

export RUBY_HEAP_MIN_SLOTS=500000
export RUBY_HEAP_SLOTS_INCREMENT=250000
export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
export RUBY_GC_MALLOC_LIMIT=50000000
export RUBY_HEAP_FREE_MIN=4096
exec "/usr/local/bin/ruby" "$@"
据我所知,
passengerpolidletime 0
应该可以防止应用程序超时。据我所知,演示实例和生产实例之间唯一的区别是prod-one的调用频率要高出很多。然而,我并没有在任何地方设置
PassengerMaxRequests
,所以我不明白为什么它会突然像这样重新启动。我查看了logrotate、monit和其他程序,看看是否有任何外部进程干扰apache2,但如果发生这种情况,我希望所有进程都具有相同的正常运行时间


真的很奇怪。有什么线索吗?

仔细检查后,重新启动比我最初想象的要规律得多。虽然他们被固定在一个特定的时间,但在过去的3小时里,他们通常相隔1小时左右,一小时后大约15分钟。结果有一样东西在那个盒子上每小时15点后运行:厨师


现在令人困惑的是,为什么它只会重新启动其中一个应用程序,而不是所有应用程序。我仍然不知道,但有可能。不管是哪种方式,禁用chef自动运行(无论如何我不希望在生产环境中这样做),现在我的实例可以运行5个小时,而且响应时间很短。漂亮。

还选中了tmp中的restart.txt。自从上次部署后就没有被碰过。