Table of Contents
📈 top: кратко и по делу#
top — интерактивный монитор процессов и ресурсов в Linux: CPU, память, своп, загрузка по ядрам, процессы/потоки, приоритеты и прерывания.
Умеет работать в интерактивном режиме и в batch‑режиме для логирования/скриптов.
📝 Топ‑20 ключевых флагов и приёмов top#
top— запустить интерактивно.top -b— batch‑режим (без 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.k— kill: завершить процесс по PID.r— renice: изменить приоритет (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.