Мониторинг ресурсов узла Proxmox VE
Практический мониторинг CPU, памяти, дисков, нагрузки, хранилищ и сетевых интерфейсов на узле Proxmox VE через веб-интерфейс и CLI.
Стабильная работа Proxmox VE зависит от состояния процессора, оперативной памяти, дисков, хранилищ и сети. Недостаточно проверять только статус виртуальных машин: перегрузка самого узла может одновременно повлиять на все VM и LXC.
В этой инструкции рассматривается только базовый мониторинг ресурсов одного узла Proxmox VE через веб-интерфейс и командную строку.
Подходит для: Proxmox VE 8 и 9
Уровень сложности: начальный
Время выполнения: около 15 минут
Требуемый доступ: учётная запись с правами просмотра узла и shell-доступ при использовании CLI
Что будет рассмотрено
После выполнения инструкции можно будет:
- оценивать загрузку CPU;
- проверять использование RAM и swap;
- находить дефицит дискового пространства;
- контролировать состояние хранилищ;
- проверять дисковую нагрузку;
- наблюдать сетевые интерфейсы;
- находить VM и LXC с высокой нагрузкой;
- анализировать системные ошибки.
Мониторинг через веб-интерфейс
Выберите узел Proxmox VE.
Откройте:
Node → Summary
На странице отображаются:
- CPU usage;
- Server load;
- RAM usage;
- SWAP usage;
- Root filesystem usage;
- uptime;
- версия ядра;
- версия Proxmox VE.
Для оценки состояния смотрите не только текущее значение, но и график за период.
Проверка CPU
В поле:
CPU usage
отображается средняя текущая загрузка процессора.
Кратковременное значение 100% не всегда означает проблему. Важно учитывать:
- длительность высокой нагрузки;
- число логических CPU;
- load average;
- задержки VM;
- дисковый I/O wait;
- активные backup и migration tasks.
Проверка CPU через CLI
top
Более удобный вариант:
htop
Если htop не установлен:
apt update
apt install -y htop
Покажите число логических CPU:
nproc
Подробная информация:
lscpu
Load average
Проверьте:
uptime
Пример:
load average: 1.20, 0.95, 0.80
Значения соответствуют среднему числу задач за:
1, 5 и 15 минут
Для узла с 8 логическими CPU load около 8 означает полную загрузку вычислительных ресурсов, но интерпретация зависит и от I/O wait.
Проверка iowait
В top найдите поле:
wa
Высокий wa означает, что CPU ожидает завершения дисковых операций.
Проверьте через:
vmstat 1
В выводе смотрите колонку:
wa
Устойчиво высокий iowait обычно указывает на проблемы с дисками, storage backend или интенсивную нагрузку VM.
Проверка оперативной памяти
Через веб-интерфейс:
Node → Summary → RAM usage
Через CLI:
free -h
Пример:
total used free shared buff/cache available
Mem: 62Gi 40Gi 2.0Gi 1.0Gi 20Gi 21Gi
Главный показатель:
available
Низкое значение free само по себе не означает проблему, потому что Linux использует свободную память под cache.
Проверка swap
swapon --show
free -h
Небольшое использование swap допустимо.
Проблема вероятна, если:
- swap активно растёт;
- узел постоянно читает и пишет swap;
- VM начинают замедляться;
- доступная RAM близка к нулю.
Проверьте активность swap:
vmstat 1
Колонки:
si
so
показывают swap in и swap out.
Ballooning
Если для VM включён ballooning, фактическое использование памяти может отличаться от максимального выделенного значения.
Проверьте конфигурацию VM:
qm config VM_ID |
grep -E 'memory|balloon'
Пример:
memory: 4096
balloon: 2048
Это означает:
- максимальная память — 4096 MiB;
- минимальная target-память — 2048 MiB.
Для систем с предсказуемой нагрузкой иногда удобнее фиксированное выделение RAM.
Проверка root filesystem
Через веб-интерфейс:
Node → Summary → Root filesystem usage
Через CLI:
df -h /
Проверьте все файловые системы:
df -h
Проверьте inode:
df -i
Даже при наличии свободного места файловая система может перестать создавать файлы, если закончились inode.
Поиск крупных каталогов
Для корневой файловой системы:
du -xhd1 / 2>/dev/null |
sort -h
Для /var:
du -xhd1 /var 2>/dev/null |
sort -h
Для каталога Proxmox:
du -xhd2 /var/lib/vz 2>/dev/null |
sort -h |
tail -30
Не удаляйте файлы из /var/lib без понимания их назначения.
Проверка хранилищ Proxmox
pvesm status
Проверьте:
Status;Total;Used;Available;- процент использования.
Хранилище должно иметь статус:
active
Проверка LVM-thin
lvs
Обратите внимание на:
Data%
Meta%
Особенно опасно приближение Data% или Meta% к 100%.
Подробно:
lvs -a -o+data_percent,metadata_percent
Проверка ZFS
Состояние пула:
zpool status
Краткий список:
zpool list
Файловые системы:
zfs list
Здоровый пул обычно показывает:
state: ONLINE
Состояния DEGRADED, FAULTED или ошибки checksum требуют немедленной диагностики.
Проверка NFS-хранилищ
pvesm status
Проверьте mount:
mount |
grep /mnt/pve
Проверьте доступность:
df -h /mnt/pve/STORAGE_ID
Проверьте NFS-статистику:
nfsstat -m
Если команда зависает, возможна проблема сети или NFS-сервера.
Проверка дисковой нагрузки
Установите sysstat:
apt update
apt install -y sysstat
Запустите:
iostat -xz 1
Основные показатели:
%util
await
r/s
w/s
rMB/s
wMB/s
%util
Показывает загрузку устройства.
Постоянное значение около 100% может указывать на насыщение диска.
await
Среднее время выполнения I/O-запроса в миллисекундах.
Рост await обычно означает увеличение задержки storage.
Оценивать показатель нужно с учётом типа дисков и backend.
Проверка SMART
Покажите диски:
lsblk -o NAME,SIZE,TYPE,MODEL,SERIAL
Для SATA или SAS:
smartctl -a /dev/sdX
Если smartctl отсутствует:
apt install -y smartmontools
Для NVMe:
nvme smart-log /dev/nvme0
Если nvme отсутствует:
apt install -y nvme-cli
Особое внимание:
- media errors;
- reallocated sectors;
- pending sectors;
- critical warnings;
- temperature;
- percentage used.
Проверка сетевых интерфейсов
ip -br link
ip -s link
Проверьте конкретный интерфейс:
ip -s link show eno1
Обратите внимание на:
errors
dropped
overrun
carrier
Рост ошибок может указывать на:
- кабель;
- порт коммутатора;
- mismatch скорости;
- перегрузку;
- драйвер;
- MTU.
Проверка скорости линка
ethtool eno1
Проверьте:
Speed
Duplex
Link detected
Если ethtool отсутствует:
apt install -y ethtool
Проверка bridge
bridge link
Проверьте:
ip addr show vmbr0
Покажите участников моста:
bridge fdb show br vmbr0 |
head
Проверка сетевой нагрузки
sar -n DEV 1
Если sar отсутствует, установите sysstat.
Показываются:
- входящий трафик;
- исходящий трафик;
- пакеты;
- ошибки.
Поиск нагруженных VM
Покажите список:
qm list
Через веб-интерфейс выберите VM:
VM → Summary
Проверьте:
- CPU usage;
- Memory usage;
- Network traffic;
- Disk I/O.
Через API-backed CLI можно посмотреть состояние:
qm status VM_ID --verbose
Поиск нагруженных LXC
pct list
Выберите контейнер:
CT → Summary
Проверьте CPU, RAM, disk и network.
Через CLI:
pct status CT_ID --verbose
Проверка процессов QEMU
ps -eo pid,pcpu,pmem,cmd --sort=-pcpu |
grep -E 'kvm|qemu' |
head -20
Процесс VM обычно содержит её VM ID.
Для поиска конкретной VM:
ps aux |
grep 'id VM_ID' |
grep -v grep
Проверка процессов LXC
ps -eo pid,pcpu,pmem,cmd --sort=-pcpu |
head -30
Войти в контейнер:
pct enter CT_ID
Затем использовать:
top
free -h
df -h
Проверка failed units
systemctl --failed
Подробно по сервису:
systemctl status SERVICE_NAME --no-pager
Журнал:
journalctl -u SERVICE_NAME -n 100 --no-pager
Проверка критических ошибок
Ошибки текущей загрузки:
journalctl -b -p err --no-pager
Предупреждения:
journalctl -b -p warning --no-pager
Сообщения ядра:
journalctl -k -b --no-pager
Поиск аппаратных ошибок:
journalctl -k -b --no-pager |
grep -iE 'error|fail|timeout|reset|corrupt|mce|edac'
Проверка температуры
Если сервер поддерживает датчики:
sensors
Установка:
apt install -y lm-sensors
Определение датчиков:
sensors-detect
На серверном оборудовании точнее использовать IPMI:
ipmitool sensor
Команда доступна только при наличии IPMI и соответствующего пакета.
Проверка задач Proxmox
В веб-интерфейсе:
Node → Task History
Проверьте ошибки:
- backup;
- migration;
- snapshot;
- replication;
- storage operations;
- start и stop VM.
Через CLI:
journalctl --since today |
grep -iE 'vzdump|qmigrate|error|failed'
Базовая периодическая проверка
Ежедневно:
systemctl --failed
pvesm status
df -h
zpool status 2>/dev/null
lvs 2>/dev/null
Еженедельно:
journalctl -b -p err --no-pager
smartctl -a /dev/sdX
docker system df 2>/dev/null
Команды следует адаптировать к фактическому storage backend.
Типичные проблемы
CPU постоянно загружен
Проверьте:
top
ps -eo pid,pcpu,pmem,cmd --sort=-pcpu | head
Определите, относится ли нагрузка к:
- VM;
- LXC;
- backup;
- compression;
- ZFS;
- Ceph;
- системному процессу.
RAM почти полностью занята
Проверьте:
free -h
Смотрите available, а не только free.
Проверьте суммарно выделенную память VM и ballooning.
Высокий iowait
Проверьте:
iostat -xz 1
vmstat 1
Также проверьте backup, snapshot, scrub, replication и состояние физических дисков.
Хранилище inactive
Проверьте:
pvesm status
Для NFS — сеть и mount.
Для ZFS — zpool status.
Для LVM — lvs.
Root filesystem заполнен
Проверьте:
du -xhd1 /var |
sort -h
Частые причины:
- backup в
/var/lib/vz/dump; - журналы;
- ISO-образы;
- crash dumps;
- временные файлы;
- старые пакеты.
Сетевой интерфейс показывает ошибки
Проверьте:
ip -s link show INTERFACE
ethtool INTERFACE
Сравните счётчики с портом коммутатора.
Безопасный порядок диагностики
- Проверить
systemctl --failed. - Проверить CPU и load average.
- Проверить RAM и swap.
- Проверить
df -hи inode. - Проверить
pvesm status. - Проверить iowait и дисковую задержку.
- Проверить физические диски.
- Проверить сеть и ошибки интерфейсов.
- Найти нагруженную VM или LXC.
- Проверить журнал ядра и Proxmox tasks.
Быстрый набор команд
Общее состояние:
uptime
free -h
df -h
pvesm status
systemctl --failed
CPU и процессы:
top
Диски:
iostat -xz 1
Сеть:
ip -s link
Ошибки:
journalctl -b -p err --no-pager
VM и LXC:
qm list
pct list
Итог
После выполнения инструкции:
- проверены CPU, load average и iowait;
- проверены RAM и swap;
- проверены файловые системы и inode;
- проконтролированы LVM, ZFS и NFS;
- проверены физические диски;
- проанализированы сетевые интерфейсы;
- найдены нагруженные VM и LXC;
- проверены системные ошибки и задачи Proxmox.
Базовый мониторинг узла следует дополнять внешней системой наблюдения и уведомлениями, но регулярная ручная проверка остаётся полезной для диагностики.