← Назад к вопросам

Как посмотреть утилизацию ресурсов (цпу, память)

1.3 Junior🔥 162 комментариев
#Linux и администрирование#Мониторинг и логирование

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Мониторинг утилизации ресурсов в DevOps-практике

В DevOps-контексте мониторинг утилизации CPU и памяти является критически важной задачей для обеспечения стабильности, производительности и эффективного использования инфраструктуры. Я поделюсь комплексным подходом, который мы используем на практике, охватывая как базовые команды, так и продвинутые системы мониторинга.

Базовые команды в Linux-системах

Для быстрой диагностики на конкретном сервере используются следующие утилиты:

Для мониторинга CPU:

# Общая нагрузка CPU (1, 5, 15 минут)
uptime

# Динамический мониторинг в реальном времени
top
htop  # более продвинутая версия с цветовым выделением

# Статистика использования CPU
mpstat -P ALL 1  # детализация по всем ядрам каждую секунду

Для мониторинга памяти:

# Общая информация о памяти
free -h  # human-readable формат

# Детальная информация
cat /proc/meminfo

# Отслеживание процессов по потреблению памяти
top -o %MEM  # сортировка по использованию памяти
ps aux --sort=-%mem | head -20  # топ-20 процессов по памяти

Продвинутые инструменты мониторинга

В production-средах мы используем специализированные системы:

1. Prometheus + Node Exporter - де-факто стандарт для облачных сред:

# Пример конфигурации сбора метрик
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['node-exporter:9100']

2. cAdvisor - для контейнеризированных сред (Docker/Kubernetes):

# Запуск cAdvisor для мониторинга контейнеров
docker run -d \
  --name=cadvisor \
  -p 8080:8080 \
  -v /:/rootfs:ro \
  -v /var/run:/var/run:rw \
  google/cadvisor:latest

3. Datadog/New Relic - коммерческие APM-решения с расширенной аналитикой

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

Для CPU:

  • cpu_usage_percentage - общая утилизация
  • load_average - средняя нагрузка (1, 5, 15 минут)
  • context_switches - переключения контекста
  • steal_time - особенно важно в виртуализированных средах

Для памяти:

  • memory_used_percentage - процент использованной памяти
  • swap_usage - использование свопа
  • oom_kills - количество убийств процессов OOM killer
  • page_cache - размер кэша страниц

Автоматизация и алертинг

Мы настраиваем алерты на критические пороги:

# Пример алерт-правила для Prometheus
groups:
  - name: node_alerts
    rules:
      - alert: HighCPUUsage
        expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "High CPU usage on {{ $labels.instance }}"
      
      - alert: HighMemoryUsage
        expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100 > 85
        for: 5m
        labels:
          severity: critical

Анализ в Kubernetes

Для Kubernetes-кластеров дополнительно используем:

# Мониторинг ресурсов подов
kubectl top pods --all-namespaces

# Мониторинг ресурсов нод
kubectl top nodes

# Установка metrics-server для сбора метрик
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

Рекомендации по порогам:

  • CPU: предупреждение при 70%, критический уровень при 85%
  • Память: предупреждение при 80%, критический при 90%
  • Всегда учитывайте burst-нагрузки и сезонные паттерны

В современном DevOps-стеке мониторинг ресурсов не ограничивается простым сбором метрик - он включает прогнозную аналитику, автоматическое масштабирование (HPA/VPA в Kubernetes) и интеграцию с системами инцидент-менеджмента (PagerDuty, OpsGenie). Ключевой принцип - pro-active, а не reactive мониторинг, позволяющий предотвращать проблемы до их возникновения.