Intereting Posts
Можно ли это сделать в запросе MySQL, или это нужно сделать в PHP? (серверный) Изменение размера изображения при загрузке PHP: Предупреждение: sort () ожидает, что параметр 1 будет массивом, ресурс указан Загружать несколько файлов на сервер с php, не загружая на сервер все файлы PHP – не может использовать скаляр как предупреждение массива Выходной буфер PHP не промывается Проверьте, пользуется ли пользователь IE в режиме совместимости Как программировать логин / аутентификацию пользователя? ClassNotFoundException: Попытка загрузить класс … Symfony Загрузка не работает правильно, если файл слишком большой Как получить счет Share Facebook и комментарий на версию 2.7 CakePHP проверяет, зарегистрирован ли пользователь внутри представления window.open не работает с IE9 Проверьте тип и размер файла изображения перед загрузкой файла в php Создайте файл Google Chrome Crx с помощью PHP

Как время «сервера приложений» связано с «временем браузера» и «временем транзакции» в newrelic?

Я контролирую приложение PHP с помощью NewRelic, и я очень смущен некоторыми номерами, представленными в обзоре моего приложения.

Мое приложение состоит из PHP webapp, который обслуживает страницы для веб-браузеров с одной стороны (очевидно 🙂 и выполняет запросы к бэкэнду Java с другой стороны:

Браузер <-> PHP Webapp -> Java Backend

Я знаю, что некоторые из запросов на бэкэнд Java могут занять до 15 секунд, что приведет к полному webapp с точки зрения браузера, который занимает много времени.

В обзорной панели newrelic (APM> My App> Monitoring> Overview) говорится, что время моего «сервера приложений» составляет в среднем 1560 мс, а мое «время браузера» – 5,63 с (я включил мониторинг браузера). Кроме того, в разделе «Сделки» показаны транзакции длиной до 11,6 секунд.

Итак … как все эти разные измерения времени связаны между собой? Подводя итог, я имею:

  • Время работы PHP-сервера приложений: 1560 мс
  • PHP-приложение «время браузера»: 5.63 сек.
  • Время транзакций: 11,6 сек.

Как я могу понять эти цифры? Я бы ожидал, что «время браузера» будет самым высоким (поскольку он включает в себя все остальные, как обработку PHP, так и транзакцию). Складываются ли они каким-то образом? Некоторые из них являются разбивкой других?

Примечание. Я знаю, что в newrelic это все среднее время по сравнению с анализируемым временным окном, но все же это не имеет смысла для меня.

Благодаря!

Ну, я, наконец, понял это. Ключевая концепция, которую я здесь отсутствовала, была «процентили». Позвольте мне немного пояснить.

В моем вопросе я упомянул, что получаю среднее время отклика 1560 мс, что, по-видимому, не имело смысла, учитывая тот факт, что наш бэкэнд всегда должен обрабатывать около 15 секунд, чтобы дать ответ. Следующая картина – это то, что я получаю в «обзоре» моего webapp.

веб-транзакции среднее время

Как вы можете видеть, среднее время ответа не так уж плохо. Тем не менее, я также вижу транзакции, которые занимают до 15 секунд.

Затем, если вы увеличите селектор «Время отклика веб-транзакций» и выберите знак процента («%»), вы получите график «Percentiles». Шахта выглядит следующим образом:

процентили веб-транзакций

На этом новом графике:

  • Зеленая линия представляет среднее время отклика, которое соответствует зеленой зоне первого графика. Здесь мы видим, что на самом деле это означает, что транзакции занимают в среднем менее 2 секунд для завершения. Все идет нормально.
  • Линия оранжевого цвета , соответствующая «95%». Это ключ к пониманию того, как все эти числа объединяются. Этот «95%» соответствует «95- му процентилю » ваших запросов. Это означает, что 95% ваших запросов занимают меньше времени. Но, конечно, это также означает, что 5% ваших запросов берут больше!
  • Синяя линия , соответствующая «99%» или «99-й процентиль» ваших запросов, означает, что 99% ваших запросов занимают меньше этой строки, но опять же 1% занимает больше.
  • Красная линия , соответствующая «медиане», которая, если факт является синонимом «50%» или «50-й процентиль». В этом пункте вы можете себе представить, что это такое: 50% ваших запросов занимают меньше, чем в этот раз, а еще 50% принимают больше (отсюда и название «медиана»). Обратите внимание, что эта мера значительно отличается от «среднего» понятия, поскольку среднее суммирует все времена и делит на общее количество транзакций, тем самым скрываясь в большом объеме выборки, те транзакции, которые находятся на крайних значениях время выборки.

Теперь все начинает иметь смысл. Мои средние запросы на самом деле занимают не более 2 секунд. Но у меня так много запросов, которые очень быстры (те, что ниже красной линии), что те, кто занимает невероятное количество времени в 15 секунд, в среднем не заметны. Это видно только тогда, когда вы смотрите на длинный хвост ваших выборочных запросов, т.е. 95-й и 99-й процентили.

Для его завершения можно подтвердить выбор опции «гистограмма» на графике. Шахта выглядит следующим образом:

гистограмма веб-транзакций

Обратите внимание, что подавляющее большинство запросов занимает менее 200 мс, но у нас также есть 8,29% транзакций, которые занимают более 7 секунд для завершения (и если бы мы могли прокрутить направо от гистограммы, мы обнаружили бы, что на самом деле запрос занимает больше, чем 15 секунд – последние 5% и 1%, из-за анализа процентных показателей, который мы делали раньше).

(В этой статье я указал в правильном направлении: https://blog.newrelic.com/2013/10/23/histograms-percentiles-new-relic-style/ )

Это меня долго дезориентировало, надеюсь, что это поможет кому-то!