Оптимизация WordPress

Моё двухдневное противостояние с сервером окончилось победой. После нескольких упорных часов труда и сношения с индейцем (апачем) на блоге наконец-то появились заветные цифры: 3 запроса к БД на главной. Свежеинсталлированный WordPress на обычном хостинге — 25 запросов к бд с главной. Но об немного попозже.

Все знают, что головная боль WP — это его БД. При высокой активности пользователей база отваливается и блог виснет. Получается, что одним кешированием страниц успеха не добиться… Пришлось искать другие способы и методом проб и ошибок выявлять пути истины. Что и было сделано.


Изначально был установлен на чистый сервер новый WordPress 3.3.1. При тестах он показал следующие результаты:

24 запросов, генерация 0,355 секунд.
25 запросов, генерация 0,363 секунд.
26 запросов, генерация 0,767 секунд.
26 запросов, генерация 0,521 секунд.
31 запросов, генерация 0,467 секунд.

Это учитывая, что новый установленный WordPress юзал только я.

После установки eaccelerator удалось снизить генерацию страниц почти в половину.
24 запросов, генерация 0,214 секунд.
25 запросов, генерация 0,222 секунд.
26 запросов, генерация 0,187 секунд.
26 запросов, генерация 0,193 секунд.
31 запросов, генерация 0,175 секунд.

Этому я был несказанно рад. Но проблема с запросами также по прежнему висела камнем на шее.

Но дальше испытывать все на пустом блоге не имело смысла. Поэтому дальнейшие испытания проводились с сервером, на котором находится этот блог.
Генерация немного уменьшилась, как я говорил ранее. С запросами дело обстояло хуже: 23 запроса — на главной, 40 запросов в постах.
Пошерстив по виджетам и плагинам, нашлись прожорливые плагины:
Виджет новых статей — 2 запроса
Плагин похожих постов — 13 запросов
В общем, от них я первым долгом избавился. Но все-таки, 20-25 запросов к БД по-прежнему было.

Решение нашлось. Начал ставить WP3 Total Cache, а в итоге сделал то, что пытался смастерить 2 дня назад — заставить WP работать с Memcached. WP3 Total Cache удалил за ненадобностью.
После нехитрых манипуляций количество запросов на главной сократилось до 3х (!), на страницах не превышает и 9 запросов.

А теперь поясню, к чему все эти запросы.
Блогу в 10-20 посетителей возиться с урезанием запросов не имеет смысла.
А блогам с такой посещаемостью как у меня стоит об этом подумать. К примеру, на блоге 100 человек онлайн. Возьмем главную страницу — 25 запросов. 100 человек генерируют 2500 (25*100) запросов к БД. И все это апач обрабатывает и возвращает.
В ситуации с кешированием в БД поступает только 300 запросов (3*100). А теперь логически подумайте, что быстрее обработается и от чего не зависнет блог?

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

Если вы хотите проверить количество запросов к базе и генерацию страниц используйте простой код, который надо вставить в footer.php вашего шаблона:

<?php echo get_num_queries(); ?> запросов в БД, сгенерилось за <?php timer_stop(1); ?> секунд.

Наблюдать количество запросов к бд и генерацию вы можете в самом низу страницы блога.
Данные манипуляции можно производить только с VPS сервером. Мой отзыв о них можно прочесть здесь.

5 comments

  1. Eric Newman Post author

    Читайте соседние статьи.

  2. Игорь

    А где собственно советы по ускорению блога?
    Или это чисто похвастаться, какой вы умный?

  3. d_ma

    то же, что и я)) не понятен мануальчик оказался)

  4. Eric Newman Post author

    Не совсем понял, что вы имели ввиду!

  5. Евгений

    «в итоге сделал то, что пытался смастерить 2 дня назад – заставить WP работать с Memcached. WP3 Total Cache удалил за ненадобностью.
    После нехитрых манипуляций количество запросов на главной сократилось до 3х (!), на страницах не превышает и 9 запросов.»

    То что сделал видно, а вот как, кроме сказанного в кавычках — ничего нет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *