Sandbox Wordpress Мониторинг нагрузки, создаваемой WordPress на сервер

Мониторинг нагрузки, создаваемой WordPress на сервер

0
(0)

Сегодня мы будем пытаться снизить потребление памяти во время этого процесса и, следовательно, нам нужно будет каким-то образом все это дело мониторить.

Итак, нам нужно знать, сколько памяти расходуется при загрузке той или иной страницы. Эту проблему можно решить как с помощью установки соответствующего плагина, так и с помощью дописывания нескольких строк кода в файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемого вами шаблона WordPress (тут про устройство тем читайте). Давайте начнем с плагина.

Этот плагин очень простой, что несомненно является достоинством. Для установки вам нужно выполнить стандартные манипуляции:

  1. распакуйте архив panel_load.zip, используя ftp-менеджер подключитесь к вашему сайту и загрузите файл panel_load.php в папку с плагинами wp-content/plugins/
  2. войдите в админку WordPress и выберете вкладку «Плагины»- «Inactive (Неактивно)»
  3. найдите строку «Панель нагрузки» и активируйте его

В админке WP выбираем из левого меню Настройки -> Панель нагрузки.

Давайте рассмотрим, что же можно здесь настроить.

    1. Позиция — вы можете выбрать способ отображения панели нагрузки на страницах вашего WP блога:
      1. Фиксированная — «Панель нагрузки» все время будет находиться в заданной области экрана вне зависимости от прокрутки
      2. Абсолютная — позиционирование панели будет привязано уже не к экрану, а к самой странице. При прокрутке она будет уходить за видимую часть экрана
    2. Горизонтальное положение панельки — вы можете выбрать, к какой стороне она будет прижата
    3. Вертикальное положение — тоже самое, но для вертикального положения
    4. Отображать панель для — здесь можете выбрать, кому она будет видна — всем посетителям вашего блога или же только вам (Администратору)
    5. Отступ по горизонтали (в px) — вы можете задать отступ панели нагрузки от левого или правого края окна, в зависимости от того, что вы выбрали в поле «Горизонтальное положение»
    6. Отступ по вертикали (в px) — тоже самое, но отступ уже задается от низа или верха экрана
    7. Отображать панель в админке — включить отображение этой панели в админке WordPress, выбрав из выпадающего списка вариант «Да»

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

Как вы можете видеть, на ней отображается следующая информация:

  1. количестве запросов к базе данных, сделанных при загрузке данной вебстраницы
  2. времени создания страницы
  3. потребление памяти

Вывод статистики в админке

Чтобы контролировать, сколько памяти потребляет только что активированный плагин, можно использовать WP-Memory-Usage.

Как узнать, сколько памяти занято | WP-Memory-Usage

Плагин показывает в административном разделе состояние оперативной памяти и версию PHP. Кроме того он показывает внизу админки  расход памяти — удобно наблюдать, как утекает память при активации плагинов.

Как узнать, сколько памяти занято | WP-Memory-Usage

WP-Memory-Usage своим непрерывным мониторингом помогает избежать многих ошибок, и оптимизировать работу блога, активируя только нужные плагины, не требующие большого количества оперативной памяти.

Информация о нагрузке Вордпресса без использования плагина

Ту же саму информацию о нагрузке можно вывести и без использования плагинов. Для этого вам нужно открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/functions.php из используемой вами темы. Добавьте в него следующий код:

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');

Сохраните произведенные изменения. Теперь в самом низу админки WordPress и в футере блога будет выводиться информация о нагрузке.

Строка

add_action('admin_footer_text', 'usage'

в приведенном выше коде отвечает за вывод инфы в админке. Следовательно, если вы удалите ее из кода, то в админке это дело отображаться не будет. Строка

add_action('wp_footer', 'usage');

отвечает за вывод в футере лицевой части блога. Лучше эту строку убрать из кода, добавляемого в файл functions.php, а вместо этого открыть на редактирование файл /wp-content/themes/Папка-с-вашей-темой-оформления/footer.php и вставить в нужное место этого файла код:

 <?php if (current_user_can('level_10')){ ?>
<small><?php usage();?></small><?php } ?>

В этом случае информация в футере будет видна только администратору блога, т.е. вам, а посетители ее не увидят. Ну, вот мониторить потребление памяти при создании вебстраниц мы научились. Теперь пора переходить к снижению этого самого потребления.

Как вывести потребление памяти в футер?

Чтобы узнать, сколько же оперативной памяти потребляет движок со всеми плагинами нужно в файле footer.php, перед закрывающим тегом </body> вставить следующую строчку:

<?php
if (function_exists('memory_get_usage'))
echo round(memory_get_usage()/1024/1024, 2) . 'MB ';
?>

Как узнать количество запросов к БД?

Делаем те же действия, открываем footer.php и перед </body> добавляем строку:

<?php echo get_num_queries(); ?>

На голом WordPress со стандартной темой и виджетами у меня создается 23 запроса к БД при открытии любой записи. Однако на премиум темах с большим количеством настроек, блоков, плагинов, эта цифра может доходить до 50-60 запросов.

Как узнать время генерации страницы?

Опять аналогичным образом добавляем в footer.php строчку:

<?php timer_stop(1); ?>

Время генерации страницы в большей степени зависит от мощностей сервера. У меня на виртуальном хостинге страница чистого WP генерируется за 120мс.

Теперь можно объединить все показатели и выводить их в фиксированном блоке наверху сайта. И показывать только администраторам.

<?php if ( current_user_can( 'manage_options' ) ) { ?>
    <div style="position:fixed;top:50px;left:5px;padding:5px;font-size:11px;color:#fff;background:#000;">
        <?php timer_stop(1); ?> /
        <?php echo get_num_queries(); ?> /
        <?php if (function_exists('memory_get_usage')) echo round(memory_get_usage()/1024/1024, 2) . 'MB'; ?>
    </div>
<?php } ?>

Вот так это выглядит на сайте:

данные о нагрузке на WP

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

Добавить комментарий

Похожие посты