← Назад к вопросам
Какими командами смотришь, куда уходят ресурсы
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), чтобы выявлять аномалии. Я всегда настраиваю алертинг на критические метрики и веду историю изменений для анализа трендов и планирования масштабирования.