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

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

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

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

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

На панели обзора newrelic (APM> Мое приложение> Мониторинг> Обзор) он говорит, что мое время «сервера приложений» в среднем составляет 1560 мс, а мое «время браузера» — 5,63 с (я включил мониторинг браузера). Кроме того, в разделе «Транзакции» отображаются транзакции, занимающие до 11,6 секунд.

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

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

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

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

Спасибо!

1

Решение

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

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

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

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

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

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

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

  • зеленая линия представляет среднее время отклика, которое соответствует зеленой области первого графика. Здесь мы видим, что на самом деле транзакции занимают в среднем менее 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/)

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

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]