Se você tem um aplicativo da web Ruby, que pode ser usado ocasionalmente e você usa o Passenger / Nginx para servi-lo, pode descobrir que às vezes espera muito pela resposta dele.
Acontece quando ninguém usou o aplicativo por algum tempo – o passageiro o mata para liberar memória. Portanto, toda vez que qualquer usuário abre este aplicativo web após um longo tempo, ele deve esperar até que o aplicativo seja iniciado. 10-15 segundos para mim (e ainda mais conforme os usuários relataram). É compreensível do ponto de vista de desempenho, mas muito irritante em nosso caso.
Portanto, para superar isso, devemos definir algumas opções no Passenger.
O passageiro tem documentos enormes – http://www.modrails.com/documentation/Users%20guide%20Nginx.html#PassengerPoolIdleTime
Doc para v3 até agora, usávamos 2.7, então um pouco diferente (nginx.conf):
rails_spawn_method smart; #deprecated in 3.0, use passenger_spawn_method
rails_app_spawner_idle_time 0;
rails_framework_spawner_idle_time 0;
passenger_pool_idle_time 0;
E saiba que nosso aplicativo nunca descarregou.
Outro sobre isso:
http://stackoverflow.com/questions/853532/slow-initial-server-startup-when-using-phusion-passenger-and-rails
Mas ninguém ali aconselhou a definir o tempo ocioso do pool para 0, o que eu achei necessário para resolver o problema.