Как получить статистику времени загрузки страницы php? - PullRequest
2 голосов
/ 18 октября 2010

Недавно у нас возникли проблемы с нашей настройкой LAMP, и мы начали видеть, что количество соединений с базами данных MySQL время от времени увеличивается.Мы подозреваем, что некоторые операции mysql занимают больше времени, чем обычно, и apache только что начал создавать резервные соединения для обработки входящих запросов.

Вопрос в том, есть ли способ на странице статистики о таких вещах, как среднее время загрузки?среднее время загрузки?максимальное / минимальное время загрузки для каждой страницы php (page1.php, page2.php, page3.php и т. д.).Так что мы можем сузить, где проблема.Есть ли такая вещь, как часть Apache?Может быть, отдельный модуль?

Ответы [ 2 ]

2 голосов
/ 18 октября 2010

Из формата журнала вы можете просто записать время (%D) в журналы доступа, а после инцидента отсортировать по времени и проверить URL-адреса. Я не знаю ни одного приложения, которое проверяет это из коробки, но многие приложения могут обрабатывать журналы доступа Apache, так что есть вероятность, что есть те, кто может работать с ним. Я редко просматриваю логи, относящиеся к конкретной странице, только итоги сервера, поэтому не могу вам помочь.

Если MySQL занят / причина:

  1. Закройте соединение с MySQL, если вы закончили с ним, поэтому соединение будет разорвано раньше.
  2. Увеличьте максимально допустимые соединения, если они вам действительно нужны.
  3. Если у вас все еще есть зависающие процессы, проверьте вывод SHOW FULL PROCESSLIST, чтобы увидеть, какие запросы выполняются.
  4. Вы можете включить slow_query_log, регистрируя все запросы выше определенного количества миллисекунд (в более новых версиях, старые версии поддерживают только секунды) или не используя индексы. Инструмент командной строки mysqldumpslow может точно группировать / считать запросы.
0 голосов
/ 18 октября 2010

Если у вас есть доступ к php.ini, вы можете использовать Xdebug: http://xdebug.org/

...