Memcached на EC2

Прав ли я, думая, что пока я не смогу позволить себе выделенные серверы или запасные серверы, я смогу успешно запустить небольшое количество memcached-серверов через EC2?

Как вы думаете, с учетом анонса нового автоматического масштабирования и балансировки нагрузки от Amazon сегодня, ребята, это будет жизнеспособным вариантом?

И какие основные технические шаги вы бы порекомендовали мне предпринять?

Спасибо

В настоящее время у меня есть один выделенный сервер и нет серверов memcached. Я хочу использовать возможности EC2 для настройки нескольких экземпляров и запуска таких серверов memcached. Это моя текущая установка.


person James    schedule 18.05.2009    source источник
comment
Не могли бы вы немного рассказать о том, что у вас есть сейчас?   -  person jacobangel    schedule 18.05.2009


Ответы (5)


  • Балансировка нагрузки не имеет ничего общего с Memcached — он использует хеш-алгоритм для подключения к серверам.
  • Я настоятельно рекомендую не использовать автомасштабирование с Memcached — добавление серверов нарушает алгоритм хэширования и делает ваш кеш недействительным. Данные пропадут, и вам придется заново их кэшировать.
  • Вы захотите проверить задержку от ваших серверов до EC2 — если она превышает 50 мс, вы значительно снизите свою производительность. Ну, я бы предположил во всяком случае.

Вы можете получить несколько ключей (см. здесь) одним запросом на уменьшите эффект задержки, но вы все равно получите первоначальный удар. И это также означает, что вам нужно знать все ключи, которые вы собираетесь получить, прежде чем звонить. В противном случае каждый запрос добавляет 50 мс (или более) ко времени выполнения вашего скрипта.

Рассмотрим данные, которые вы пытаетесь кэшировать. Достаточно ли велика 64-мегабайтная пластина, чтобы помочь вам? Вероятно, вы можете запустить его на своих основных серверах.

person Gary Richardson    schedule 19.05.2009
comment
Вау, большое спасибо, что сообщили мне о проблеме с автомасштабированием. Я обязательно приму это во внимание. Могу я спросить, как я могу получить несколько ключей с помощью PHP? - person James; 19.05.2009
comment
Я добавил ссылку на один метод с использованием библиотеки Memcached. Все библиотеки должны его поддерживать. - person Gary Richardson; 19.05.2009

Чтобы по-настоящему воспользоваться преимуществами memcached, вам нужно, чтобы ваш memcache взаимодействовал с вашим кодом как можно быстрее. Возможно, вы захотите выяснить, какая у вас будет задержка между серверами EC2 и вашим собственным.

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

Кроме того, если вы не используете механизм кэширования объектов php, такой как APC или Eaccelerator, это также поможет.

person jacobangel    schedule 18.05.2009
comment
Nitpick: Я думаю, вы имели в виду механизм кэширования кодов операций; хотя APC и eAccelerator также поставляются с простым кэшем объектов, кэширование кода операции — это то, для чего они обычно устанавливаются. - person Rob; 19.05.2009
comment
Тогда я рассмотрю возможность покупки большего количества памяти для моей нынешней машины. Как вы думаете, будет ли работать, скажем, 2 ГБ memcached на моей машине, а затем пара дополнительных серверов amazon? - person James; 19.05.2009
comment
Это зависит от цели, которую вы пытаетесь поразить. Memcached — одна из тех вещей, которые нужно установить и настроить. Поскольку вы используете один выделенный сервер с 512 МБ, возможно, одних 2 ГБ может быть более чем достаточно. Я бы попробовал инстанс на 2 ГБ, посмотрел, куда это вас приведет, а затем рассмотрю сервис e2, если этого недостаточно. - person jacobangel; 19.05.2009

Недавно AWS выпустила новый веб-сервис — Amazon ElasticCache. Эта служба представляет собой жалобу на протокол с Memcached.

Для получения дополнительной информации см.: http://aws.amazon.com/elasticache/

person RoYo    schedule 07.10.2011
comment
ElasticCache — это, по сути, memcached, работающий на экземпляре. Сэкономьте деньги и запустите его сами... memcache прост в установке. - person Mark Rose; 23.12.2011
comment
Я не понимаю, насколько просто установить memcache... Я пытался установить его в течение 3 часов. Совсем не просто. Может быть, как только вы это поймете, вам будет легко, но не просто... - person Jake; 28.06.2012

Сколько свободной памяти у вас обычно есть на вашем текущем компьютере? Не могли бы вы просто настроить там экземпляр memcached? Я думаю, что возможно задержка/накладные расходы/и т.д. от наличия удаленных кешей такова, что вы сведете на нет все преимущества, но, возможно, это не так.

person Rob    schedule 18.05.2009
comment
Текущая коробка имеет около 512 МБ в настоящее время. Мне не нравится запускать на нем экземпляр memcached, и я думаю, что при внезапном всплеске большого использования экземпляр на моей текущей машине довольно быстро заполнится. - person James; 18.05.2009
comment
кивнуть - вы не указали коробку, которая у вас была. - person Rob; 19.05.2009

В общем: если вы хотите использовать какой-либо механизм кэширования, имеет смысл располагать ваши серверы ОЧЕНЬ БЛИЗКО к вашим серверам кэширования. Пример: серверы баз данных и серверы Memcached должны находиться в одном месте или в одном «регионе» AWS. Если вы пытаетесь использовать систему кэширования, это потому, что вы хотите повысить производительность. Если вы поместите систему кэширования подальше от своих серверов, вы в основном потеряете все преимущества.

Лучший,

person Simone Brunozzi    schedule 04.08.2011