2012-01-11 1 views
2

Я принимаю приложение rails 3 на облачном VPS, используя apache пассажира, который разговаривает с memcached и redis. Для простоты предположим, что все эти службы запущены на машине.добавление памяти в рельсы 3 приложения с memcached, redis, apache пассажира

У меня есть возможность динамически добавлять больше памяти на этот сервер без перезагрузки VPS. Мне было интересно, какая лучшая практика в «рассказе» apache пассажира/memcached/redis о том, что новая память доступна для использования. Это автоматическое обнаружение этих служб? Нужно ли перезапускать мой сервер/memcached/redis для новой памяти? Надеюсь, что ...

Поблагодарили бы за любые мысли.

ответ

2

Не уверен на всех частях вашего стека, но потоки пассажира просто растут, поскольку им требуется больше памяти, и ваша коробка начнет ударять по свопу, когда закончится. Таким образом, в принципе, он все равно смотрит на вашу коробку с бесконечной памятью. В случае пассажирских потоков добавление памяти должно быть прекрасным и будет использоваться, если каждая из ваших пассажирских потоков будет расти в памяти. Но чтобы увеличить максимальное количество потоков, которые будут выполняться пассажирами, чтобы действительно использовать новую память, которую вы добавляете, вам нужно будет перезапустить apache, как это указано в вашей конфигурации httpd.

Для таких вещей, как memcached, размер кеша определяется при запуске memcached, поэтому добавление памяти не увеличивает размер memcached. То же самое касается всего, что вы настроите на максимальное использование памяти, все они, скорее всего, потребуют изменения конфигурации и перезагрузки.

+0

Хорошо, имеет смысл. Последующий вопрос - вызовет ли Rails.cache бросить исключения во время выполнения, если я выключу memcached, пока пассажир обслуживает запросы? – deruse