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

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

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

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

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

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

Получились примерно следующие результаты (запросов в секунду):
<ol>
<li> Чистый wordpress -- 5-12</li>
<li> Установлен W3 Total Cache -- ~1 300</li>
<li> С использованием Varnish -- ~3 500</li>
<li> С использованием Nginx Cache -- ~4 200</li>
<li> Статика, без WP -- ~6 000</li>
</ol>
Как видно, максимум, что можно выжать на данном сервере от сайта -- это 6 тыс запросов в секунду. И только при использовании статических страниц.

Про использование Nginx Cache я уже писал в статье <a href="/2010/08/23/test-vps-servera/">Тест производительности VPS сервера</a>, в которой допустил ошибку при тестировании. И соответственно получил искаженные результаты в случае использования W3 Total Cache. Однако результат использования кеша Nginx был вполне реален. Более подробно про использование данного типа кеширования можно прочитать в статьях <a href="http://sonicflare.net/2010/04/18/rocket-boost-your-wordpress/" rel="nofollow">Rocket boost your Wordpress</a> и <a href="http://johnlevandowski.com/2010/10/05/wordpress-nginx-proxy-cache/" rel="nofollow">WordPress nginx proxy cache</a>. Причем во втором случае рассматривается вариант решения проблемы с очисткой кеша за счет использования патчей к Nginx.

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

Про Varnish я уже неоднократно писал. Наибольшую эффективность показывает конфигурация, описанная в статье <a href="/2010/09/22/varnish-for-wordpress/">Varnish for WordPress</a>, она же практически не имеет каких-либо проблем.

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

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

