Получить доступ

Что верно про измерение времени ответа сервиса?

MiddleНаблюдаемость и SLO
Ещё спрашивают так:
  • Как правильно измерять время ответа?
  • Можно ли усреднять p99 между серверами?
Коротко

Смотрим перцентили (p50, p95, p99), а не среднее; перцентили не усредняются — считаем из гистограмм; успешные и ошибочные запросы — раздельно.

  • Быстрые 500-е маскируют аварию в общей задержке
  • Хвост усиливается в цепочках и при fan-out
  • Мерить и на клиенте: сервер не видит очередь перед собой и сеть

А ещё Между медианой и p99 нет универсального соотношения

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Почему не среднее. Распределение задержек скошено: большинство запросов быстрые, хвост длинный. Среднее его прячет; p50 показывает типичный опыт, p95/p99 — то, что видят невезучие и на что жалуются.

Почему перцентили не усредняются. p99 каждого из десяти подов ничего не говорит о p99 их суммы. Правильно — собирать гистограммы (счётчики по бакетам задержки), складывать их и вычислять перцентиль по сумме: histogram_quantile(0.99, sum by (le) (rate(...))).

Раздельно по статусу. Ошибка часто возвращается быстро (сразу 500 или отказ circuit breaker). Если смешать, при аварии задержка даже «улучшится». Задержку считают для успешных, а долю ошибок — отдельно.

Где мерить: сервер видит время обработки, но не очередь в балансировщике, не сеть, не повторы клиента. Важны метрики на стороне клиента или балансировщика.

Хвосты в цепочках: ответ агрегатора ждёт самый медленный из N вызовов, поэтому его p99 определяется p99.9 зависимостей.

Нагрузочные тесты: генератор с фиксированной скоростью, иначе coordinated omission занижает хвост.

Что хотят услышать

  • Перцентили вместо среднего и почему.
  • Гистограммы для агрегации, запрет усреднения перцентилей.
  • Раздельный учёт по статусу ответа.
  • Хвост в цепочках, измерение на клиенте — плюс.

Частые ошибки

  • Усреднять p99 разных серверов.
  • Смешивать задержку ошибок и успешных ответов.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Среднее скрывает длинный хвост: при среднем 50 мс каждый сотый пользователь может ждать секунды
  • ✓Перцентили нельзя усреднять по инстансам — нужно складывать гистограммы и считать перцентиль по сумме
  • ✓Задержку успешных и неуспешных запросов считают раздельно, иначе быстрые ошибки улучшают статистику
  • ✗p99 всегда можно получить, умножив медиану на коэффициент 2

Что спросят дальше

  • Почему в микросервисной цепочке хвост усиливается?
  • Как связаны гистограммы и вычисление перцентилей?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем