Я недавно работал с нашим пассажиром, настраивал и отслеживал наше приложение через RPM NewRelic.На прошлой неделе я заметил, что производственная версия нашего приложения перезапускается примерно раз в час (не отслеживается ровно раз в час, это кажется случайным, и происходит только в течение дня, который я могу сказать - хотя естьредко запрашивает ночью, поэтому я никогда не вижу всплывающее окно запуска).Однако другие сайты в том же окне этого не делают.
Взглянув на passenger-status
Я вижу это:
----------- 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_wrapper выглядит следующим образом:
#!/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, но если бы это происходило, я ожидал бы, что все процессы будут иметь одинаковое время безотказной работы.
Действительно довольно странно.Любая подсказка?