p99 latency — 99-й процентиль времени ответа: значение, выше которого находится 1% запросов. Показывает worst-case experience для (среднестатистически) одного из 100 пользователей. Важнее median (p50) потому, что "medium" клиент доволен, но worst 1% — ваш самый громкий critic. Типичное соотношение: p99 = 10-20× p50. Cloud-native apps стремятся к p99 < 500ms.
Ниже: подробности, пример, смежные термины, FAQ.
Бесплатный онлайн-инструмент — тест скорости страницы: результат мгновенно, без регистрации.
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, или 99-й процентиль задержки, представляет собой метрику, использующуюся для оценки времени отклика системы, при котором 99% всех запросов обрабатываются быстрее определенного значения. Эта метрика позволяет выявить крайние случаи задержек, которые могут негативно сказываться на пользовательском опыте. Например, если p99 latency составляет 300 миллисекунд, это означает, что 99% всех запросов обрабатываются за 300 миллисекунд или быстрее, а лишь 1% запросов может занять больше времени.
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 на примере приложения, использующего 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 в режиме реального времени и принимать меры по оптимизации производительности вашего приложения.
Скорость загрузки напрямую влияет на конверсию, SEO-позиции и удовлетворённость пользователей. Google использует Core Web Vitals как фактор ранжирования. Каждая лишняясекунда загрузки может стоить до 7% конверсии.
Анализ на основе Google Lighthouse: Performance, Accessibility, Best Practices, SEO.
LCP (скорость отрисовки), FID (интерактивность), CLS (визуальная стабильность) — ключевые метрики Google.
Разбивка по типам: HTML, CSS, JavaScript, изображения, шрифты. Размер, количество запросов, блокирующие ресурсы.
Конкретные рекомендации с оценкой экономии: сжатие изображений, кеширование, минификация и т.д.
Core Web Vitals для ранжирования
оптимизация производительности
скорость = конверсия
регрессия производительности
async/defer блокируют отрисовку. Переместите в конец или добавьте атрибут.Cache-Control браузер перезагружает CSS/JS при каждом визите.loading="lazy" для изображений ниже first fold.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 искажается outliers. p50/p95/p99 более stable и отражают user experience.
Histogram с bucket'ами (Prometheus, DataDog). С 100 req/день p99 = worst-1, что шумно. Используйте p95 + weekly rolling.
1) Cache hit ratio. 2) Connection pools (DB, Redis). 3) Circuit breakers. 4) Timeout + retry + jitter. 5) Async I/O.
Бесплатный тариф — 10 мониторов, проверки каждые 5 мин, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.