Введение / Зачем это нужно
Команда top — это основной, всегда доступный инструмент для быстрого мониторинга системы в реальном времени в Linux. В отличие от графических диспетчеров задач, top работает прямо в терминале и показывает, какие процессы потребляют больше всего ресурсов (CPU, памяти), общую нагрузку на систему и время её работы. Освоение top критически важно для системных администраторов, разработчиков и любого, кто работает с серверами или хочет понять, почему их компьютер стал медленным.
После прохождения этого гайда вы сможете:
- Читать и понимать вывод
top. - Находить процессы-"пожирателей" ресурсов.
- Фильтровать и сортировать процессы по нужным критериям.
- Управлять процессами (менять приоритет, завершать) прямо из интерфейса.
- Настроить отображение под свои задачи.
Требования / Подготовка
- Доступ к терминалу Linux (локально или через SSH).
- Команда
topпредустановлена практически во всех дистрибутивах в составе пакетаprocps-ngилиprocps. Если её нет (маловероятно), установите:- Debian/Ubuntu:
sudo apt update && sudo apt install procps - RHEL/CentOS/Fedora:
sudo yum install procps-ngилиsudo dnf install procps-ng
- Debian/Ubuntu:
- Права: Для просмотра всех процессов (включая системные) обычно нужны права root (
sudo top). Для управления процессами, не принадлежащими вашему пользователю, тоже потребуются повышенные привилегии. - Базовое понимание того, что такое процесс (PID), потребление CPU и памяти (RAM/Swap).
Пошаговая инструкция
Шаг 1: Запустите top и поймите интерфейс
Введите в терминале команду top и нажмите Enter.
top
Вы увидите экран, разделённый на две основные области:
- Верхняя часть (Summary Area) — сводка по системе:
top— строка с версией, временем работы системы (up), количеством пользователей (users) и средней нагрузкой (load average: 1, 5, 15 мин).Tasks:— общее количество процессов, их состояние (running, sleeping, stopped, zombie).%Cpu(s):— использование процессора:us(user),sy(system),ni(nice),id(idle),wa(wait/I/O),hi(hardware IRQ),si(software IRQ),st(steal time — для виртуализации).KiB Mem:иKiB Swap:— использование оперативной памяти и swap-файла/раздела (total, used, free, buff/cache).
- Нижняя часть (Processes Area) — список процессов (по умолчанию отсортирован по %CPU). Ключевые столбцы:
PID— идентификатор процесса.USER— владелец процесса.%CPU— доля использования CPU этим процессом.%MEM— доля использования физической памяти.TIME+— общее время использования CPU с момента запуска.COMMAND— имя команды/процесса.
💡 Совет: Нажмите
hили?в любой момент, чтобы увидеть справку по всем интерактивным командам.
Шаг 2: Освойте основное управление и сортировку
top — интерактивная программа. Управление осуществляется однократным нажатием клавиш.
- Сортировка (самая частая операция):
P— сортировать по%CPU(по умолчанию).M— сортировать по%MEM.N— сортировать поPID(по возрастанию).T— сортировать поTIME+(времени CPU).
- Фильтрация (показать только нужное):
- Нажмите
O(заглавная латинская O). Появится поле для ввода условия. - Чтобы показать процессы только пользователя
nginx, введите:USER=nginxи нажмите Enter. - Чтобы показать процессы, чей
%CPUпревышает 5.0, введите:%CPU>5.0. - Чтобы сбросить фильтр, нажмите
Oи введите=, затем Enter.
- Нажмите
- Изменение отображаемых полей:
- Нажмите
f. Вы попадёте в меню выбора полей. - Стрелками вверх/вниз перемещайтесь по списку.
- Пробел — выбрать/снять поле (отмеченные
*будут показаны). - Справа от выбранных полей можно изменить их порядок (стрелки
<-и->). - Готово? Нажмите
Enter, затемqдля выхода из меню.
- Нажмите
Шаг 3: Управляйте процессами прямо из top
Это одна из самых мощных возможностей.
- Завершить (убить) процесс:
- Запомните
PIDнужного процесса (или найдите его через фильтр). - Нажмите
k. - Введите
PIDи нажмите Enter. - Введите номер сигнала (по умолчанию
15—SIGTERM, вежливое завершение). Для принудительного завершения используйте9(SIGKILL). Нажмите Enter.
⚠️ Важно: Сигнал
9(SIGKILL) не даёт процессу возможность корректно завершиться и сохранить данные. Используйте только еслиSIGTERMне помог. - Запомните
- Изменить приоритет (nice) процесса:
- Нажмите
r. - Введите
PIDпроцесса. - Введите новое значение
nice(от-20— самый высокий приоритет, до19— самый низкий). Обычно увеличивают nice (снижают приоритет) для фоновых задач, чтобы не мешать интерактивным. - Нажмите Enter.
- Нажмите
Шаг 4: Настройте интерфейс и используйте полезные хоткеи
z— включить/выключить цветовую индикацию (очень помогает визуально выделить активные процессы).x— выделить столбец, по которому идёт сортировка (по умолчанию он подсвечивается).b— включить/выключить жирный текст/цвет для активных (использующих CPU) процессов.u— быстро отфильтровать процессы по имени пользователя (введите имя или оставьте пустым для всех).V— переключиться в режим дерева процессов (forest view), чтобы увидеть иерархию (родительские/дочерние процессы). Очень полезно для понимания, какой демон породил какой процесс.c— переключить отображение команды: полный путь и аргументы (/usr/bin/python3 script.py) или только имя команды (python3).Space— немедленно обновить экран (если вы на паузе).s— изменить задержку обновления экрана (в секундах, по умолчанию 3.0). Для более частых обновлений введите меньшее значение.q— выйти изtop.
Проверка результата
Вы успешно освоили top, если можете:
- За 10 секунд найти процесс с самым высоким
%CPUи%MEMбез использования мыши. - Отфильтровать список, оставив только процессы пользователя
postgres(или любого другого). - Увидеть дерево дочерних процессов для
systemdилиsshd. - Корректно завершить тестовый процесс (например, запущенный
sleep 1000) с помощьюkи сигнала15. - Сохранить статичный снимок состояния системы в файл командой
top -b -n 1 > system_snapshot.txtи убедиться, что файл создался и содержит читаемый текст.
Возможные проблемы
- Не вижу всех процессов / процессы другого пользователя.
- Причина: Недостаточно прав.
- Решение: Запустите
topсsudo:sudo top. Будьте осторожны при управлении процессами от root.
- Процессы с низким %CPU не отображаются, хотя их много.
- Причина: По умолчанию
topпоказывает только активные (с ненулевым %CPU или %MEM) или ограничивает количество строк под список. Также может быть активен фильтр. - Решение: Нажмите
fи убедитесь, что полеA(VIRT) или другие не скрывают процессы. Сбросьте фильтр (O→=). Увеличьте количество отображаемых строк (настройки могут зависеть от версии).
- Причина: По умолчанию
- Не могу найти процесс по имени (например,
nginx).- Причина: В колонке
COMMANDможет отображаться только имя бинарника (nginx), а не полная строка запуска. Или процесс находится в состоянииD(непрерываемый сон, часто из-за I/O) и не набирает %CPU. - Решение: Используйте фильтр по
COMMAND(O→COMMAND=nginx). Или используйтеcдля переключения на отображение полной командной строки. Для поиска "спящих" процессов сортируйте поTIME+или используйте более гибкийps aux | grep nginx.
- Причина: В колонке
topне показывает сетевую активность процессов.- Причина: Стандартный
topне имеет встроенных полей для сетевой статистики (in/out). - Решение: Для мониторинга сети используйте отдельные инструменты:
nethogs,iftop,ss -tunaилиnetstat -tunap. Некоторые версииtop(например, из пакетаprocps-ngна RHEL) могут иметь ограниченную поддержку полей сетевой статистики (n), но это нестандартно.
- Причина: Стандартный
- Не могу выйти из top, нажал случайную клавишу, интерфейс сломался.
- Решение: Нажмите
qдля выхода. Если это не помогает, попробуйтеCtrl+C. В крайнем случае закройте терминал или окно SSH.
- Решение: Нажмите
- Хочу более наглядный интерфейс.
- Решение: Установите
htop(sudo apt install htopилиsudo yum install htop). Это полноценная заменаtopс мышью, цветами и удобной навигацией.
- Решение: Установите