首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在特定的passenger进程上进行Odd重新启动

在特定的passenger进程上进行Odd重新启动
EN

Stack Overflow用户
提问于 2010-09-23 21:41:44
回答 1查看 270关注 0票数 1

我最近一直在使用我们的乘客设置,并通过NewRelic的RPM监控我们的应用程序。截至上周,我注意到我们的应用程序的生产版本大约每小时重启一次(并不精确到每小时重启一次,它看起来是随机的,而且只发生在白天,我可以判断-尽管晚上很少有请求,所以我从来没有看到启动的闪光点)。然而,同一台机器上的其他网站却不这样做。

看一看passenger-status,我看到了这个:

代码语言:javascript
复制
----------- 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

我们的乘客设置目前是:

代码语言:javascript
复制
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_wrapper看起来像这样:

代码语言:javascript
复制
#!/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" "$@"

据我所知,PassengerPoolIdleTime 0应该可以防止应用程序超时。据我所知,演示实例和生产实例之间的唯一区别是调用prod实例的频率要高得多。然而,我没有在任何地方设置PassengerMaxRequests,所以我很困惑为什么它会突然像这样重启。我已经查看了logrotate、monit和其他进程,以查看是否有任何外部进程扰乱了apache2,但如果发生这种情况,我希望所有进程都有相同的正常运行时间。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-24 04:01:03

在仔细检查之后,重新启动比我最初想象的要规则得多。虽然它们与特定的时间挂钩,但在过去的3小时内,它们通常相隔1小时左右,在一小时后的15分钟左右。原来在那个盒子上有一样东西会在一小时后运行15分钟:厨师。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3778961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档