← Back to notes

top

2024-09-14


top

Интерактивный мониторинг системы и процессов. Источник — procfs. См. top(1) (procps-ng).


Load average

top - 11:51:13 up 37 min, 1 user, load average: 0.19, 0.42, 0.48

EWMA числа задач в состояниях R и D за 1, 5, 15 минут (см. loadavg(5) и kernel/sched/loadavg.c). В Linux включает uninterruptible-сон (D), поэтому отражает не только CPU, но и I/O-нагрузку.

Сравнивается с числом логических CPU (nproc):

  • ≈ nproc — насыщение;
  • nproc — есть очередь;

  • < nproc — запас.

Tasks

Tasks: 295 total, 1 running, 294 sleeping, 0 stopped, 0 zombie
  • total — всего задач (потоков с H или процессов без)
  • runningR
  • sleepingS + D + I
  • stoppedT/t
  • zombieZ

%Cpu(s)

%Cpu(s): 0.5 us, 0.5 sy, 0.0 ni, 98.8 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st

Поля из /proc/stat:

  • us — user time для процессов без nice-понижения приоритета.
  • sy — kernel
  • ni — user time для niced-процессов с пониженным приоритетом (обычно nice > 0).
  • id — idle
  • wa — iowait (CPU простаивал, но была pending I/O; см. предупреждения в proc(5) — метрика приближённая)
  • hi — обработка hardware IRQ
  • si — обработка softirq
  • st — steal: время, "украденное" гипервизором (KVM, Xen) у виртуальной машины
  • gu, gn — guest/guest_nice (если показано): время на запуск гостевой ОС в KVM

Memory

MiB Mem :  15651.0 total,   2749.6 free,   6566.8 used,   7318.3 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   9081.4 avail Mem

Источник — /proc/meminfo:

  • totalMemTotal
  • freeMemFree
  • usedMemTotal - MemFree - Buffers - Cached - SReclaimable
  • buff/cacheBuffers + Cached + SReclaimable
  • avail MemMemAvailable (оценка ядра, сколько можно выделить без свопа)
  • SwapSwapTotal/Free/Used

Колонки таблицы

PID    USER  PR NI VIRT    RES    SHR    S %CPU %MEM TIME+    COMMAND
116317 sasha 20 0  1412.9g 700936 113408 S 10.6 4.4  24:07.45 code
  • PID — process ID
  • USER — effective UID name
  • PR — приоритет планировщика в представлении top. Для обычных задач обычно 20 + nice; для real-time может показываться rt.
  • NI — nice (-20…19). Меньше → выше приоритет.
  • VIRT — virtual size (адресное пространство, включая mmap'ы и неиспользуемые маппинги).
  • RES — resident set size (физическая RAM).
  • SHR — shared memory (общие библиотеки, shm, file-backed).
  • S — состояние (R, S, D, T, t, Z, I).
  • %CPU(time-delta) / (interval × 1) по умолчанию (в Irix mode); в Solaris mode (Shift+I) делится на число CPU.
  • %MEMRES / MemTotal.
  • TIME+ — суммарное CPU-время с сотыми секунды.
  • COMMANDcomm или argv (Shift+C).

Интерактивные клавиши

  • h — справка
  • 1 — раскладка по CPU
  • t, m — переключение отображения CPU/memory
  • Shift+P, Shift+M, Shift+T — сорт по %CPU / %MEM / TIME+
  • Shift+C — full command line
  • Shift+H — показать потоки
  • Shift+I — Irix/Solaris mode
  • k — kill (запросит PID и сигнал)
  • r — renice
  • f — менеджер полей

Ссылки

top | Aleksandr Suprun