Вообще говоря, Passenger порождает новые процессы путем разветвления ApplicationSpawner, в котором предварительно загружена в память инфраструктура и код приложения, или FrameworkSpawner, в котором только есть код платформы.
Пассажир, насколько я знаю, не занимается потоками. Вместо этого, по мере увеличения нагрузки на приложение, оно будет разветвлять ApplicationSpawner этого приложения и инициализировать другой экземпляр. Когда нагрузка уменьшается, один или несколько экземпляров приложения уничтожаются.
Если Passenger настроен определенным образом (я полагаю, выбрав «умный» метод порождения), он создаст FrameworkSpawner, который загружает код рельсов, но не код приложения, который затем можно разложить для загрузки и приложения. используя эту версию Rails.
Итак, чтобы ответить на ваши вопросы:
Он будет обслуживать их последовательно, а затем запускать дополнительные процессы, если решит, что нагрузка достаточно высока.
Нет. Один процесс может принадлежать только одному Rails-приложению.
Я немного отрывочен, но ваш эксперимент имеет смысл. Пассажир должен быть достаточно умен, чтобы понять, что, несмотря на то, что он работает из разных мест в конфигурации сервера, вы говорите об одном и том же приложении. Вероятно, он основан на пути к файловой системе приложения.
РЕДАКТИРОВАТЬ: Я пошел и прочитал об этом немного. Оказывается, я был в основном прав, но технические детали были немного не в порядке. См. Пассажирская документация