Назад | Перейти на главную страницу

Срез для кэша памяти?

Итак, все мои сайты размещены на Slicehost, и прямо сейчас каждое приложение размещено на отдельном участке.

Имеет ли смысл получить отдельный срез для просто memcache, и все ли мои отдельные приложения используют кеш памяти на этом фрагменте?

Какие будут минусы этого? Плюсы, которые я вижу, - это просто управление одной установкой кэша памяти и возможность оптимизировать срез специально для быстрого обслуживания кешированного файла и не беспокоиться ни о чем другом.

Если в остальном ваша установка и так хороша, тогда нет.

Как пишет temoto, Memcached был создан для работы на веб-узлах (серверах веб-приложений) при условии, что веб-узлы сильно загружены на ЦП, но имеют свободную оперативную память. Вся архитектура Memcached построена для работы на нескольких серверах; чем больше тем лучше.

Поэтому, если вам нужно запустить Memcached, вы должны запустить его на всех серверах, на которых есть свободная оперативная память. Возможно, вам также следует запускать все свои веб-приложения на всех веб-серверах (на разных портах), чтобы иметь полную мощность процессора, доступную для скачков нагрузки. (Используйте балансировщик нагрузки впереди, чтобы направлять трафик в нужные приложения на основе URL-адреса.)

Однако эту настройку будет сложнее администрировать в повседневной работе системного администратора. Вероятно, это не лучший способ масштабирования ваших приложений.

Вы не пишете, какую платформу используете. Большинство современных серверов веб-приложений имеют механизм кэширования внутри процесса. Взять посмотрите на внутрипроцессное кэширование, прежде чем переходить к сетевому кэшированию как Memcached ...

Теоретически веб-приложение потребляет много ресурсов ЦП (анализ запросов, отрисовка шаблонов) и небольшой объем памяти. Memcached - наоборот. Что делает их идеальными соседями.

Но на практике ваши приложения обычно используют какой-либо сервер базы данных, который имеет внутренний кеш и в целом лучше работает с большим объемом памяти.

Трудно дать совет для такой типичной ситуации, поскольку вы не предоставили подробностей.

  • Если вам нужно более простое обслуживание, делайте все отдельно для каждого сайта. Если что-то пойдет не так, выйдет из строя только этот единственный сайт.
  • Если вы хотите более интенсивно использовать существующие ресурсы, выделите один или два слайса для БД, а все остальные используйте для кэша памяти.
  • Было бы бессмысленно разделять срез только для memcached, потому что ЦП этой машины будет спать вечно: вы используете только память, а не циклы ЦП. Хорошо для хостера, плохо для вас.

Но прежде чем что-либо менять, сделайте глубокий анализ, выясните, где ваше текущее узкое место.