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

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

Ответ

Мониторинг нагрузки (performance monitoring) проводится на разных уровнях стека с помощью специализированных инструментов.

Уровни мониторинга и инструменты:

Уровень Цель Инструменты
Инфраструктура CPU, RAM, Disk I/O, Network OS: top, htop, vmstat, iostat, nmon (Linux). Системы: Zabbix, Nagios, Prometheus (сбор метрик).
Приложение (APM) Время отклика, ошибки, трассировка запросов Специализированные: New Relic, Datadog, AppDynamics. Open-source: Jaeger, Zipkin (трассировка).
Сеть и БД Запросы к БД, сетевая задержка БД: pg_stat_statements (PostgreSQL), slow query log. Сеть: Ping, traceroute, Wireshark.
Клиентский (Frontend) Время загрузки страницы, отрисовки Браузер: Chrome DevTools (Performance, Lighthouse). RUM: Яндекс.Метрика, Google Analytics.
Визуализация и алертинг Дашборды, уведомления Grafana (чаще всего с Prometheus). Встроенные дашборды в Datadog, New Relic.

Примеры использования:

  1. Быстрая проверка нагрузки на сервере через CLI:

    # Просмотр процессов, потребляющих CPU
    top -b -n 1 | head -20
    # Мониторинг использования памяти
    free -h
    # Проверка дискового ввода/вывода
    iostat -dx 2 5
  2. Настройка базового алерта в Prometheus + Alertmanager (пример для высокого CPU):

    # alert_rules.yml
    groups:
      - name: host_alerts
        rules:
        - alert: HighCpuLoad
          expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
          for: 5m
          labels:
            severity: warning
          annotations:
            summary: "Высокая загрузка CPU на {{ $labels.instance }}"

Best Practice: Внедрять мониторинг по методологии USE (Utilization, Saturation, Errors) или RED (Rate, Errors, Duration) для комплексного покрытия метрик.