Назад | Перейти на главную страницу

Несколько AWS EC2 с автоматическим масштабированием и распределенным кэшем памяти

Я планирую использовать распределенный Memcache на ряде веб-серверов Linux на Amazon EC2. Эти EC2 в настоящее время используют автоматическое масштабирование, поэтому будут увеличиваться и уменьшаться с нагрузкой.

Я использовал этот пост в качестве руководства по начальной настройке.

лучшая практика с memcache / php - несколько узлов memcache

И еще одна ссылка, на которую он ссылается в ответе.

http://techgurulive.com/2009/07/22/a-brief-to-memcached-hash-types/

Я немного не уверен в том, как локальные IP-адреса AWS веб-серверов будут обновляться в списке узлов в клиентском коде Memcache по мере увеличения и уменьшения количества серверов.

В настоящее время я использую PHP PECL - Memcache на клиенте.

Кто-нибудь знает лучшую реализацию для управления этим в среде AWS?

Спасибо заранее за любые предложения.

Дэйв

Похоже, вы разрабатываете довольно большую систему, способную справиться с небольшой нагрузкой. Если это так, вы, вероятно, захотите иметь отдельные экземпляры для Memcache и веб-узлов, поскольку их характеристики производительности сильно различаются. Разделив два, вы можете использовать тип экземпляра больше подходит каждому.

В обычных условиях Memcache почти не использует ЦП, поэтому имеет смысл использовать экземпляр с высокой памятью. Точно так же веб-серверы обычно интенсивно используют процессор. Используйте для них экземпляры с высоким ЦП.

Имейте в виду, что сам memcached очень прост. Он сидит и ждет команды, говорящей «достань мне этот ключ» или «установите для этого ключа это значение» (есть несколько других, но это основы). Любое хеширование и т. Д. Выполняется исключительно в клиентской библиотеке memcached.

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

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