Wordpress Cache
Производительность веб-сервера резко падает при использовании динамических страниц, и часто наблюдается так называемый digg-эффект, который заключается в отказе обслуживания от перегрузки сервера. Именно поэтому в WordPress применяются плагины, реализующие различные способы кэширования информации.
Существует два способа кэширования: во-первых, это кэширование запросов базы данных и объектов и во-вторых, это кэширование всей страницы. У каждого метода есть свои достоинства и недостатки и каждый метод имеет право на жизнь.
Первый способ кэширования снижает нагрузку на сервер путем занесения в кеш запросов к базе данных или отдельных объектов страницы, для генерации результата все так же используется PHP, поэтому серьезных нагрузок данный метод не выдерживает.
Второй способ фактически генерирует статически страницы, которые в дальнейшем отдаются пользователю. Для примера: в скринкасте про Rails приводился пример производительности веб-сервера Mongrel (динамические страницы) и Apache (статические страницы), так вот в случае Mongrel максимальная производительность соответствует порядка 20-50 запросам в секунду, в то время, как Apache позволяет обработать уже свыше 1000 запросов в секунду. Разница просто колоссальная!
Как реализовать статические страницы в WordPress?? Конечно с помощью плагинов.
- WP Super Cache — в некоторых сборках поставляется по умолчанию, позволяет генерировать статические страницы и отдавать их пользователю без обращения к PHP.
- Hyper Cache — более простая реализация кэширования.
- W3 Total Cache — новое слово в кэшировании. Поддерживает сжатие скриптов, CSS, кэш для базы данных, работу с CDN и многое другое.
- MaxSite Cache — отечественная разработка, при этом платная. По словам автора является лидером среди кэширующих плагинов.
Владимир проводил тестирование данных плагинов и выложил их на своем блоге blog.sjinks.pro. Он показал себя как человека, очень хорошо разбирающимся в PHP, но результаты тестов очень сомнительны. Сомнительны потому, что в коментах возникло обсуждение эффективности данных плагинов между Владимиром и Максом, автором MaxSite Cache. Оба указывали на использование PHP в плагине WP Super Cache и MaxSite Cache, Макс почему то упорно твердил, что Super Cache в любом случае использует скрипты при обращении к странице, а его скрипт генерирует настоящие статически страницы.
При этом он почему то не учитывает того факта, что Super Cache так же генерирует статические страницы и хранит их на диске, а при обращении к сайту происходит отдача именно статической страницы в обход PHP. О чем указывается на офстранице плагина WP Super Cache. При этом, там же приведены примеры сайтов, которые пережили digg-эффект как раз за счет данного плагина.
Но наибольший интерес представляет плагин Realy Static, который позволяет как Movable Type создать статическую копию сайта WordPress, с возможностью использования динамических функций блога, таких как оставления комментариев. Установка и настройка данного плагина пока еще не тривиальная, мне пришлось несколько часов убить, для того, чтобы тестовый сайт нормально конвертировать в статический. В итоге добился результата и коменты прекрасно добавлялись. Однако тут же выяснилось, что плагин имеет недостатки. Которые проявляются в том, что если оставлять комментарий, обновляется только одна статическая страница, страница самой записи, все остальные страницы, которые ссылаются на нее, не изменяются и будут показывать то количество комментариев, которое было до публикации. А обновлять все страницы блога каждый день руками – это не выход из положения. Надеюсь, автор плагина исправит это в ближайшее будущее.
Если сравнивать по производительности, а я могу сравнивать только время отдачи страницы сервером, то после публикации и использования статических страниц, скорость отдачи страницы клиенту возрастает в два раза. Какую максимальную нагрузку будет держать сервер при использовании данного плагина можно только предполагать, но судя по всему, это будет нечто!
Похожие записи:
- wordpress плагины моего блога…
- Оптимизация Wordpress
- WordPress & Amazon
- обновление плагинов wordpress
- wordpress: gzip сжатие
Метки: Movable Type, Wordpress, плагины

Денис, у меня возникла проблема с Realy Static, я тоже убил ночь на его настройку, слишком мало информации от автора плагина. В итоге статика создается отлично, но почему-то начали появляться двойные слеши в ссылках на странице, типа site.ru//index.html, притом если я сбрасываю весь кеш и генерирую его снова, слешей становится уже не два, а три! А потом четыре, пять, и так далее! Спасает только удаление всех статических файлов. Если вы сталкивались со схожей проблемой, прошу дать совет по решению.
Нет, с подобной проблемой я не сталкивался, даже не могу подсказать, в чем причина такого странного поведения.
От использования плагина я отказался по причине того, что если оставляют комментарий, происходит повторная генерация только одной статической страницы. Информация на других страницах, например главная, архивы, в которых должно отображаться количество коментов, остаются без изменения. Приходиться периодически заново генерировать весь кеш, во избежания подобных колизий.
Само оптимальное решение – это использование движка, который генерирует именно статические страницы, которые в дальнейшем отдаются апачем. Я выбрал Movable Type, разберусь только с рисованием шкурки, нарисую и буду производить перенос сайта на новый движок.
Нет ли у вас русского мануала по установке Realy Static? Хочу его попробовать, но как поставить и настроить не знаю, т.к. английским не владею…
Нет, мануала у меня нет. И к тому же я не рекомендую его ставить. Эксперимент который провел показал, что он еще не доработан.
И проблема заключается в том, что плагин не обновляет другие страницы при появлении комментариев, со временем получается очень разнородная информация.
По сути wordpress и не предназначен для работы в таком режиме. Если вам нужен движок, который генерирует статичные страницы, посмотрите в сторону Movable Type, есть документация на русском языке и всегда помогут на movable-type.ru
Предлагаю включить в обзор бесплатный скрипт кэширования http://centavrus-opti.ru/skript-keshirovaniya-dlya-wordpress.html
Спасибо! Будет время, потестирую.
а вы не рассматривали плагин 1blogcacher? есть ли у него реальные достоинства?
Нет, не рассматривал. Пришел к выводу, что незачем мучиться выбором кеширующего плагина, если есть WP Super Cache.
Он позволяет выдержать довольно серьезную нагрузку на сервер, а если не будет справляться, значит просто пора менять хостера или переходить на VPS.