Запущение Приложения Ruby on Rails на Apache + Пассажир == к большой памяти

В обсуждении StackOverflow Вы упомянули, что это работает при выполнении его как автономного приложения C#, но не при выполнении его как веб-приложения.

Это имеет смысл. При выполнении его как автономного приложения C# это работает с идентификационными данными. При выполнении его через веб-приложение это выполняет использование безотносительно идентификационных данных, которые Вы настроили для анонимных веб-запросов под IIS, в этом случае, который считают ASPNET локальной рабочей станции.

В зависимости от ситуации с безопасностью Вы любой хочет

(1) настройте локальный веб-сервер так, чтобы то приложение служило анонимным веб-запросам с помощью другой учетной записи, та, которая имеет соответствующие полномочия на сервере, или

(2) настройте локальный веб-сервер для не разрешения анонимных веб-запросов. Необходимо будет войти в систему веб-страницы через веб-браузер с помощью пароля имени пользователя, связанного с учетной записью, которая имеет соответствующие полномочия на сервере

4
задан 30 May 2009 в 06:26
5 ответов

Можно настроить, сколько направляющих обрабатывает икру Apache/пассажира. Для Вашего размера (3 параллельных запроса) необходимо согласиться с 2 процессами направляющих:

Установите их в своей апачской конфигурации:

PassengerMaxPoolSize 2
PassengerMaxInstancesPerApp 2

MaxPoolSize определяет, сколько экземпляров может быть запущено максимально, MaxInstancesPerApp определяет, сколько экземпляров каждое веб-приложение может иметь.

Вы могли бы хотеть играть с:

PassengerPoolIdleTime 

указывать, сколько секунд экземпляр должно быть неактивным, прежде чем он будет разгружен. Значение по умолчанию составляет 300 секунд.

Я запускаю веб-приложение довольно интенсивного трафика с 3 экземплярами без любых проблем.

О, и - Ruby Enterprise Edition помогает также.

6
ответ дан 3 December 2019 в 02:42
  • 1
    А-ч благодарит и извините я didn' t видят Ваш ответ до сих пор. Я просто попробовал те настройки и их didn' t имеют любое значение, я думаю, что у меня только есть 2 экземпляра, работающие так или иначе (см. выше). –  Rich 2 June 2009 в 17:45
  • 2
    Другая вещь знать: 512 МБ isn' t так много памяти и RedMine мог пропускать память. ' regular' приложение для направляющих должно использовать между экземпляром 30 - 60 МБ за сервер приложений. 128 МБ doesn' t звучат слишком плохими для 2 экземпляров все же. –  jcfischer 3 June 2009 в 02:08
  • 3
    Хорошо, спасибо за сравнение. Я знаю it' s не справедливый для сравнения, но I' m просто не привыкший к моим собственным приложениям (Python), израсходовавший почти столько же памяти. Я предполагаю, что Ruby загружает все в память? Я думаю I' ll дают этому рубиновому предприятию движение и вероятно полукровок также. –  Rich 3 June 2009 в 10:39
  • 4
    Вы загружаете стек Rails в память - и that' s тот, который использует много... –  jcfischer 4 June 2009 в 10:00

Вы используете рубиновое предприятие? http://www.rubyenterpriseedition.com/

2
ответ дан 3 December 2019 в 02:42
  • 1
    Спасибо - который похож на хороший совет. На 33% меньше памяти isn' t, чтобы пренебречься, но я вид чувства это it' s использующий как 10x столько же памяти сколько trac? Конечно, Ruby isn' t настолько жадный с памятью?? –  Rich 30 May 2009 в 17:41

Любой Ruby использования Enterprise Edition (рекомендуемый с Пассажиром) или Ruby 1.9 использования, который является также загрузками быстрее.

1
ответ дан 3 December 2019 в 02:42

Сколько параллельных запросов необходимо поддерживать? Я использовал бы nginx и небольшой кластер полукровок. Таким образом, можно ограничить сумму ресурса рубиновое использование приложения.

1
ответ дан 3 December 2019 в 02:42
  • 1
    What' s nginx добрался, чтобы сделать с ним? ясно Вы пропустили ту часть моего вопроса :-) –  Rich 30 May 2009 в 17:38
  • 2
    Относительно параллельных запросов - 3 самое большее. Это - ' teamware' для маленького проекта. –  Rich 30 May 2009 в 17:42
  • 3
    Doesn' t пассажир порождают рубиновый процесс в апачском рабочем? I' m не уверенный, но это это верно затем you' ре, говорящее об огромном объеме памяти, прикрепляемом внутренние апачские рабочие (да, частью его будет CoW, но однажды направляющие VM делает свое первое, собирают "мусор", это won' t больше применяются), –  Dave Cheney 30 May 2009 в 17:49
  • 4
    Так, mongreals альтернатива пассажиру? И я могу использовать их с Apache? Извините, но I' m абсолютно неосведомленный когда дело доходит до Ruby :-) спасибо очень много. –  Rich 1 June 2009 в 04:25
  • 5
    > Doesn' t пассажир порождают рубиновый процесс в апачском рабочем? BTW: это объяснило бы, почему процессы Apache являются настолько большими. –  Rich 1 June 2009 в 04:26

Я имел больше успеха, работающего mongrels/mongrel_cluster с апачским proxypass для redmine. Не требуется так много производительности (они - набор очень больших/медленных процессов и склонны называть внешние процессы вдобавок ко всему Вы могли бы хотеть попробовать его в ситуации со сравнительным тестом и видеть. Это было также очень просто для меня для установки.

0
ответ дан 3 December 2019 в 02:42

Теги

Похожие вопросы