Я использую Amazon ElastiCache для хранения сессии и дорогостоящего кеширования операций в многоузловом веб-приложении. Один из них - я не смог учесть сетевую задержку узлов ElastiCache по сравнению с локальным сервером Memcached.Если порог «дорогой» операции меняется с инфраструктурой?
Мои тесты показывают время отклика 1-2 мс для вызовов ElastiCache в VPC AWS (как рекламируется), довольно хорошо, но явно значительно медленнее, чем что-либо локальное. С точки зрения фактических циклов вычисления 1-2ms - это время жизни. Это резко меняет то, что я могу считать «дорогой» операцией, заслуживающей кэширования.
Моя неопытность, которая привела меня по этому пути, но я бы предположил, что другие люди должны иметь подобные проблемы при переходе в «облако».
Вопрос: ли лучше пересмотреть (и переписать), что квалифицируется как «дорогой» операции, или если инфраструктура сделать лучшую работу по поддержке кода (например, я мог бы использовать локальный Memcached сервер на каждый узел и только пропускает пропуски кэша к узлу ElastiCache).
Сколько звонков в ElasticCache вы делаете в среднем для подачи одного запроса? Кроме того, по моему мнению, 1-2 мс ничего не значит, и вы не должны волноваться из-за этого в идеале. – skbly7
, вероятно, 15-20 экскавальных звонков в среднем. который может составлять около 50 мс (мое целевое время составляет 150 мс). Не имеет смысла «кэшировать» что-то, что требуется .5ms для генерации, если он собирается взять 1-2 мс, чтобы вытащить его из кеша. Но, как правило, я бы рассмотрел операцию .5ms (например, рекурсивную проверку каталога) довольно дорогостоящую операцию, достойную кэширования. Таким образом, это бросает это на бит цикла, и мой вопрос: что должно измениться, код или инфраструктура. Что делают другие люди? – jpschroeder
добавил ответ, с несколькими открытыми вопросами, мы можем обсудить это и найти лучшее решение .. :) – skbly7