Гид по технологиям

Как использовать top в Linux — полный справочник

10 min read Linux Обновлено 01 Dec 2025
top в Linux: подробный справочник
top в Linux: подробный справочник

Окно терминала с запущенной программой top

Быстрые ссылки

  • Информационная панель
  • Проверить версию top
  • Обычный вывод по умолчанию
  • Прокрутка вывода
  • Изменение единиц измерения
  • Настройка содержания сводки
  • Цвет и подсветка
  • Сортировка по столбцам
  • Полная командная строка процесса
  • Процессы одного пользователя
  • Только активные задачи
  • Указать сколько процессов показывать
  • Изменить приоритет процесса (renice)
  • Завершить процесс с помощью top
  • Кастомизация отображения
  • Альтернативный режим отображения и батч-режим
  • Другие клавиши
  • Аналоги top

Важно: все клавиши, перечисленные ниже, действуют в интерактивном режиме top. Если вы запускаете top в пакетном режиме (см. раздел “Альтернативный режим отображения”), интерактивные клавиши не применимы.

Информационная панель

top — утилита с историей с 1984 года. Её задача — вместить в терминал максимально полезную информацию о состоянии системы и процессах. По умолчанию экран делится на две зоны:

  • Сводная панель (dashboard) — строки вверху с состоянием системы.
  • Список задач (task area) — таблица процессов.

Преимущество top — скорый обзор метрик: время, аптайм, количество залогиненных пользователей, средняя нагрузка (load average), состояние задач, загрузка CPU по категориям, память и своп. Эти метрики помогают обнаруживать проблемы на ранних стадиях и реагировать до появления инцидентов.

Примечание: вывод top может различаться между дистрибутивами и версиями. Некоторые возможности зависят от версии procps/top.

Проверить версию top

Чтобы узнать версию top, введите в терминале:

top -v

Если версия существенно старее упомянутых в этой статье возможностей, некоторые интерактивные опции могут отсутствовать.

Обычный вывод по умолчанию

Запуск:

top

По умолчанию обновление происходит каждые 3 секунды (настройка RUNTIME: интервал можно изменить). Верхняя часть — несколько строк со сводкой, ниже — таблица процессов с заголовками столбцов.

Типичные заголовки столбцов в списке задач:

  • PID — идентификатор процесса.
  • USER — владелец процесса.
  • PR — приоритет процесса.
  • NI — значение nice.
  • VIRT — виртуальная память процесса.
  • RES — резидентная память.
  • SHR — общий (shared) объём.
  • S — статус процесса (D,R,S,T,Z).
  • %CPU — доля CPU с последнего обновления.
  • %MEM — доля физической памяти.
  • TIME+ — кумулятивное время CPU в сотых долях секунды.
  • COMMAND — имя команды или командная строка.

Память по умолчанию отображается в кибибайтах (KiB). Статусы процесса:

  • D — uninterruptible sleep (непрерываемое ожидание I/O)
  • R — running
  • S — sleeping
  • T — stopped / traced
  • Z — zombie

Чтобы выйти — нажмите Q.

Прокрутка вывода

  • Стрелки вверх/вниз, Home/End, PageUp/PageDown — перемещение по списку процессов.
  • Стрелки влево/вправо — сдвиг таблицы по горизонтали, чтобы увидеть столбцы, которые не помещаются в окне.

Полезно, если у вас узкое окно терминала или много столбцов.

Изменение единиц измерения

  • Нажмите E (заглавная) — переключает единицы в сводной панели: KiB, MiB, GiB, TiB, PiB, EiB.
  • Нажмите e (строчная) — переключает единицы в таблице процессов: KiB, MiB, GiB, TiB, PiB.

Практика: используйте GiB для общей памяти и MiB для отдельных процессов — так легче оценить потребление.

Настройка содержания сводки

  • l — переключает строку load average (первую строку) вкл/выкл.
  • 1 — показывает статистику по каждому CPU (ядру) отдельно.
  • t — переключает отображение CPU: подробные числа / ASCII-графики / блоки / скрыть строку CPU и задач.
  • m — циклически переключает отображение строк памяти и свопа: числа / ASCII-график / блоки / скрыть.

Пример: если у вас много ядер, нажмите 1, затем t, чтобы быстро увидеть загрузку по каждому ядру в виде графика.

Цвет и подсветка

  • z — вкл/выкл цвета (если терминал поддерживает).
  • y — подсветить выполняющиеся задачи (running).
  • x — подсветить столбец сортировки.
  • b — переключает между полужирным (bold) и инвертированным (reversed) выделением.

Важно: цвета зависят от схемы терминала; если цвета мешают, их можно отключить.

Сортировка по столбцам

По умолчанию список сортируется по %CPU. Быстрая смена сортировки:

  • P — сортировать по %CPU.
  • M — сортировать по %MEM.
  • N — сортировать по PID.
  • T — сортировать по TIME+.

Вы также можете нажимать стрелки влево/вправо для смещения и использовать x для подсветки активного столбца.

Полная командная строка процесса

  • c — переключает отображение столбца COMMAND между именем процесса и полной командной строкой (включая аргументы).

Полезно при отладке, когда нужно увидеть, с какими параметрами запущен процесс.

Дерево процессов

  • V — показывает список процессов в виде дерева (сдвигает фокус на потомков и родителей). Это помогает понять, какие процессы были порождены другими.

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

  • u — фильтр по пользователю: введите имя пользователя или UID, нажмите Enter. Оставшиеся процессы будут принадлежать выбранному пользователю.

Подсказка для ввода имени пользователя в терминале

После ввода логина, например “dave”, вы увидите только процессы пользователя dave.

top отображает задачи только для заданного пользователя

Только активные задачи

  • Shift + L (строчная l уже используется) — в некоторых сборках top есть быстрый фильтр, показывающий только активные (не спящие) задачи. Если ваша версия не поддерживает Shift+L, используйте фильтр по статусу вручную.

Фильтрация вручную (по статусу):

  • O (буква O) — открыть интерактивное меню сортировки/фильтрации, затем введите поле S (статус) и нужное значение.

Примечание: синтаксис интерактивного меню может отличаться между версиями top.

Указать сколько процессов показывать

  • Увеличить количество строк: переведите фокус в поле ввода команд в top, нажмите число, затем Enter. (Например, 100 Enter покажет 100 строк в списке процессов.)

Альтернатива: запуск в пакетном режиме и фильтрация внешними утилитами:

top -b -n 1 | head -n 120

где -b — batch (пакетный) режим, -n 1 — одна итерация вывода.

Изменить приоритет процесса (renice)

В интерактивном режиме top вы можете изменить nice-значение процесса:

  • r — введите PID процесса, затем новое значение nice (от -20 до +19). Меньшее значение = более высокий приоритет.

Пример:

  1. Нажмите r.
  2. Введите PID, например 2345.
  3. Введите новое значение NI, например 5, и нажмите Enter.

Важно: для установки более высокого приоритета (отрицательного NI) требуются права root.

Завершить процесс с помощью top

  • k — введите PID процесса, затем сигнал POSIX (по умолчанию 15, SIGTERM). Часто рекомендуется сначала отправить SIGTERM (15), а при неотзывчивости — SIGKILL (9).

Пример:

  1. Нажмите k.
  2. Введите PID, например 2345.
  3. По умолчанию будет предложен сигнал 15 — нажмите Enter.

Если процесс не отвечает, повторите и введите 9.

Совет безопасности: завершайте процессы осторожно на продакшене; сначала проверьте, кто владелец процесса и каков его COMMAND.

Кастомизация отображения

top поддерживает интерактивную настройку полей таблицы:

  • f — открыть меню полей (включить/выключить столбцы).
  • o или O — поменять порядок сортировки и критерий.
  • W — записать текущую конфигурацию в файл ~/.toprc (чтобы сохранять настройки между сессиями).

Шаги для удаления столбца RES:

  1. Нажмите f.
  2. Перемещайтесь стрелками к полю RES.
  3. Нажмите пробел, чтобы выключить.
  4. Нажмите Enter для выхода.
  5. Нажмите W, чтобы сохранить конфигурацию.

Альтернативный режим отображения и пакетный вывод

Для сценариев автоматизации или однократного снимка используйте batch mode:

top -b -n 1 > /tmp/top-snapshot.txt
  • -b — пакетный (неинтерактивный) режим.
  • -n 1 — количество обновлений (итераций). Для непрерывного мониторинга используйте число >1.

Комбинации:

# Отсортировать по памяти и вывести топ-20
top -b -o +%MEM -n 1 | head -n 40

# Одноразовый снимок с полными командными строками
top -b -c -n 1 > top-fullcmd.txt

Другие клавиши и приёмы

  • s — изменить интервал обновления (в секундах).
  • q — выйти.
  • ? — контекстная справка в некоторых сборках (показывает доступные клавиши).
  • S — переключает режим накопления времени CPU (cуммирование или нет).
  • u — фильтр по пользователю (см. выше).

Подсказка: если вы используете tmux или экран, убедитесь, что сочетания клавиш не конфликтуют с привязками сессии.

Аналоги top

Если вам нужен более дружественный интерфейс или дополнительные возможности, рассмотрите альтернативы:

  • htop — интерактивный, с мышью, удобная фильтрация и деревья процессов.
  • atop — продвинутая утилита для долговременного мониторинга с логированием.
  • glances — мульти-платформенный монитор с плагинами и веб-интерфейсом.
  • ps / sar / pidstat — однократные или статистические утилиты для скриптов.

Когда top лучше: быстрый и установлен по умолчанию на многих системах, работает в минимальном окружении. Когда нужен htop: когда нужно удобное интерактивное управление, цветные колонки и дерево процессов с мышью.

Методика быстрого triage при высокой нагрузке

  1. Откройте top и посмотрите на первую строку (load average). Сравните с количеством ядер — если load > cores, возможна перегрузка.
  2. Нажмите P — посмотрите процессы по %CPU. Если один процесс нагружает CPU, переключитесь на его полную командную строку (c) и владелец (USER).
  3. Нажмите M — если много потребления памяти, сортируйте по %MEM.
  4. Если процесс не отвечает и блокирует ресурсы, сначала попробуйте уменьшить приоритет (r) или аккуратно завершить (k с сигналом 15). При неэффективности — SIGKILL (9).
  5. Логируйте snapshot: top -b -n1 > /tmp/top-YYYYMMDD.log для последующего разбора.

Фактическое решение зависит от роли: девелопер может перезапустить сервис, а оператор — масштабировать или переключить трафик.

Шпаргалка — часто используемые клавиши (cheat sheet)

  • Q — выйти.
  • P — сортировка по CPU.
  • M — сортировка по памяти.
  • N — сортировка по PID.
  • T — сортировка по TIME+.
  • c — показать/скрыть полную командную строку.
  • 1 — показать все CPU отдельно.
  • t — переключить вывод CPU (числа/графики/блоки/скрыть).
  • m — переключение памяти (числа/графики/блоки/скрыть).
  • z — включить/выключить цвета.
  • y — подсветить выполняющиеся задачи.
  • x — подсветить столбец сортировки.
  • r — renice (изменить nice для PID).
  • k — kill (отправить сигнал PID).
  • u — фильтр по пользователю.
  • f — конфигурация полей.
  • W — сохранить текущие настройки в ~/.toprc.
  • b - переключение типа выделения (bold / reverse).
  • e / E — изменить единицы в списке / сводке.

Контроль доступа и безопасность

Изменение приоритета на более высокий (отрицательное значение nice) и отправка сигналов требует соответствующих привилегий. На сервере используйте sudo при выполнении действий, критичных для процессов других пользователей.

Примечание: не пытайтесь завершать процессы без понимания последствий в продуктивной среде — это может привести к потере данных или простоям.

Ролевые чек-листы

Системный администратор:

  • Оценить load относительно ядер.
  • Отсортировать по %CPU и %MEM.
  • Зафиксировать snapshot в файл.
  • Проверить владельца процесса и командную строку.
  • Попробовать уменьшить приоритет, затем аккуратно завершить.

Разработчик сервиса:

  • Открыть топ и отфильтровать процессы приложения по пользователю/команде.
  • Посмотреть аргументы запуска через c.
  • При необходимости перезапустить сервис и собрать логи.

Оператор/DevOps:

  • Сравнить индикаторы использования CPU/памяти с SLO.
  • Если потребуется, снизить нагрузку через переключение трафика или масштабирование горизонтально.
  • Задокументировать инцидент и действия.

Примеры использования в скриптах

Получить топ-10 по памяти и сохранить в лог:

#!/bin/bash
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
top -b -n 1 -o +%MEM | head -n 35 > /var/log/top-memory-$TIMESTAMP.log

Получить процессы, потребляющие >10% CPU (простая фильтрация):

top -b -n1 | awk 'NR>7 {if ($9+0 > 10) print $0}'

Когда top не подходит

  • Нужен длительный исторический мониторинг — используйте atop, collectd, Prometheus, Grafana.
  • Нужен удобный TUI с мышью — htop предпочтительнее.
  • Нужна агрегация метрик по кластерам — используйте систем мониторинга.

Ментальные модели и эвристики

  • “Load vs Cores”: если load average значительно больше числа ядер — вероятна CPU-узкая бутылочная шейка.
  • “Memory vs Swap”: активное использование swap — сигнал нехватки RAM или плохого поведения приложений.
  • “Пиковая активность одного процесса”: сегментируйте — перезапуск, изменение конфигурации или масштабирование.

Decision tree для первичной диагностики

graph TD
  A[Высокая нагрузка?] -->|Нет| B[Мониторить дальше]
  A -->|Да| C{Load > ядра?}
  C -->|Да| D[Сортировать по %CPU]
  C -->|Нет| E{Память высокая?}
  D --> F{Найден горящий процесс?}
  F -->|Да| G[Посмотреть командную строку, renice/kill]
  F -->|Нет| H[Рассмотреть I/O или блокировки]
  E -->|Да| I[Сортировать по %MEM]
  I --> J{Swap > 0?}
  J -->|Да| K[Проверить кешы/освободить память]
  J -->|Нет| L[Оценить утечки памяти]

Краткая энциклопедия терминов (1 строка каждая)

  • Load average — средняя длина очереди задач (за 1/5/15 минут).
  • Nice — смещение приоритета процесса (-20 высокого приоритета, +19 низкого).
  • RES — реальный объём занятой физической памяти процессом.
  • VIRT — объём виртуальной памяти (включая своп, mmap, библиотеки).

Критерии приёмки

  • Вы можете идентифицировать процесс, создающий нагрузку, и увидеть его командную строку.
  • Вы умеете изменить приоритет и отправить сигнал завершения через top.
  • Научились сохранять конфигурацию и делать snapshot для последующего анализа.

Заключение

top остаётся лёгким и мощным инструментом для интерактивного анализа процессов и быстрого triage. Он не заменит полноценную систему мониторинга или журналирования, но часто оказывается первым инструментом в арсенале системного администратора и разработчика. Изучите клавиши, сохраните удобный ~/.toprc, и у вас всегда будет быстрый монитор состояния системы.

Важно: всегда тестируйте команды в небое-опасной среде, прежде чем применять на продакшене.

Ссылки на аналоги и полезные команды

  • htop — sudo apt install htop
  • atop — sudo apt install atop
  • glances — pip3 install glances или пакетный менеджер
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Настройка TCP/IP в Windows
Сеть

Настройка TCP/IP в Windows

Код-пароль Kindle: установка, изменение и сброс
Руководство

Код-пароль Kindle: установка, изменение и сброс

Установить Dolby Atmos в Windows 11
Аудио

Установить Dolby Atmos в Windows 11

Windows Media Encoder на Windows 10 — установка и альтернативы
Видео софт

Windows Media Encoder на Windows 10 — установка и альтернативы

Отключить сохранение паролей в Google Chrome
браузер

Отключить сохранение паролей в Google Chrome

Переключение веток в Git и на GitHub
GIT

Переключение веток в Git и на GitHub