Ответ
Для оценки нагрузки на веб-сервис используется набор метрик, которые делятся на две основные категории: метрики системных ресурсов и метрики производительности приложения.
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 для детального отслеживания производительности на уровне кода (трассировка запросов).