Memcached - это то, что вы используете, когда уверены, что вам нужно. Вам не нужно беспокоиться о том, что он слишком загружен памятью, потому что, оценивая его, вы учитываете стоимость выделенных блоков, на которых вы собираетесь его развернуть.
В большинстве случаев размещение memcached на общем компьютере - пустая трата времени, поскольку его память лучше использовать для кэширования, чем бы он ни занимался.
Преимущество memcached заключается в том, что вы можете использовать его в качестве общего кэша между многими машинами, что увеличивает частоту обращений. Более того, вы можете иметь размер и производительность кеша выше, чем может дать один блок, так как вы можете (и обычно) развертываете несколько блоков (для каждого географического местоположения).
Кроме того, способ, которым обычно используется memcached, зависит от ссылки с низкой задержкой от серверов вашего приложения; таким образом, вы не будете обычно использовать один и тот же кластер memcached в разных географических точках внутри вашей инфраструктуры (каждый DC будет иметь свой собственный кластер)
Процесс:
- Определение проблем с производительностью
- Решите, какого улучшения производительности достаточно
- Воспроизведите проблемы в своей тестовой лаборатории на оборудовании промышленного уровня с необходимыми драйверами - это нетривиально, и вам может потребоваться много специального (даже специализированного) оборудования, чтобы достаточно жестко управлять вашим приложением.
- Проверка предложенного решения
- Если это работает, выпустите его в производство, если нет, попробуйте больше опций и начните снова.
Не стоит
- Кеш "всё"
- Делайте вещи, не измеряя их фактическое влияние.
Поскольку ваша среда тестирования производительности никогда не будет идеальной, у вас должно быть достаточно инструментов / мониторинга, чтобы вы могли измерить производительность и профилировать ваше приложение в ПРОИЗВОДСТВЕ.
Это также означает, что каждая вещь, которую вы кэшируете, должна иметь счетчик попаданий / промахов. Вы можете использовать это, чтобы определить, когда кэш тратится впустую. Если кэш имеет низкую частоту обращений (скажем, <90%), то это, вероятно, не стоит. </p>
Может также стоить иметь отдельные кэши, которые можно переключать на производстве.
Помните: ОПТИМИЗАЦИЯ ВХОДИТ В ФУНКЦИОНАЛЬНЫЕ ОШИБКИ. Сделайте как можно меньше оптимизаций и убедитесь, что они необходимы и эффективны.