WordPress и memcache 2

[audio:9d179c38ffe0.mp3]
Первая часть тут была.
Написал я тогда как сделать, а сам так и не сделал и результатов не посмотрел, насколько сильно помогает 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 это способ решения проблем с базой, не ускорения загрузки сайта.

0.00 avg. rating (0% score) - 0 votes

10 комментариев

  • WordPress и memcache…

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

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

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

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

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

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

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

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

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

  • Я так понял, что не каждое веб приложение умеет работать с мемкешем? тоесть для ВП нужно ставить плагин, а  например для DLE самому придумывать костыли?

css.php