Поработав с eAccelerator, удалось снизить генерацию. Но количество запросов к БД у WordPress все-таки огромно. Об этом я уже писал в статье об оптимизации всеми нами любимого WordPress. Для того, чтобы снизить количество запросов к базе нужен memcached. Memcached-сервер позволяет кешировать часть запросов к БД и тем самым снижает нагрузку на нее. К примеру, из 25 запросов на главной у меня осталось 3. Имейте ввиду, что данный мануал применителен только к серверам на базе Free BSD.
Для того, чтобы заставить работать wordpress с memcached требуется наличие VPS сервера на FreeBSD, либо сервера memcached у хостера (у Jino такое встречал).
Для начала поставим простенький код для замера количества запросов и генерации. Вписываем его в любое удобное место. У меня, к примеру, он находится в footer.php темы и отображается после счетчика Майла.
<?php echo get_num_queries(); ?> запросов в БД. Генерация <?php timer_stop(1); ?> секунд. |
Из портов через Putty ставим Memcached:
# cd /usr/ports/databases/memcached # make install clean |
Открываем файл rс.conf по пути etc/rс.conf и вписываем туда следующее:
memcached_enable="YES" memcached_flags="-l 127.0.0.1 -m 64" |
Имейте ввиду, что цифра 64 в этом коде, это количество оперативной памяти выделяемой под кеш-сервер Memcached. Не устанавливайте его больше, чем у вас имеется на VPS.
Затем ставим расширение memcache для php:
# cd /usr/ports/databases/pecl-memcache # make install clean |
Открываем файл extensions.ini по пути /usr/local/etc/php/extensions.ini и вписываем:
extension=memcache.so |
Открываем папку с нашим WordPress.
Вписываем в wp-config.php следующий код:
$memcached_servers="127.0.0.1:11211" |
Затем скачиваем архив и распаковываем его в папку wp-content. Файлы должны лежать именно в wp-content!!! Это плагины для работы с мемкеш-сервером. Замечу, что корректная работа плагинов возможна лишь в случае, если на папке wp-content стоят права 777 или 755.
Перезапускаем сервер и смотрим на заветные цифры на счетчике запросов и генерации. Замечу, что кеширование с помощью Memcached никак не влияет на скорость генерации. Мемкеш сервер помогает лишь закешировать запросы к БД.
Любое отклонение от инструкции может привести к падению вашего сервера. Более подробно о дальнейшей настройке VPS сервера здесь.