Кластер Amazon elasticache выглядит действительно хорошим выбором для автоматического масштабирования, но кажется, что распределение нагрузки между узлами неравномерно.
Как память, так и процессор, узел 1, кажется, потребляет почти вдвое больше ресурсов, чем другие узлы. Это часто приводит к увеличению времени отклика в часы пик, даже когда большинство других узлов работают идеально.
Я использую экземпляры r3.2x (8 процессоров, 60 ГБ памяти)
У кого-нибудь такая же проблема? Что может быть причиной такого поведения (в elasticache или в моем модуле memcache)? Со своей стороны я использую хеширование с согласованным распределением (алгоритм Ketama). Есть ли лучшая альтернатива?
Если у вас есть один единственный элемент кэша (или очень мало элементов), который используется гораздо чаще, чем любой другой элемент, вы увидите такое поведение неравномерного распределения нагрузки.
Вы должны проверить свое приложение на наличие таких элементов кеша. Возможно, вы сможете записывать все запросы кэша памяти, чтобы найти эти элементы. После того, как вы определили такой элемент, вам нужно подумать о том, как разделить и распределить вызовы этого элемента на многие элементы.
Я считаю, что для такого рода проблем нет единого решения, потому что это зависит от логики приложения, количества операций чтения и записи и т. Д.