2012-07-04 4 views
5

Я использую RDS на амазонке с интерфейсом MySQL. Мое приложение работает на узлах EC2 и читает/обновляет базу данных, но количество чтения и записи слишком велико и снижает производительность. В большинстве случаев количество подключений превышает допустимый предел. Я рассматривал возможность использования Elasticache для повышения производительности, однако я не нашел ресурсов в Интернете, как настроить базу данных, чтобы эффективно использовать ее. Является ли это лучшим способом улучшить производительность чтения/записи? Любые предложения?Использование ElastiCache с RDS для улучшения производительности чтения/записи

ответ

6

Вы не можете просто «включить» memcache. Вам необходимо написать код, который взаимодействует с memcache, так что результаты запроса к базе данных будут кэшироваться в memcache. Посмотрите на это руководство пользователей - Я думаю, что это даст вам хорошее представление о том, как Memcache используется:

http://www.memcachier.com/documentation/memcache-user-guide/

0

Производительность связана с типом и структурой запросов, используемых, так что может быть некоторые возможности для оптимизации. Возможно, вы можете предоставить более подробную информацию о точных запросах. Тем не менее, вы могли бы решить эту проблему под другим углом - если бы у вас была возможность автоматического масштабирования, вы могли бы просто увеличить свою базу данных до дополнительных машин, если это необходимо, чтобы вы могли разместить бесконечное количество соединений даже без какой-либо оптимизации производительности (конечно, если вы его оптимизируете, это улучшит производительность). Это невозможно в RDS, но есть, по крайней мере, два других провайдера облачных БД, работающих на EC2, о которых я знаю, какие предлагают автоматическое масштабирование - www.xeround.com и www.enterprisedb.com.

+0

www.xenround.com еще находится в бета-фазе. – spideringweb

0

Вы можете использовать эластик как кеш второго уровня для своего rds db. Если вы используете java, вы можете использовать библиотеку hibernate-memcached. Но вам все равно нужно настроить, как и что кэшировать в кэше второго уровня, в зависимости от ваших данных.

Кроме того, вы могли бы использовать read replica на RDS меньше, чтобы получить разделение трафика чтения.

(Какой тип экземпляра вы используете, вы увидели, что они имеют разные я/о мощности?)

Смежные вопросы