Site icon Vavik96

Оптимизируем WordPress

Работа с памятью

Пожалуй, только новичку не известно, что WordPress потребляет много ресурсов. Об оптимизации движка WordPress я уже не раз писал. К примеру, свежеинсталлированный WordPress жрет 25-30 мб памяти. Количество запросов к БД составляет 16 с главной страницы и около 25 со страниц и разделов. А если ко всему этому еще добавить плагины, WP и вовсе превращается в громоздкую машину.
Но при помощи умелых рук и этой инструкции вы сможете снизить потребление памяти в 10 раз, нагрузку на БД в запросах более чем в 8-9 раз, а генерация станет стабильной в районе 0.1-0.5 секунд. Сейчас мои блоги потребляют не более 3-4 мб памяти, количество запросов к БД с главной 3, с других страниц 6-9. Хотите себе такие показатели — дочитайте статью до конца.


Для начала нам нужно замерить показатели. Об использовании специального кода я уже писал в данной статье.
Вписываем код в footer.php нашей темы:
<?php echo get_num_queries(); ?> запросов. <?php timer_stop(1); ?> секунд. <?php echo memory_get_usage()/1024/1024, 2; ?> Мб

Что ж цифры я думаю вас не впечатлили. Пару десятков запросов к базе данных, около 30 мб памяти.

1.Самый доступный способ — это замена файлов локализации WordPress на облегченные версии Lite. Скачиваем архив Файлы локализации WordPress. Внутри 2 файла: ru_RU_lite.mo и ru_RU_lite.po. Копируем их в папку wp-content/languages нашего блога. Открываем wp-config.php:
Вместо

define('WPLANG', 'ru_RU');

пишем это:

if (strpos($_SERVER['REQUEST_URI'], 'wp-admin')) 
     define ('WPLANG', 'ru_RU'); 
else define ('WPLANG', 'ru_RU_lite');

Сохраняем и заливаем на сервер.
Таким образом, данная манипуляция позволяет сократить потребление памяти почти на 8-9 мб.

  1. Данный способ требует наличия у вас на хостинге или сервере Eaccelerator — «ускоритель работы PHP-кода».При наличии Eaccelerator на хостинге потребление памяти снижается почти в 2 раза. Заплатив за различные услуги хостинга, возможно подключить Eaccelerator на виртуальный хостинг.
    Таким образом, данные два способа снизили потребление памяти WordPress`ом с 30 мб до 4х.
  2. Отключение обновлений позволяет снизить потребление памяти в среднем на 200-300 кб.
    Открываем файл update.php в папке wp-includes, листаем до конца. В конце видим 13 строк (в версии 3.3.2), начинающихся на add_action. Перед каждой строкой ставим решетку и сохраняем, как показано на рисунке ниже.

Таким образом, мы запретили блогу проверять обновления, тем самым сократив потребление памяти и нагрузку на сервер.

Работа с кешированием

Когда работа с оптимизацией памяти закончена, пора приступать к кешированию. Причем, работа в этой сфере разделяется на 2 этапа: уменьшение количества запросов и кеширование страниц блога.
В работе с WordPress я использую 2 плагина. Первый — WP Super Cache позволяет создать кеш страниц блога на сервере и отдавать их как html странички. Скорость загрузки кешированных страниц поднимается в 3-4 раза. Там же и даны советы по настройке плагина, а также тестовые замеры. Текущая версия плагина 1.1.


Второй плагин для себя я открыл совсем недавно. Раньше я пользовался более древней его версией, затем пересел на Memcached Manager. Сейчас же основу кеширования составляет плагин SJ Object Cache версии 1.2 с поддержкой Memcache и Memcached. Он позволяет кешировать с помошью нескольких на выбор вариантов. Для меня оптимальным является кеширование с помощью Memcached. Устанавливаете плагин, активируете, сохраняете настройки.

Затем переходите во вкладку Memcache и вписываете адрес сервера 127.0.0.1. Главное, чтобы настройки сохранились, нужно установить права 777 или 755 на папку с плагином.

Но для такого рода кеширования хостинг должен иметь Memcached-сервер. На VPS|VDS установить memcached можно по этой схеме. Если же у вас нет Memcache на хостинге, попробуйте третий вариант кеширования. Он также дает неплохие результаты.

Что же дает это кеширование? По сути, количество запросов не уменьшается, а кешируется. То есть при каждом обращении пользователя к странице к БД идут 20-30 запросов. Они обрабатываются и отдаются пользователю. При кешировании часть запросов в кешированном состоянии хранится в оперативной памяти и отдается оттуда уже в обработанном виде. Таким образом, снижается нагрузка на сервер.

В итоге подобная оптимизация сайта на WordPress привела к тому, что генерация снизилась в 2 раза, количество запросов на главной в 10 раз, а скорость загрузки страниц возросла более чем в 3-4 раза.

rxnblog.ru

Exit mobile version