Еще немного о производительности WordPress

23 October 2010 #wordpress #varnish #vps

Сегодня ночью долго не мог уснуть, задался вопросом исследования производительности сайта.

В основном меня интересовал вопрос, насколько эффективно использование Varnish и стоит ли его использовать на всех своих проектах? Есть ли альтернатива данному решению?

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

В качестве основной оценки производительности сайта выступал тест ab со следующими параметрами:

ab -n 1000 -c 50 http://domain.ru/

Получились примерно следующие результаты (запросов в секунду):

  1. Чистый wordpress -- 5-12
  2. Установлен W3 Total Cache -- ~1 300
  3. С использованием Varnish -- ~3 500
  4. С использованием Nginx Cache -- ~4 200
  5. Статика, без WP -- ~6 000

Как видно, максимум, что можно выжать на данном сервере от сайта – это 6 тыс запросов в секунду. И только при использовании статических страниц.

Про использование Nginx Cache я уже писал в статье Тест производительности VPS сервера, в которой допустил ошибку при тестировании. И соответственно получил искаженные результаты в случае использования W3 Total Cache. Однако результат использования кеша Nginx был вполне реален. Более подробно про использование данного типа кеширования можно прочитать в статьях Rocket boost your Wordpress и WordPress nginx proxy cache. Причем во втором случае рассматривается вариант решения проблемы с очисткой кеша за счет использования патчей к Nginx.

Nginx Cache показывает очень впечатляющие результаты, но имеет целый ряд проблем. Основная проблема заключается в невозможности регулировать очистку кеша, нет возможности очистить кеш по запросу. И во время публикации новой записи или во время создания комментария страницы остаются без изменения на протяжении времени, указанного в параметрах кеширования. Динамика практически полностью уничтожается. Поэтому данный способ, как бы он не был эффективен, использовать на практике пока не представляется возможным.

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

Как я уже говорил выше, в предыдущих тестах W3 Total Cache я допустил ошибку, и результаты оказались очень занижены и соответственно не реалистичны. После повторных тестов, оказалось, что производительность сайта на уровне 1300-1500 запросов в секунду. Что по своей сути не так далеко отстоит от результата Varnish. Разница только в два раза, против сотен, без использования данного расширения. Но, есть одно но! Расширение W3 Total Cache можно использовать и на обычном shared hosting, в то время как Varnish можно использовать только на VPS и Dedicated Server.

После проведения данного тестирования, я оценил посещаемость своего сайта, и принял решение отказаться от использования Varnish. Мне еще очень долго не придется увидеть посещаемость сайта на уровне нескольких тысяч в минуту, а потому держать дополнительный сервер оказывается просто бесполезно (имхо).