Оптимизация блога на WordPress для снижения его нагрузки на сервер хостинг-провайдера – Часть 3 – Снижение потребляемой памяти при генерации страниц
Здравствуйте уважаемые читатели блога KtoNaNovenkogo.ru. В этой статье мы продолжим рассматривать методы, направленные на снижение нагрузки, создаваемой блогом под управлением WordPress на сервер хостера. Ранее мы уже рассмотрели варианты оптимизации темы оформления блога на WordPress для снижения количества запросов к базе данных, а так же поговорили о необходимости использования кэширования страниц блога и подробно разобрали установку и настройку плагина кэширования Hyper Cache.
Сегодня мы займемся рассмотрением способов мониторинга нагрузки на сервер и снижением потребления памяти при генерации страниц блога на WordPress.
Мониторинг нагрузки, создаваемой блогом на WordPress на сервер хостера, с помощью плагина "Панель нагрузки" и без него
В первой статье, посвященной оптимизации WordPress, мы узнали, как определить количество запросов, осуществляемых к базе данных, при загрузке страницы вашего блога. Сегодня мы будем пытаться снизить потребление памяти при генерации страниц блога на WordPress и, следовательно, нам нужно будет каким-то образом измерить это самое потребление памяти до и после проведенной оптимизации.
Итак, нам нужно знать, сколько памяти на сервере хостера расходуется при загрузке той или иной страницы вашего блога. Эту проблему можно решить как с помощью установки соответствующего плагина, так и с помощью дописывания нескольких строк кода в файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемой вами темы оформления WordPress. Давайте начнем с плагина.
Плагин «Панель нагрузки» - выводим на страницы и в админпанель блога на WordPress информацию о количестве запросов к базе данных, времени генерации и потребляемой памяти при генерации страниц
Плагин называется "Панель нагрузки" и скачать его можно . Плагин очень простой, что несомненно является достоинством. Для установки плагина "Панель нагрузки" вам нужно выполнить стандартные манипуляции:
- распакуйте архив
panel_load.zip, используя ftp-менеджер подключитесь к вашему сайту и загрузите файлpanel_load.phpв папку с плагинамиwp-content/plugins/на сервере - войдите в административную панель Wordpress и выберете вкладку "Плагины"- "Inactive (Неактивно)"
- найдите строку с плагином "Панель нагрузки" и активируйте его
Если при установке плагина возникли какие-либо затруднения, то можете обратиться к материалам этой статьи - Решение возможных проблем при установке плагинов. В админке WordPress выбираем из левого меню Настройки -> Панель нагрузки.

Давайте рассмотрим, что же можно на этой странице настроить для плагина "Панель нагрузки".
- Позиция - вы можете выбрать способ отображения панели на страницах вашего блога:
- Фиксированная - "Панель нагрузки" все время будет находиться в заданной области экрана, вне зависимости от прокрутки страницы блога
- Абсолютная - позиционирование "Панели нагрузки" будет привязано уже не к экрану, а к самой странице блога. При прокрутке панель будет уходить за видимую часть экрана
- Горизонтальное положение панельки - вы можете выбрать к какой стороне вашего блога будет прижата "Панель нагрузки"
- Вертикальное положение панельки - тоже самое, но для вертикального положения
- Отображать панель для - здесь вы можете выбрать, кому будет видна данная "Панель нагрузки" - всем посетителям вашего блога или же только вам (Администратору)
- Отступ по горизонтали (в px) - вы можете задать отступ панели от левого или правого края страницы, в зависимости от того, что вы выбрали в поле "Горизонтальное положение панельки"
- Отступ по вертикали (в px) - тоже, но отступ уже задается от низа или верха экрана (либо страницы)
- Отображать панель в админке - вы можете в этом поле включить отображение этой панели в админпанели WordPress, выбрав из выпадающего списка вариант "Да"

На страницах блога "Панель нагрузки" выглядеть будет примерно так:

Как вы можете видеть, на "Панели нагрузки" отображается следующая информация:
- количестве запросов к базе данных, сделанных при загрузке данной страницы
- времени формирования страницы
- потребление памяти при генерации данной страницы
Вывод информации о нагрузке блога на WordPress на сервер хостера без использования плагина
Туже саму информацию о нагрузке, создаваемой страницами вашего блога на сервер хостера, можно вывести на страницы блога или админпанели и без использования плагинов. Для это вам нужно будет открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемой вами темы оформления WordPress. Добавьте в этот файл следующий код:
function usage() {
printf(('%d / %s'), get_num_queries(), timer_stop(0, 3));
if ( function_exists('memory_get_usage') ) echo ' / '
. round(memory_get_usage()/1024/1024, 2) . 'mb ';
}
add_action('admin_footer_text', 'usage');
add_action('wp_footer', 'usage');
Сохраните произведенные изменения в файле functions.php. Теперь в самом низу админпанели WordPress (справа) и в футере вашего блога будет выводиться информация о нагрузке вашего блога на WordPress.

Строка
add_action('admin_footer_text', 'usage'
в приведенном выше коде отвечает за вывод информации о нагрузке в админпанели вашего блога на WordPress. Следовательно, если вы ее удалите из кода, то в админке информация о нагрузке выводиться не будет. Строка
add_action('wp_footer', 'usage');
отвечает за вывод информации о нагрузке в футере самого блога. Но я все же советую убрать эту строку из кода, т.к., например, в этом случае информация в футере блога выводится не совсем красиво. Лучше эту строку убрать из кода, добавляемого в файл functions.php, а вместо этого открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/footer.php и вставить в нужное место этого файла код:
<?php if (current_user_can('level_10')){ ?>
<small><?php usage();?></small><?php } ?>
В этом случае информация в футере вашего блога на WordPress будет видна только администратору, т.е. вам, а посетители блога ее не увидят. Ну, вот мониторить потребление памяти при генерации страниц вашего блога на WordPress мы научились. Теперь пора переходить к снижению этого самого потребления памяти.
Плагин WPLANG Lite - снижаем потребление памяти при генерации страниц блога на WordPress
Ту оптимизацию потребления памяти, которую мы будет сейчас рассматривать я проделывал на своем блоге уже довольно давно и в то время о плагине, реализующем эту функцию мне было неизвестно. Поэтом пришлось осуществлять все операции вручную, хотя это было совсем и не сложно. Но сейчас появился плагин WPLANG Lite, который реализует все это в удобной и простой форме.
Что же мы собственно будет делать для облегчения загрузки страниц блога на WordPress? Дело в том, что в оригинальном файле русской локализации ru_RU блога на WordPress содержится перевод всего движка, включая админпанель и некоторые плагины. Но при генерации страниц блога локализация админпанели совсем не нужна, а т.к. используется единый файл локализации, то получается, что в памяти висит несколько мегабайт совершенно не нужной для страниц вашего блога информации (локализация админпанели WordPress).
Суть метода по снижению потребления памяти блогом на WordPress заключается в том, чтобы при загрузке страниц блога использовался облегченный файл локализации ru_RU_lite, в котором нет перевода админки и неиспользуемых плагинов. Это позволит сэкономить порядка трех мегабайт памяти сервера при генерации страниц блога. Что примечательно, при генерации страниц фронтальной части блога будет использоваться облегченный вариант файла локализации, а при генерации страниц админпанели - полный файл локализации. Т.е. ни вы, ни посетители вашего блога разницы от подмены файлов локализации не заметите.
Установка плагина WPLANG Lite на WordPress
Скачать плагин WPLANG Lite вы можете . Для установки плагина WPLANG Lite вам нужно будет проделать следующие нехитрые операции:
- распакуйте архив
wplang-lite.0.3.zip, используя ftp-менеджер подключитесь к вашему сайту и загрузите папкуwplang-liteв папку с плагинамиwp-content/plugins/на сервере - установите права доступа 777 для папки
/wp-content/languages/. Не пропустите этот шаг, т.к. плагин WPLANG Lite сразу же после своей активации захочет создать в этой папке урезанный файл локализацииru_RU_lite, но если права доступа на эту папку не позволят ему это сделать, то облегченный файл локализации создан не будет. И что еще печальнее, плагин вам об этом даже не скажет. Просто вы в этом случае не увидите никакого снижения потребления памяти сервера при загрузке страниц вашего блога на WordPress - войдите в административную панель Wordpress и выберете вкладку "Плагины"- "Inactive"
- найдите строку с плагином WPLANG Lite и активируйте его
Если при установке плагина возникли какие-либо затруднения, то можете обратиться к материалам этой статьи - Решение возможных проблем при установке плагинов. Собственно, все. Плагин WPLANG Lite уже работает. Что примечательно, при обновлении файла полной локализации плагин WPLANG Lite автоматически скачает новый облегченный вариант локализации. Именно в этом и состоит преимущество использования плагина WPLANG Lite по сравнению с ручной настройкой. Хотя, если вам интересно, то я могу рассказать, как все это проделать без плагина.
Снижаем потребление памяти в WordPress без использования плагина WPLANG Lite
Нужно , разархивировать его и затем используя ftp-менеджер подключиться к вашему сайту и загрузить файл ru_RU_lite.mo в папку с файлами локализации /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');
Если в вашем файле wp-config.php присутствуют обе этих строки, то просто закомментируйте (допишите вначале строки // ) первую строку и раскомментируйте вторую строку (уберите вначале строки //). На сегодня все, продолжим рассматривать способы оптимизации блога на WordPress для снижения нагрузки на сервер в следующей статье этой серии. Благо оптимизировать можно до бесконечности.
Вы так же можете ознакомиться с другими материалами связанными с работой и настройкой блога на WordPress, а так же с материалами, посвященными плагинам для блога на WordPress.
На сегодня все. Если вы не хотите пропустить появление новых материалов на этом сайте, то можете подписаться на рассылку новостной ленты через форму, расположенную чуть ниже, или же выбрать удобный для вас способ подписки на странице Подписка. Если у вас остались нерешенные вопросы из области вебмастеринга, то вы можете поискать на них ответы, посетив страницу Вопросы и ответы.
Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru















Я вообще ушел с ВП. С посещаемостью от 10к редко кто выдерживает его
Спасибо, не знал про плагин Панель загрузки. Что касается языка, то вместо WPLANG Lite я просто ставлю английскую версию ВП, что в корне решает эту проблему. Там нет ничего сложного, даже кто плохо знает язык.
И касательно Hyper Cache – есть более достойная альтернатива, а именно, W3 Total Cache, которая кроме статических страниц кеширует запросы БД и имеет массу других возможностей
ipod: если не секрет, то на что именно вы ушли с WP.
Димок: спасибо, еще не познакомился с W3 Total Cache, попробую.
В плагине «Панель нагрузки» выставила те же параметры, как показано у вас.Но панель видна только в админке, на страницах ее нет. А админке на какую страницу она показывает? На саму админку?
Установила плагин WPLANG Lite. Посмотрела потребление памяти до и после его установки. Существенных изменений не увидела.
А как и чем определить норму потребления памяти. Например, у меня 54 запроса/0,547/26,61Мв
Марина: да, в админке плагин «Панель нагрузки» показывает нагрузку на сервер при генерации страницы админпанели. Странно, что на страницах блога вы его не видите. Может у вас абсолютная привязка стоит и панель отображается за пределами видимости страницы (в самом верху или низу)?
У меня этот метод (c заменой полного файла локализации на покоцанный) снизил примерно на три мегабайта потребление памяти. Про абсолютные величины потребления памяти не берусь рассуждать, у меня, как вы видите, около 17 мегабайт, но мне кажется, что это не совсем соответствует истине или зависит от сервера. Тут более важно относительное снижение потребления памяти после использования данного метода. Попробуйте сделать все вручную, как я описал в конце статьи, должно сработать.
Пробую без плагина панель нагрузки. В каком месте functions.php надо писать код? Пишу последними строчками – выдает ошибку.
Марина: непосредственно перед
попробуйте.
Спасибо, Дмитрий. Случайно и вовремя обнаружила, что доэкспериментировалась до того, что сломалась RSS-подписка, пришлось все вернуть назад, кроме кеширования. С плагинами, как-то спокойнее, есть уверенность, что ничего не испортишь.
Можно использовать бесплатный плагин кэшированияhttp://centavrus-opti.ru/skript-keshirovaniya-dlya-wordpress.html
Намного превосходит аналоги. Страничка пишется в кэш и при последующих обращениях уже отдаётся. Бесплатная. Шикарная вещь – далеко позади оставил все иные варианты. Раньше пользовался коммерческой версией MAXCACHE – тоже неплохая, но по сравнению с вышеприведённым скриптом – УГ. Деньги зря на ветер… А вообще – нормальный хостер должен без напряга держать Wordpress
Googlebot говорит, что:
Вот именно! Никакой такой супер-пупер-мега нагрузки WP не создает. Просто многие хостинги живут еще в прошлом веке.
Ю.Б.: вчера в час пик посещаемости сбросил кеш (внес изменения в шаблон и хотел, чтобы изменения вступили в силу) и через пять минут пришло предупреждение от хостера о превышении потребления ресурсов. Причем превышение было очень существенное, особенно по памяти (более чем двукратное). Теперь кеш не сбрасываю во время большого наплыва посетителей.
А для снижения нагрузки на процессор нет решений в wordpress ?
ipod: у меня сейчас 7-8к. кэширование поставил, вроде все ок
. виртуальный хостинг держит…
Добрый день, вопрос может немного не в тему, но меня интересует, сказывается ли количество установленных плагинов на работоспособность wp? (Естественно исходя их того, что они друг с другом не конфликтуют и сами по себе не тормозят движок). Спасибо
попутно ещё один вопрос. Сам по себе “плагин” для WP по сути это просто какой-то дописаный код в страницу или нечто большее?
Vadim: сказывается количество плагинов на производительность. Плагины, как правило, выполняются в реальном времени и создают определенную нагрузку на сервер. Разные плагины по разному оказывают влияние, но если есть возможность обойтись без плагина (внесением изменений в код), то лучше плагин не использовать.