Skip to content
EN

Что такое p99 latency

Коротко:

p99 latency — 99-й процентиль времени ответа: значение, выше которого находится 1% запросов. Показывает worst-case experience для (среднестатистически) одного из 100 пользователей. Важнее median (p50) потому, что "medium" клиент доволен, но worst 1% — ваш самый громкий critic. Типичное соотношение: p99 = 10-20× p50. Cloud-native apps стремятся к p99 < 500ms.

Ниже: подробности, пример, смежные термины, FAQ.

Проверить скорость сайта →

Подробности

  • p50 (median): половина запросов быстрее, половина медленнее
  • p95: 95% запросов быстрее, 5% медленнее
  • p99: 99% быстрее, 1% медленнее (tail)
  • p99.9: 999 / 1000 — ещё более жёсткий, "three nines"
  • Причины p99 выбросов: cold start, GC pause, network retries, DB lock

Пример

Response times: 50, 80, 100, 120, 150, ..., 850, 2400 ms
p50 = 120 ms (middle)
p99 = 2400 ms (1-of-100 worst)
p99/p50 ratio = 20× (high tail)

Смежные термины

Что такое p99 latency?

p99 latency, или 99-й процентиль задержки, представляет собой метрику, использующуюся для оценки времени отклика системы, при котором 99% всех запросов обрабатываются быстрее определенного значения. Эта метрика позволяет выявить крайние случаи задержек, которые могут негативно сказываться на пользовательском опыте. Например, если p99 latency составляет 300 миллисекунд, это означает, что 99% всех запросов обрабатываются за 300 миллисекунд или быстрее, а лишь 1% запросов может занять больше времени.

Зачем важен p99 latency?

p99 latency важен для мониторинга и оптимизации производительности веб-приложений и сервисов. В отличие от средних значений, которые могут скрывать проблемы с производительностью, p99 latency фокусируется на наиболее медленных запросах, которые могут негативно влиять на конечных пользователей. Это особенно критично для систем с высоким трафиком и требованиями к быстродействию. Например, в e-commerce платформах, где время отклика напрямую влияет на конверсии, контролирование p99 latency может помочь в выявлении узких мест и оптимизации архитектуры.

Для измерения этой метрики можно использовать различные инструменты мониторинга, такие как Prometheus или Grafana. С помощью этих инструментов можно собирать данные о задержках и визуализировать их в виде графиков. Например, используя Prometheus, можно выполнить запрос:

histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

Этот запрос позволит получить значение p99 latency для HTTP запросов за последние 5 минут.

Практический пример: измерение p99 latency

Рассмотрим практический пример измерения p99 latency на примере приложения, использующего Nginx в качестве веб-сервера. Для начала необходимо установить и настроить инструмент для мониторинга, такой как Prometheus. После этого можно добавить в конфигурацию Nginx следующие директивы для записи времени обработки запросов:

log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$request_time"';
access_log /var/log/nginx/access.log main;

Здесь $request_time будет содержать время обработки каждого запроса. После этого необходимо настроить Prometheus для сбора этих данных. Для этого добавляем в конфигурацию Prometheus следующий job:

- job_name: 'nginx'
static_configs:
- targets: ['localhost:9090']
metrics_path: '/metrics'

После успешного сбора данных можно использовать запросы к Prometheus для вычисления p99 latency. Например, вы можете создать график в Grafana, используя следующий запрос:

histogram_quantile(0.99, sum(rate(nginx_http_request_duration_seconds_bucket[5m])) by (le))

Таким образом, вы сможете визуализировать p99 latency в режиме реального времени и принимать меры по оптимизации производительности вашего приложения.

PerformanceОбщая оценка скорости 0-100
Core Web VitalsLCP, FID, CLS — метрики Google
Размер страницыОбъём HTML, CSS, JS, изображений
РекомендацииКонкретные советы по ускорению

Почему нам доверяют

Lighthouse
движок анализа
CWV
Core Web Vitals
4
категории Lighthouse
Точные
рекомендации

Как это работает

1

Введите URL страницы

2

Lighthouse анализирует

3

Получите CWV и советы

Почему скорость сайта важна?

Скорость загрузки напрямую влияет на конверсию, SEO-позиции и удовлетворённость пользователей. Google использует Core Web Vitals как фактор ранжирования. Каждая лишняясекунда загрузки может стоить до 7% конверсии.

Lighthouse-анализ

Анализ на основе Google Lighthouse: Performance, Accessibility, Best Practices, SEO.

Core Web Vitals

LCP (скорость отрисовки), FID (интерактивность), CLS (визуальная стабильность) — ключевые метрики Google.

Анализ ресурсов

Разбивка по типам: HTML, CSS, JavaScript, изображения, шрифты. Размер, количество запросов, блокирующие ресурсы.

Действенные советы

Конкретные рекомендации с оценкой экономии: сжатие изображений, кеширование, минификация и т.д.

Mobile vs Desktop

Mobile
  • Тестирование на эмуляции Moto G Power (медленный CPU)
  • Сеть: 4G (1.6 Mbps, 150ms RTT)
  • Строже оценивает скорость
  • Google индексирует mobile-first
  • Приоритет для SEO-оптимизации
Desktop
  • Высокая производительность CPU
  • Быстрое соединение без ограничений
  • Результаты обычно выше на 20-40 баллов
  • Важен для B2B и корпоративных сайтов
  • Используйте для baseline-сравнений

Кому это нужно

SEO-специалисты

Core Web Vitals для ранжирования

Разработчики

оптимизация производительности

Маркетологи

скорость = конверсия

DevOps

регрессия производительности

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

Неоптимизированные изображенияИзображения — до 70% веса страницы. Используйте WebP/AVIF и lazy loading.
Блокирующий JS в &lt;head&gt;Скрипты без async/defer блокируют отрисовку. Переместите в конец или добавьте атрибут.
Нет кеширования статикиБез Cache-Control браузер перезагружает CSS/JS при каждом визите.
Слишком много HTTP-запросовКаждый запрос — это latency. Объединяйте файлы, используйте спрайты или инлайн критический CSS.
Отсутствие сжатия (gzip/brotli)Сжатие уменьшает размер текстовых ресурсов на 60-80%. Включите brotli на сервере.

Лучшие практики

Оптимизируйте изображенияWebP для фото, SVG для иконок. loading="lazy" для изображений ниже first fold.
Включите brotli-сжатиеBrotli на 15-20% эффективнее gzip. Настройте в nginx: brotli on;
Настройте кешированиеСтатика: Cache-Control: max-age=31536000, immutable. HTML: max-age=0, s-maxage=60.
Предзагрузка критических ресурсов<link rel="preload"> для шрифтов и CSS. Уменьшает LCP на 200-500ms.
Тестируйте регулярноСкорость деградирует со временем. Проверяйте после каждого деплоя и раз в месяц.

Получите больше с бесплатным аккаунтом

История проверок скорости, сравнение с конкурентами и мониторинг PageSpeed.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Почему не средний (mean)?

Mean искажается outliers. p50/p95/p99 более stable и отражают user experience.

Как измерять на маленьком трафике?

Histogram с bucket'ами (Prometheus, DataDog). С 100 req/день p99 = worst-1, что шумно. Используйте p95 + weekly rolling.

Как улучшить p99?

1) Cache hit ratio. 2) Connection pools (DB, Redis). 3) Circuit breakers. 4) Timeout + retry + jitter. 5) Async I/O.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.