Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

php Анализ медленного выполнения скриптов

Лекция



Привет, Вы узнаете о том , что такое php анализ медленного выполнения скриптов, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое php анализ медленного выполнения скриптов , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .

Отладка PHP скриптов с использованием slow_log и многое другое

php Анализ медленного выполнения скриптовЕсли вы старый PHP программист, вы должны были использовать в PHP error_log  функцию некоторое времяНо сама по себе PHP не предоставляет способ выяснить , медленно выполнения сценариев. Медленные сценарии не являются те ,которые нарушают ваш сайт , но они замедляют вниз все. Использование FPM, мы можем иметь slow_log для всех таких сценариев. Давайте посмотрим , как использовать эти журналы для отладки PHP скриптов. Кроме того , мы увидим , как в PHP error_log получает перенаправляются , если он работает за FPM и Nginx.

Настройка slow_log для PHP скриптов

Открыть ...  ВИМ /etc/php5/fpm/pool.d/www.conf Внесите необходимые изменения , чтобы соответствовать следующие значения:

slowlog = /var/log/php5/slow.log
request_slowlog_timeout = 10s

Вы можете заменить 10s с любым другим значением. Это поможет нам найти скрипты, которые выполняют медленно. изменение размеров изображения функция, сеть I / O соответствующие функции некоторые примеры, которые будут часто показывать-вверх в PHP slow_log. Его до вас, чтобы отладить их или игнорировать их, основываясь на вашем контексте.

Настройка error_log для PHP скриптов

При запуске PHP с помощью FPM, мы можем переопределить любые php.ini настройки из FPM. Открыть ...  ВИМ /etc/php5/fpm/pool.d/www.conf Прокрутка вниз к нижней части и раскомментируйте / изменение следующих 3 -х линий , чтобы соответствовать значениям , приведенным ниже:

php_admin_value [error_log] = /var/log/php5/error.log
php_admin_flag [log_errors] = на

Обратите внимание , что включение display_errors  может привести к поломке приложений Ajax-приложений. Так что будьте очень осторожны с этим.

Важное значение для Nginx пользователей

Вы не увидите файл /var/log/php5/error.log  или нет какая - либо ошибка регистрируется , в этом файле. Ошибки в ваших скриптах для сайта будет идти вerror_log  указанный для этого сайта в его Nginx конфигурации. Скорее всего: /var/www/example.com/logs/error.log файл Если вы не указали  error_log  путь для вашего сайта, то ошибки PHP будет перейти по умолчанию error_log Nginx в. Скорее всего  /var/log/nginx/error.log  файл) Вы можете  найти более подробную информацию здесь об отладке с Nginx .

Настройка FPM error_log для отладки самого FPM

FPM это отдельный процесс. Как и другие, он может работать в себя ошибки! Error_log FPM находится по умолчанию , но мы изменим свой ​​путь , чтобы удовлетворить наше соглашение. Открыть ...  ВИМ /etc/php5/fpm/php-fpm.conf Убедитесь , что error_log значение выглядит , как показано ниже

error_log = /var/log/php5/fpm.log

Обратите внимание , что эта error_log не связана с PHP в  error_log  функции ,описанной ранее.

Подтвердите изменения ...

Создание каталога журнала php5 поэтому мы можем иметь все PHP журналы в одном месте:

MkDir / Var / Журнал / php5 /

Перезагрузка PHP-FPM для изменения вступили в силу ...

служба php5-FPM перезагрузка

Файл журнала мониторинга

Лучший способ открыть отдельную оболочку на вашем сервере и использовать хвост -f  команду для мониторинга журналов ... Об этом говорит сайт https://intellect.icu . Как у нас есть несколько файлов журналов для мониторинга,  вы можете просто использовать следующую команду , чтобы контролировать их все вместе ...

Tail -f /var/log/php5/*.log

slow_log  помог нам много раз , чтобы исключить из наших узких применений.

Всегда помните ,  чтобы выключить его , когда вы закончите с отладкой. Оставляяslow_log  на это не очень хорошая идея.

 

Анализируем php-fpm.slow.log

 
Итак, настал тот день когда Вы или Ваш коллега, наконец-то, запустили серьезный проект, будь то портал/социальная сеть/игра для социалок. Но, как всегда внезапно, проект начинает тормозить. В чем же дело? Ведь и база настроена как надо, и кеш используется, даже nginx с акселератором PHP кода трудятся в поте лица.

Дабы не покрывать весь код каким-то Benchmark'ом для выявления узких мест можно воспользоваться замечательной возможностью логирования php-fpm, который будет дампить скрипты, выполнявшиеся больше N секунд. Включается это чудо в php-fpm.conf.

Что же делать?

В первую очередь, следует найти и исправить код в тех местах, где проблема возникает чаще всего. В этом нам поможет нижеследующий пример.

//чтобы отсечь лишнее, подбирается под конкретные задачи анализа лога, список функций легко определить на глаз при открытии файла лога
$functions=array(
"mysql_query",
"session_start",
);

//функция очищения пути к файлу
function clear_path($path)
{
return str_replace("/home/","",$path);
}

//открываем и парсим лог
$f=fopen("/path/to/php-fpm.log.slow.1","r");
if ($f)
while (($row=fgets($f,4096))!==false)
{
foreach ($functions as $function)
if (strpos($row,$function)!==false)
{
$path=explode(" ",$row);
$path=array_pop($path);
$path=explode(":",$path);
$result[clear_path($path[0])][trim($path[1])]++;
}
}
print_r($result);


На выходе мы получаем массив, ключами которого является путь до проблемного файла, а значениями — второй массив, ключами которого является строка в файле, значением — количество выполнений более N секунд.

Array
(
[/path/to/script1.php] => Array
(
[7] => 9
)

[/path/to/script2.php] => Array
(
[64] => 5
)

[/path/to/script3.php] => Array
(
[375] => 1
[468] => 39
[358] => 1
[391] => 5
[249] => 1
[154] => 2
)
)

Далее каждый уже для себя может настроить вывод в более приятной для глаза форме.

Что еще следует знать

В новом формате php-fpm.slow.log так же присутствует возможность просмотра параметров, переданных скрипту, приводится само время выполнения.
script_filename = /data/www/forum.php mod=rss&fid=3378&auth=0 (0.550162 sec) 
Произведя несложную модификацию примера, а именно — добавив обработку строки с script_filename, можно получить немного больше информации для отладки.

Заключение

После решения проблем, выявленных при помощи этого анализа, вероятнее всего, Ваш сервер снова будет радовать своих посетителей безупречной работой, а Вам останется лишь иногда поглядывать в slow.log для собственного спокойствия.

В заключение, эта статья об php анализ медленного выполнения скриптов подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое php анализ медленного выполнения скриптов и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Из статьи мы узнали кратко, но содержательно про php анализ медленного выполнения скриптов
создано: 2016-03-01
обновлено: 2021-01-10
132655



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)