Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Node.js: performance metrics, monitoring, application logs, latency, error rate, throughput

Какие метрики и логи нужно анализировать при проблемах с производительностью?

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

Короткий ответ

При анализе проблем с производительностью нужно смотреть на несколько ключевых метрик. Основные из них — это время отклика (latency), количество запросов в секунду (throughput) и процент ошибок (error rate). Также важно анализировать использование ресурсов: загрузку CPU, потребление памяти (RAM) и дисковые операции (I/O). Логи приложений и веб-серверов (например, access.log, error.log) показывают конкретные запросы, которые привели к замедлению или сбою. Мониторинг этих данных помогает быстро найти узкие места.

Длинный ответ

Диагностика проблем производительности — это системный процесс, который начинается с анализа высокоуровневых метрик, чтобы локализовать проблему, а затем углубляется в логи для поиска корневой причины.

Ключевые метрики для мониторинга

Сначала оценивают "здоровье" системы по четырём золотым сигналам мониторинга:

  • Задержка (Latency): Время, за которое система обрабатывает запрос. Важно отслеживать как среднее значение, так и перцентили (p95, p99), так как медленные выбросы часто указывают на проблемы.
  • Трафик (Throughput): Количество успешных запросов в единицу времени (RPS — запросов в секунду). Резкое падение может означать сбой или узкое место.
  • Ошибки (Error Rate): Процент запросов, завершившихся с ошибками (HTTP 5xx, таймауты). Рост этого показателя — прямой сигнал о проблеме.
  • Насыщенность (Saturation): Насколько загружены ключевые ресурсы: загрузка CPU, использование оперативной памяти, дисковое пространство и I/O, сетевой трафик.

Анализ логов

После выявления аномалии в метриках переходят к логам:

  • Логи приложения: Содержат информацию о бизнес-логике, вызовах внешних сервисов, времени выполнения операций. Ищите медленные запросы, исключения и stack traces.
  • Логи веб-сервера (Nginx/Apache access.log): Показывают все входящие HTTP-запросы, их статусы и время ответа. Фильтрация по кодам ответа 5xx или по большому времени обработки помогает найти проблемные эндпоинты.
  • Логи базы данных: Медленные запросы (slow query log) — частая причина проблем. Анализ планов выполнения (EXPLAIN) таких запросов критически важен.
  • Логи инфраструктуры и системные логи: Могут указывать на нехватку ресурсов, проблемы с сетью или сбои на уровне ОС.

Практический пример анализа

Предположим, метрики показали рост задержки p99 для API-эндпоинта /api/users. В логах приложения можно найти соответствующие записи:

// Пример структурированного лога приложения (JSON)
{
  "timestamp": "2023-10-05T14:22:01.123Z",
  "level": "INFO",
  "message": "Request completed",
  "method": "GET",
  "path": "/api/users",
  "statusCode": 200,
  "responseTime": 2450, // Время ответа в мс — очень высокое!
  "userId": "12345",
  "query": "SELECT * FROM users WHERE active = true ORDER BY created_at DESC" // Подозрительный запрос
}

Этот лог сразу указывает на потенциальную проблему с запросом к базе данных. Дальнейший анализ slow query log БД и объяснение плана запроса поможет её решить, например, добавив индекс на поле active.

Вывод: Систематический анализ метрик (задержка, трафик, ошибки, насыщенность) в сочетании с детальным изучением логов приложения, сервера и базы данных является основным методом для быстрой диагностики и устранения проблем с производительностью.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • Node.js

    Node.js

  • Networks

Ключевые слова

#performance metrics

#monitoring

#application logs

#latency

#error rate

#throughput

Подпишись на Java Developer в телеграм