Какие ключевые метрики используются для оценки нагрузки на веб-сервис?

«Какие ключевые метрики используются для оценки нагрузки на веб-сервис?» — вопрос из категории Архитектура, который задают на 10% собеседований Python Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для оценки нагрузки на веб-сервис используется набор метрик, которые делятся на две основные категории: метрики системных ресурсов и метрики производительности приложения.

1. Метрики системных ресурсов (System Resource Metrics)

Показывают, как сервис использует инфраструктуру.

  • CPU Utilization (Загрузка ЦП): Процент времени, в течение которого процессор занят. Постоянно высокая загрузка (>80-90%) сигнализирует о нехватке вычислительной мощности.
  • Memory Usage (Использование памяти): Объем потребляемой оперативной памяти. Резкие скачки или постоянное приближение к лимиту могут привести к использованию swap-файла и резкому падению производительности.
  • Disk I/O (Дисковый ввод-вывод): Скорость чтения и записи данных на диск. Важно для сервисов, активно работающих с базами данных или файловой системой.
  • Network I/O (Сетевой ввод-вывод): Объем входящего и исходящего трафика. Помогает выявить узкие места в сети.

2. Метрики производительности приложения (Application Performance Metrics)

Отражают качество работы самого сервиса с точки зрения пользователя.

  • Throughput (Пропускная способность): Количество запросов, обрабатываемых в единицу времени (например, RPS — Requests Per Second).
  • Latency (Время ответа): Время, необходимое для обработки одного запроса. Обычно измеряется в миллисекундах. Важно отслеживать не среднее значение, а перцентили (например, p95, p99), которые показывают время ответа для 95% или 99% запросов.
  • Error Rate (Уровень ошибок): Процент запросов, завершившихся с ошибкой (например, с HTTP-статусами 5xx). Рост этого показателя — явный признак проблем.

Инструменты для мониторинга

  • Prometheus + Grafana: Стандарт индустрии для сбора и визуализации метрик.
  • ELK Stack (Elasticsearch, Logstash, Kibana): Для сбора, анализа и визуализации логов.
  • APM-системы (Application Performance Monitoring): Инструменты вроде Datadog, New Relic или Sentry для детального отслеживания производительности на уровне кода (трассировка запросов).