Мне интересно, может ли кто-нибудь сообщить мне о правильном поведении приложения Rails, работающего через Rack / Passenger, поскольку я наблюдаю необычное поведение в производственной системе, которая никогда не работала должным образом.
Насколько я понимаю, Passenger создаст экземпляры Rack для удовлетворения спроса на веб-приложение. У меня проблема в том, что процессы Passenger и Rack исчезают через несколько минут работы. В этом случае следующий запрос перезапустит и пассажир, и стойку, но это может занять более 10 секунд.
Когда я смотрю на список процессов, я вижу, что когда все работает хорошо, у меня есть хотя бы один экземпляр «Rack: / my_application». У меня также работает "Passenger ApplicationSpawner".
ApplicationSpawner, кажется, исчезает примерно через 10 минут, и экземпляры Rack иногда также исчезают. Иногда у меня нет процессов Rack или ApplicationSpawner, поэтому следующий запрос занимает много времени.
Есть идеи, как это исправить?
Это намеренное (и даже, как некоторые говорят, желаемое) поведение со стороны пассажира. Ему нравится сокращать неиспользуемые рабочие серверы приложений, чтобы оперативная память была доступна для других вещей, если это необходимо. Вы можете настроить поведение пассажира с помощью PassengerMinInstances
и / или PassengerPoolIdleTime
.