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 это способ решения проблем с базой, не ускорения загрузки сайта.

Авг 09 at 11:46
WordPress и memcache…
Thank you for submitting this cool story – Trackback from progg.ru…
Авг 09 at 20:45
На сей раз мне удалось немного изменить скорость загрузки страниц с помощью Memcached. Увы и ах, но движок Вордпресса не такой быстрый каким он может быть
Авг 11 at 10:32
Не чего не получаеться да и еще линух тормозит. Отпишусь как сделаю
Сен 14 at 20:20
Что именно кеширует? Всю страницу как WP Super Cache или какие-то отдельные участки кода?
Сен 15 at 00:21
Мемкеш кеширует только запросы к базе, держит их в памяти. Это именно для снятия нагрузки с базы данных, не с пхп или апача.
Сен 17 at 14:20
Для дополнительного ускорения рекомендую поставить плагин для клиентской части – Web Optimizer, http://wordpress.org/extend/plugins/web-optimizer/
Сен 17 at 17:27
По описанию вроде полезная штука.
Сен 18 at 17:29
Ну так в WP основное время и уходит на запросы к базе. А раз он кеширует результаты запросов, то надо попробовать будет.
Сен 19 at 10:01
Да, у вп частенько база отваливается. Меня ддосили когда, база первой умерла