Обслуживание нескольких приложений Rails через один экземпляр интерпретатора ruby - PullRequest
0 голосов
/ 29 ноября 2009

Учитывая, что каждому приложению Ruby-On-Rails требуется как минимум около 40 МБ памяти, мне было интересно, существует ли способ запуска нескольких экземпляров rails-приложения (разных) через один интерпретатор Ruby, чтобы все общие библиотеки ( rmagick и т. д.) распределяются между различными экземплярами приложения, экономя место.

Если бы это было возможно, то я мог бы запускать приложения 5-6 rails на одном виртуальном сервере 256RAM.

Это возможно?

Ответы [ 2 ]

0 голосов
/ 16 июня 2014

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

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

0 голосов
/ 30 ноября 2009

Я не думаю, что это возможно без существенного изменения текущей базы кода.

Но еще не все потеряно.

Если на этих сайтах достаточно низкий трафик и у вас быстрый VPS, вы должны иметь в виду, что мод-пассажир удаляет экземпляры из памяти, если они какое-то время неактивны. Таким образом, теоретически вы можете запускать неограниченное количество приложений, если у вас есть только несколько активных одновременно. Цена является более медленным ответом на первый запрос, который загружает экземпляр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...