28

Мониторинг: avarage time vs percentile

Всем привет! Для всех, кто сталкивался с мониторингом или любым подсчетом большого количества данных, сталкивался с таким понятием как "среднее значение".

Но истинно ли оно?

Давайте разберем, что есть avg и percentile.

Avg - среднее арифметическое нескольких чисел, сумма этих чисел, которую разделили на количество слагаемых.

Процентиль(он же квантиль) - это определённая часть выборки данных. Чаще всего используют 50, 75, 90, 99 процентили.

Если со средним значением все понятно, то процентиль проще пояснить на примере. Допустим, у нас есть 10 баз данных, на которые стабильно поступают SQL запросы. Мы знаем, что в среднем наша норма ответа на один тяжеловесный запрос около 1000ms в одной БД. Но одна из БД сегодня под повышенной нагрузкой, и не справляется с нагрузкой.

Возьмем значение для последней БД 19000ms. Если считать среднее значение, то выйдет такая картина:

(9000 + 19000) \ 10 = 2 800 ms время выполнения запроса для каждой БД. Что это значит? Имея такую картину, мы первым делом осознаем, что остальные 9 серверов должны были превысить допустимый лимит в условных 1500ms. Но если проверить вручную, то выяснится, что остальные 9 БД обрабатывают тяжеловесный запрос все так же 1000ms.

Возьмем для подсчета 50-й и 99-й процентиль.

Для его подсчета нам потребуется набор входящих данных.

1121; 983; 1200; 891; 1068; 1042; 1000; 1010; 999; 19000;

Считается он по этой формуле:

Где P-й процентиль списка из N упорядоченных по величине чисел (от меньших к большим) является наименьшее в списке число, которое больше, чем N процентов всех чисел исследуемого ряда. Например, для приведенного выше примера с временем выполнения запроса, 99-й процентиль означает время выполнения, которое больше, чем время выполнения 99% других БД.

50-й процентиль будет равен 1 026, это будет являться истинным средним значением для большинства серверов. Но откидывать из мониторинга последний сервер так же нельзя. Для этого мы считаем 99-й процентиль. Он будет равен 17 398.


Конечно вручную вам считать не придется, так как это умеют делать и системы мониторинга и прочие инструменты.

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

Для визуализации своих метрик я использую grafana. Выглядеть это будет вот так:

(график просто для примера, он не является визуализацией моих подсчетов)

Краткая мораль avg - зло(в большинстве случаев), процентиль - добро. Всем спасибо за внимание.

P.S. для подсчета процентилей использовался онлайн калькулятор.

Лига Сисадминов

2.4K поста18.9K подписчиков

Правила сообщества

Мы здесь рады любым постам связанным с рабочими буднями специалистов нашей сферы деятельности.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества