WordPress и memcache 2

Авг 09

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. You also need to have JavaScript enabled in your browser.

Первая часть тут была.
Написал я тогда как сделать, а сам так и не сделал и результатов не посмотрел, насколько сильно помогает memcache для вп.
Кратко, для чего нужен memcache: при определенной нагрузке, вордпресс начинает генерить очень много запросов и завешивает базу. Меня когда одни редиски досили, первое, что отвалилось так это база. Не могу установить соединение с базой данных – частенько выдает вордпресс. Memcached кеширует запросы к базе, тем самым снимая ее с БД (и перекладывая на оперативку :) )
Также я изначально отказался от плагинов, например batcache. Как установить плагин итак все знают.

Вобщем, практическое занятие началось.
Нужно установить сам memcached на сервер. Затем пересобрать php с ним. Затем подключить вордпресс.
Ставим., у меня центос, поэтому команды по нему.

yum install memcached

запускаем

memcached -m 512 -u nobody -vv

Это была серверная часть. Теперь готовим пыхыпе. Чтобы пересобрать по быстрому php, нужен девелоперский пакет.

yum install php-devel

Пересобираем пых

phpize && ./configure --enable-memcache && make

Правим конфиг php

mcedit /etc/php.ini
extension=memcache.so

Делаем ребутатеньки апачу, в папке с memcache лежит файл теста, можно проверить работу демона заодно.

/etc/init.d/httpd restart
php example.php

Пускаем демона, если не был пущен.

memcached -d -m 2048 -l 127.0.0.1 -p 11211 -u nobody

Теперь сам вордпресс.
Тут все просто.
Качаем пару файлов

http://plugins.trac.wordpress.org/browser/memcached/branches/1.0/object-cache.php?format=txt

http://plugins.trac.wordpress.org/browser/memcached/branches/1.0/memcached-client.php?format=txt
Кладем их в /wp-content.
В файл wp-config.php добавляем:

$memcached_servers="127.0.0.1:11211

Теперь проверка.
Пустая инсталляция вп 2.8.3, три раза подряд:

<!-- 18 queries. 0.985 seconds. -->
<!-- 18 queries. 1.340 seconds. -->
<!-- 18 queries. 3.619 seconds. -->

Включаем memcahe:

<!-- 3 queries. 26.650 seconds. -->
<!-- 3 queries. 1.036 seconds. -->
<!-- 3 queries. 0.998 seconds. -->

Скачки по времени потому, что тест проводился на боевом серваке с саттелитами, а их в это время пожирал бот яху, он любит по 100 потоков лазить.
Разница довольно неплохая, число запросов сильно уменьшилось. Время генерации существенно не изменилось. Memcache это способ решения проблем с базой, не ускорения загрузки сайта.

Возможно, это будет интересно…

9 Comments

Add your comment

  1. progg.ru
    Авг 09 at 11:46

    WordPress и memcache…

    Thank you for submitting this cool story – Trackback from progg.ru…

  2. Finless
    Авг 09 at 20:45

    На сей раз мне удалось немного изменить скорость загрузки страниц с помощью Memcached. Увы и ах, но движок Вордпресса не такой быстрый каким он может быть

  3. FastTop.ru
    Авг 11 at 10:32

    Не чего не получаеться да и еще линух тормозит. Отпишусь как сделаю

  4. Денис Болтиков
    Сен 14 at 20:20

    Что именно кеширует? Всю страницу как WP Super Cache или какие-то отдельные участки кода?

  5. Alex Volkov
    Сен 15 at 00:21

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

  6. sunnybear
    Сен 17 at 14:20

    Для дополнительного ускорения рекомендую поставить плагин для клиентской части – Web Optimizer, http://wordpress.org/extend/plugins/web-optimizer/

  7. Alex Volkov
    Сен 17 at 17:27

    По описанию вроде полезная штука.

  8. Денис Болтиков
    Сен 18 at 17:29

    Ну так в WP основное время и уходит на запросы к базе. А раз он кеширует результаты запросов, то надо попробовать будет.

  9. Alex Volkov
    Сен 19 at 10:01

    Да, у вп частенько база отваливается. Меня ддосили когда, база первой умерла

Post a comment