Я работаю с приложением Rails 3RC и впервые с помощью Phusion Passenger. Она занимает около 30 секунд, чтобы запустить приложение на первый запрос, и вот типичное потребление памяти для каждого процесса рубина в моем приложении:Проблемы с нерезидентом Phusion Passenger
PID VMSize Private Имя
18161 263.5 MB 75.4 MB Rack:/rails_apps/my_app/current
Это обычное потребление памяти? Мое приложение составляет около 11 МБ (< 4 МБ, если вы не включаете мои/публичные активы).
Он работает отлично после первого запроса, если есть один пользователь, но я столкнулся с проблемами при запуске некоторых из моих собственных сценариев стресс-тестирования, а также когда я использую функцию поиска предложений, которая создает кучу быстрых вызовов ajax (чего я ожидал, потому что следующий запрос доходит до первого завершения). Вот что я нахожу странным .. на сервере начинается нерестование потоков Ruby, которые загружаются еще на 30 секунд, но никакие другие запросы не могут пройти через время нереста. Просто, чтобы дважды проверить, я тестировал браузеры в других сетях, пока процессы не создавались, чтобы убедиться, что это не что-то специфическое для моей локальной машины (как и все запросы, которые подаются от одного процесса). Эти запросы браузера должны были дождаться завершения всех новых спавнов.
Так что мой вопрос ... это типичное поведение Пассажира? Ожидание нереста перед любым другим запросом может пройти? От взгляда на документацию я бы подумал, что другой запрос будет обрабатываться бездействующими рубиновыми процессами, пока происходит нереста. Вот версии, которые я использую, если вы, ребята, знаете какие-либо несовместимости. Заранее спасибо! Я действительно не хочу, чтобы вернуться к Mongrel ;-)
мой установки
четверть ломтика Rackspace Cloud (4 Гб RAM & 1/4 двойного четырехъядерных)
CentOS 5.4
Rails 3.0RC
рубинового 1.9.2dev (2010-05-31 редакция 28117) [x86_64-Linux]
Пассажир 2.2.15 с беспородных
опции конфигурации Nginx:
passenger_max_pool_size 30;
пассажирское соединение; #in/location block.
Я пробовал консервативный нереститься, и я наблюдаю то же поведение.
Я предполагаю, что это ожидаемое поведение Пассажира. Согласно блогу Пассажира: «Раньше, когда возникали процессы приложений, Phusion Passenger не может обрабатывать HTTP-запросы до тех пор, пока процессы не будут созданы, потому что Phusion Passenger удерживает блокировку в пуле приложений, пока это происходит». Мне трудно поверить, что Пассажир может быть использован в приложении с высоким трафиком. Приложение сможет реагировать после перезагрузки. Помимо этого пассажир выглядит хорошо .. с нетерпением жду v3. Догадываюсь, что я должен придерживаться w/mongrel на данный момент. – johnmcaliley