📈 top: кратко и по делу#

top — интерактивный монитор процессов и ресурсов в Linux: CPU, память, своп, загрузка по ядрам, процессы/потоки, приоритеты и прерывания.
Умеет работать в интерактивном режиме и в batch‑режиме для логирования/скриптов.


📝 Топ‑20 ключевых флагов и приёмов top#

  • top — запустить интерактивно.
  • top -bbatch‑режим (без TUI, для скриптов/логов).
  • top -n 5 — выполнить 5 обновлений и выйти (часто с -b).
  • top -d 1 — интервал обновления 1 секунда.
  • top -p <PID> — показывать только указанный процесс (можно список через запятую).
  • top -u <user> — фильтр по пользователю.
  • top -H — показывать потоки вместо процессов.
  • top -o %CPU — сортировать по полю (GNU top).
  • top -w 512 — ширина экрана (удобно в узких терминалах).
  • top -c — показывать командные строки процессов по умолчанию.
  • top -i — игнорировать «спящие» процессы.
  • top -b -d 0.5 -n 120 > top.log — запись 1 минуту (пример batch).
  • sudo top — видеть системные процессы/IRQ полностью.
  • top -U <uid> — фильтр по UID (в некоторых реализациях).
  • top -S — суммировать время потомков (в некоторых реализациях).
  • top -E g — единицы памяти (g=GiB, m=MiB; зависит от версии).
  • top -O — интерактивный выбор поля сортировки при старте (BusyBox).
  • top -a — автосортировка по активности (некоторые версии).
  • man top — справка по конкретной реализации (GNU/BusyBox отличаются).
  • top -v — версия.

⚠️ Многие «фишки» управляются горячими клавишами внутри top — ниже.


⌨️ Горячие клавиши top (GNU top)#

  • P — сортировать по CPU (%CPU).
  • M — сортировать по памяти (RES).
  • T — сортировать по времени (TIME+).
  • N — сортировка по PID.
  • kkill: завершить процесс по PID.
  • rrenice: изменить приоритет (nice).
  • 1 — показать загрузку по ядрам.
  • H — переключить режим threads (процессы/потоки).
  • c — показать/скрыть полные командные строки.
  • i — скрыть «idle»/спящие процессы.
  • f — настроить набор и порядок колонок (включать/выключать).
  • o — изменить поле сортировки (введя имя/код).
  • x — подсвечивать колонку сортировки.
  • y — подсвечивать «бегущие» процессы.
  • z/b — цветной/полужирный режим.
  • l/t/m — заголовки: load avg, tasks, память.
  • Wсохранить конфиг в ~/.toprc.
  • h/? — справка.
  • q — выход.

🚀 Айсберг по top — от базового к гуру#

🟢 Уровень 1 — База (разогрев)#

top

  • Запуск интерактивного режима

top -d 1

  • Обновление раз в секунду

top -u www-data

  • Показать процессы конкретного пользователя

top -p 1234,2345

  • Следить только за выбранными PID

top -c

  • Сразу показывать полные командные строки

🟡 Уровень 2 — Быстрая навигация и сортировка#

P / M / T

  • Сортировка по CPU/MEM/TIME+

N

  • Сортировка по PID

c

  • Вкл/выкл командных строк

1

  • Показать загрузку по каждому ядру

x y

  • Подсветить колонку сортировки и «running» процессы

🟠 Уровень 3 — Фильтры, idle и потоки#

i

  • Скрыть спящие процессы

H

  • Переключиться на потоки (threads)

o%CPU или COMMAND

  • Изменить поле сортировки

f → включить TIME+, VIRT, RES, SHR, nTH, S, PR, NI

  • Настроить нужные колонки

W

  • Сохранить макет в ~/.toprc

🔵 Уровень 4 — Batch‑режим и логирование#

top -b -n 1

  • Одноразовый снимок

top -b -d 1 -n 60 > /tmp/top_minute.log

  • Лог за минуту

top -b -o %MEM -n 1 | head -n 20

  • Топ пожирателей памяти

top -b -p $(pgrep -d, nginx)

  • Следить за пулом процессов

watch -n 1 'top -b -n 1 | head -n 20'

  • Обновлять сводку каждые 1 сек

🟣 Уровень 5 — Приоритеты и убийство процессов#

k → ввести PID → сигнал (по умолчанию 15)

  • Корректно завершить процесс

k → сигнал 9

  • Жёстко убить (SIGKILL)

r → ввести PID → новый nice

  • Понизить/повысить приоритет

sudo renice -n 10 -p $(pidof myproc)

  • Альтернатива вне top

sudo killall -9 badproc

  • Массовое завершение по имени

🔴 Уровень 6 — Гуру‑режим и тонкая настройка#

top -H -p $(pidof java)

  • Разложить JVM на потоки

top -o %CPU -d 0.5

  • Агрессивное обновление и сортировка

top -b -w 200 -d 0.5 -n 120 | gzip > top.gz

  • Сжатое логирование на лету

sudo top + f → добавить CSWITCH, IO, IO_RATE (если поддерживается)

  • Отслеживать переключения контекста/IO

top -E g

  • Единицы памяти в GiB (если доступно)

🟤 Уровень 7 — Интеграция и сценарии#

ps aux --sort=-%cpu | head

  • Быстрый снимок без top

pidstat -druhl 1

  • Почасовая метрика по PID (из sysstat)

htop

  • Более дружелюбная альтернатива с деревом и мышью

perf top

  • Горячие функции ядра/процессов в реальном времени

atop

  • История ресурсов, контейнеры и диски

🧩 Бонус — практические рецепты#

Сохранить текущий вид top навсегда:

# Внутри top нажмите: f (выберите колонки) → o (поле сортировки) → W
# Конфиг попадёт в ~/.toprc и будет применяться при запуске

Топ‑N процессов по памяти (one‑liner):

top -b -o %MEM -n 1 | sed -n '1,7p;8,27p'
# В GNU top первые ~7 строк — сводка, далее процессы → берём первые ~20 строк

Логировать загрузку CPU ядрами 5 минут:

for i in {1..300}; do top -b -n 1 | awk '/^%Cpu/ || /^MiB Mem/'; sleep 1; done > cpu_mem_5min.log

Следить только за nginx‑воркерами:

top -b -p $(pgrep -d, -f 'nginx: worker') -d 1

Найти «утечку» памяти и PID:

top -b -o %MEM -n 1 | awk 'NR<8{print;next} NR<=28{print}'    # быстрый top‑срез

💡 Советы:

  • В top нет дерева процессов — для иерархии и удобного управления попробуй htop.
  • Сравни метрики с pidstat, vmstat, iostat, perf для глубокой диагностики.
  • Разные дистрибутивы/версии top имеют отличия (GNU vs BusyBox) — проверяй man top.