turbostat
Частоты CPU, C-states, энергопотребление. Требует root.
# Обзор всех CPU, каждую секунду
turbostat --interval 1
# Только сводка (без per-core)
turbostat --Summary --interval 1
# Конкретные колонки: частота, C-states, мощность
turbostat --show CoreTmp,PkgWatt,Avg_MHz,Busy%,Bzy_MHz --interval 1
# Замер во время выполнения команды
turbostat -- ./myapp
rdmsr
Чтение MSR-регистров процессора. Низкоуровневая диагностика.
# Прочитать MSR на CPU 0 (пример: IA32_PERF_STATUS = 0x198)
rdmsr -p 0 0x198
# Прочитать на всех CPU
rdmsr -a 0x198
# Температура: IA32_THERM_STATUS (0x19C), бит 22:16 = offset от TjMax
rdmsr -p 0 -f 22:16 0x19C
Для большинства задач
turbostatудобнее — он читает MSR сам и форматирует вывод.
tiptop
Аппаратные счётчики производительности в стиле top: IPC, cache misses, branch misses.
# Интерактивный режим (top-like)
tiptop
# Только конкретный PID
tiptop -p 1234
# Batch mode для скриптов
tiptop -b -n 5 -p 1234
Альтернатива через perf (более гибко):
# IPC и cache misses для процесса
perf stat -e instructions,cycles,cache-misses,cache-references -p 1234 sleep 5
# Branch prediction
perf stat -e branches,branch-misses -p 1234 sleep 5
powercap / RAPL 🟢
Мониторинг энергопотребления через Intel RAPL (Running Average Power Limit).
# Текущее потребление package (через sysfs)
cat /sys/class/powercap/intel-rapl:0/energy_uj
# Подсчёт мощности за интервал (скрипт)
E1=$(cat /sys/class/powercap/intel-rapl:0/energy_uj); sleep 1
E2=$(cat /sys/class/powercap/intel-rapl:0/energy_uj)
echo "$(( (E2 - E1) / 1000000 )) W"
# Через perf (удобнее)
perf stat -e power/energy-pkg/,power/energy-ram/ -a sleep 5
# Через turbostat (самый удобный вариант)
turbostat --show PkgWatt,RAMWatt --interval 1
amd-pstate 🟢
Драйвер управления частотой AMD. Диагностика через sysfs.
# Текущий драйвер частоты
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
# Текущий режим (active/passive/guided)
cat /sys/devices/system/cpu/amd_pstate/status
# Текущая/минимальная/максимальная частота
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
# Переключение режима (требует root)
echo "active" | tee /sys/devices/system/cpu/amd_pstate/status
nvidia-smi 🟢
Мониторинг GPU NVIDIA: утилизация, память, температура, процессы.
# Текущее состояние всех GPU
nvidia-smi
# Непрерывный мониторинг (каждую секунду)
nvidia-smi --loop=1
# Только ключевые метрики в CSV (для парсинга)
nvidia-smi --query-gpu=timestamp,name,utilization.gpu,utilization.memory,memory.used,temperature.gpu,power.draw --format=csv -l 1
# Процессы, использующие GPU
nvidia-smi pmon -i 0 -s um
# Установить power limit (ватты)
nvidia-smi -pl 250
intel_gpu_top 🟢
Мониторинг GPU Intel (встроенная графика и дискретные Arc).
# Интерактивный мониторинг
intel_gpu_top
# JSON-вывод для парсинга
intel_gpu_top -J -s 1000
# Для конкретного устройства (если несколько GPU)
intel_gpu_top -d drm:/dev/dri/card1
rocm-smi 🟢
Мониторинг GPU AMD через ROCm.
# Состояние всех GPU
rocm-smi
# Утилизация, температура, частоты
rocm-smi --showuse --showtemp --showclocks
# Энергопотребление
rocm-smi --showpower
# Мониторинг в цикле (каждую секунду)
watch -n1 rocm-smi --showuse --showtemp --showpower
# Процессы на GPU
rocm-smi --showpids
Начиная с ROCm 7.0 в ROCm-SMI вносят только критические исправления, а рекомендованной заменой AMD называет amd-smi. Сама утилита никуда не делась и продолжает работать, но новые возможности появляются уже в amd-smi.
Связанные заметки
- Linux — средства диагностики производительности — обзорная карта инструментов
- Linux — ядро: сборка, модули, параметры — драйверы, модули и обнаружение устройств
- Linux — справочник команд: CPU и планировщик — смежный слой диагностики
Из библиотеки института уносят только знания. Читателей здесь не считают: посещение не регистрируется, отметок в издании не остаётся, счётчиков нет ни у одного издания фонда.
Издание пополняется и пересверяется. Текст доступен на условиях CC BY-SA 4.0 — унесённое можно передавать дальше на тех же условиях.