Самый быстрый Smarty Cache Handler - PullRequest
1 голос
/ 21 марта 2010

Кто-нибудь знает, есть ли обзор производительности различных обработчиков кеша для smarty?

Я сравнил смарт-кэш файлов с обработчиком memcache, но казалось, что memcache отрицательно влияет на производительность.

Я подумал, что будет более быстрый способ кеширования, чем через файловую систему ... я не прав?

Ответы [ 2 ]

1 голос
/ 05 января 2012

Кэширование файлов в порядке, если у вас есть один экземпляр сервера или вы используете общий диск (NFS) в кластере серверов, но если у вас есть кластер веб-серверов (два или более веб-сервера, обслуживающие один и тот же контент), проблема с файломна основе кэширования не синхронизируется между веб-серверами.Выполнение простого rsync в каталогах кэширования подвержено ошибкам.Может работать безупречно некоторое время, но не является стабильным решением.Лучшим решением для кластера является использование распределенного кэширования, то есть memcache, который является отдельным сервером, на котором выполняется экземпляр memcached, и на каждом веб-сервере установлен PHP Memcache.Затем каждый сервер проверит наличие существующей кэшированной страницы / элемента и, если она существует, извлечет из memcache, в противном случае сгенерирует из базы данных, а затем сохранит в memcached.Когда вы имеете дело с кластерами, вы не можете экономить на хорошем механизме кэширования.Если вы имеете дело с кластерами, то на вашем сайте уже есть больше трафика (или будет) для обработки одним сервером.

Существует кластерная среда начального уровня, которая может быть реализована за относительно низкую стоимость.Вы можете настроить два совместно расположенных сервера (балансировщик нагрузки nginx и сервер memcached), а затем с помощью бесплатного общего веб-хостинга создать учетную запись в одном и том же домене на этих бесплатных учетных записях хостинга и установить свой контент.Вы настраиваете свой балансировщик нагрузки nginx так, чтобы он указывал на IP-адреса бесплатных веб-хостов.На бесплатных веб-хостах должен быть установлен php5 memcache, иначе решение не будет работать.

Затем вы задаете DNS для домена с регистратором, чтобы он указывал IP-адрес NGINX (который был бы статическим IP-адресом, если вы размещаетесь в одном месте).Теперь, когда кто-то получает доступ к вашему домену, nginx перенаправляет на один из кластеров вашего веб-сервера, расположенных на бесплатном хостинге.

Вы также можете использовать CDN для разгрузки трафика при обслуживании статического контента.

1 голос
/ 04 апреля 2010

У меня нет систематического ответа для вас, но по моему опыту, файловый кеш самый быстрый. Я должен уточнить, что я не проводил никаких серьезных тестов производительности, но все время, когда я использовал Smarty, я обнаружил, что файловый кеш работает лучше всего.

Одним из факторов, который определенно повышает производительность, является отключение проверки изменения файлов шаблонов. Это позволяет избежать необходимости проверять файлы tpl.

...