Трудно сразу сказать, имея под рукой данные, но я думаю, у меня есть несколько вещей, которые вы, возможно, захотите изучить, чтобы сузить суть проблемы.
Прежде всего, показывает ли ваша статистика с мембраной значительное количество фоновых извлечений? Это в статистике веб-интерфейса для "чтения диска в секунду". Если это так, то это вероятный виновник более высоких задержек.
Подробнее о статистике и размерах можно прочитать в руководстве , в частности в разделах, посвященных статистике и вопросам проектирования кластеров.
Во-вторых, вы сообщаете в среднем 250 мс. Это скользящая средняя или в целом? У вас есть что-то вроде максимальной 90-й или максимальной 99-й задержки? Некоторые извлекаемые извлечения диска могут дать вам большое среднее значение, когда большинство запросов (например, из оперативной памяти, которые не нуждаются в извлечении дисков) на самом деле довольно быстрые.
Распределены ли ваши системы по зонам доступности? Какие примеры вы используете? Находятся ли клиенты и серверы в одном регионе Amazon AWS? Я подозреваю, что ответ может быть «да» на первый, что означает около 1,5 мс при использовании экземпляров xlarge из недавних измерений. Это может иметь значение, если вы выполняете много выборок синхронно и последовательно в данном методе.
Я ожидаю, что все это в одном регионе, но стоит проверить дважды, поскольку эти задержки звучат как задержки в глобальной сети.
Наконец, есть обновленный драгоценный камень Ruby, обратно совместимый с фауной. Couchbase, Inc. работает над тем, чтобы вернуть Фауну вверх по течению. Если возможно, вы можете попробовать гем, на который ссылаются здесь:
http://www.couchbase.org/code/couchbase/ruby/2.0.0