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