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

Какими командами смотришь, куда уходят ресурсы

2.3 Middle🔥 171 комментариев
#Linux и администрирование#Мониторинг и логирование

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

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

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

Анализ потребления ресурсов в Linux

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

Основные команды для мониторинга ресурсов

1. Общий обзор системы

# Комплексная информация о системе
htop
top
glances  # современная альтернатива с расширенными возможностями

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

2. Анализ потребления CPU

# Детальная информация о процессах
ps aux --sort=-%cpu | head -20  # топ-20 процессов по CPU

# Профилирование CPU
perf top  # анализ "горячих" функций
pidstat 1  # мониторинг конкретных процессов

# Просмотр нагрузки
uptime  # load average
cat /proc/loadavg

3. Мониторинг памяти

# Общее использование
free -h  # в человекочитаемом формате
cat /proc/meminfo

# Детализация по процессам
ps aux --sort=-%mem | head -20  # топ по памяти
smem -s rss -r  # сгруппированная информация

# Анализ страничной памяти
vmstat -s  # статистика свопинга
sar -B 1  # активность подкачки страниц

4. Анализ дискового ввода-вывода

# Общая статистика
iostat -x 1  # расширенная статистика IO
iotop  # топ процессов по дисковому IO

# Мониторинг конкретных устройств
lsblk  # список блочных устройств
df -h  # использование дискового пространства
du -sh /path/*  # размер директорий

# Анализ файловых дескрипторов
lsof | wc -l  # общее количество открытых файлов
ls -la /proc/<PID>/fd  # дескрипторы конкретного процесса

5. Сетевая активность

# Мониторинг сетевых интерфейсов
iftop  # топ по сетевой активности
nethogs  # группировка по процессам

# Статистика соединений
ss -tulpn  # современная замена netstat
netstat -tulpn  # классический вариант

# Пропускная способность
vnstat  # долгосрочная статистика
bmon  # мониторинг в реальном времени

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

Для постоянного мониторинга и анализа трендов я предпочитаю использовать:

  • Prometheus + Grafana для сбора метрик и визуализации
  • Node Exporter для сбора системных метрик
  • cAdvisor для мониторинга контейнеров
  • NetData для real-time мониторинга

Пример скрипта для быстрого анализа

#!/bin/bash
# Скрипт для экспресс-анализа ресурсов

echo "=== СИСТЕМНЫЙ АНАЛИЗ ==="
echo "Дата: $(date)"
echo "Uptime: $(uptime)"

echo -e "\n=== CPU ==="
echo "Load average: $(cat /proc/loadavg)"
echo "Топ процессов по CPU:"
ps aux --sort=-%cpu | head -5

echo -e "\n=== ПАМЯТЬ ==="
free -h
echo "Топ процессов по памяти:"
ps aux --sort=-%mem | head -5

echo -e "\n=== ДИСКИ ==="
df -h /
echo "IO статистика:"
iostat -x 1 2 | tail -5

echo -e "\n=== СЕТЬ ==="
echo "Активные соединения:"
ss -s

Ключевые показатели для анализа

При анализе ресурсов я обращаю внимание на:

  • Процент утилизации CPU и load average (количество процессов в очереди)
  • Использование RAM и swappiness (активность свопинга)
  • IOPS и latency дисковых операций
  • Network throughput и количество соединений
  • Контекстные переключения (context switches) и прерывания (interrupts)

Мониторинг в контейнеризованных средах

Для Docker и Kubernetes использую дополнительные инструменты:

# Для Docker
docker stats
docker system df

# Для Kubernetes
kubectl top nodes
kubectl top pods --containers

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

Какими командами смотришь, куда уходят ресурсы | PrepBro