Команда Linux top: Мониторинг системы в реальном времени

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать на практическое занятие по команде Linux top. В ходе этой лабораторной работы вы научитесь использовать команду top для мониторинга системных процессов и потребления ресурсов в режиме реального времени. Этот навык является базовым для системных администраторов, разработчиков и всех, кому необходимо понимать и контролировать производительность системы.

Представьте, что вы — младший системный администратор, отвечающий за работу нагруженного веб-сервера. Поступили жалобы на медленную работу сервера, и вам нужно выяснить, какие процессы потребляют больше всего ресурсов. Команда top станет вашим основным инструментом в этом расследовании, позволяя просматривать и анализировать активность системы «на лету».

Базовое использование команды top

Начнем с запуска команды top в ее простейшем виде. Это даст нам динамическое представление о процессах в системе в реальном времени.

Откройте терминал и выполните следующую команду:

top

Вы увидите экран, похожий на этот:

top - 14:30:23 up  5:10,  1 user,  load average: 0.15, 0.22, 0.28
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.3 system,  0.0 ni, 96.3 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7824.9 total,   2576.8 free,   2935.0 used,   2313.1 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4558.1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 user      20   0 3626108 205008  89380 S   2.0   2.6   0:45.85 gnome-shell
 5678 user      20   0  859492  51528  38060 S   1.3   0.6   0:10.91 Xorg
 9101 user      20   0  722816  36096  29088 S   0.7   0.5   0:05.62 gnome-terminal

Данные на экране постоянно обновляются (по умолчанию каждые 3 секунды). Давайте разберем, что мы видим:

  1. Первая строка показывает текущее время, время аптайма (работы системы с момента включения), количество пользователей и среднюю нагрузку (load average).
  2. Вторая строка отображает общее количество задач и их состояния (выполняются, спят, остановлены, зомби).
  3. Третья строка показывает процент использования ресурсов процессора (CPU).
  4. Четвертая и пятая строки отображают использование оперативной памяти и раздела подкачки (swap).
  5. Таблица ниже содержит информацию об отдельных процессах, по умолчанию отсортированных по интенсивности использования CPU.

Чтобы выйти из top, нажмите клавишу 'q'.

Сортировка процессов в top

По умолчанию top сортирует процессы по использованию процессора. Однако вы можете изменить порядок сортировки прямо во время работы программы. Давайте попробуем отсортировать процессы по использованию памяти.

  1. Запустите команду top:
top
  1. Пока top запущен, нажмите клавишу 'M' (в верхнем регистре). Это переключит сортировку на использование памяти (размер резидентной части памяти — RES) вместо CPU.

Теперь вы увидите, что список процессов перестроился, и самые «прожорливые» до памяти программы оказались вверху.

  1. Чтобы снова вернуться к сортировке по использованию CPU, нажмите клавишу 'P' (в верхнем регистре).

  2. Для сортировки по идентификатору процесса (PID) нажмите 'N' (в верхнем регистре).

  3. Чтобы инвертировать текущий порядок сортировки (от меньшего к большему и наоборот), нажмите 'R' (в верхнем регистре).

Помните, что вы всегда можете нажать 'h' или '?' во время работы top, чтобы вызвать справку по всем доступным командам.

Завершив изучение, выйдите из программы, нажав 'q'.

Изменение интервала обновления

По умолчанию top обновляет данные каждые 3 секунды. Вы можете изменить этот интервал. Давайте установим обновление каждую секунду для более динамичного наблюдения.

Запустите top с опцией -d:

top -d 1

Теперь данные на экране будут обновляться чаще. Это полезно, когда нужно отследить кратковременные всплески активности или быстро меняющиеся процессы.

Чтобы изменить интервал обновления прямо во время работы top:

  1. Нажмите 'd' (в нижнем регистре).
  2. Введите новую задержку в секундах (например, '0.5' для обновления дважды в секунду).
  3. Нажмите Enter.

Имейте в виду, что слишком короткие интервалы обновления сами по себе могут потреблять заметную часть ресурсов процессора, поэтому используйте их осмотрительно.

Выйдите из top, нажав 'q'.

Отображение процессов конкретного пользователя

Системным администраторам часто требуется следить за процессами определенного пользователя. Команда top позволяет легко это сделать.

Давайте посмотрим на процессы текущего пользователя (в данной среде это 'labex'):

top -u labex

Теперь в списке будут отображаться только те процессы, владельцем которых является пользователь 'labex'.

Эта функция крайне полезна при поиске причин неполадок, связанных с действиями конкретного пользователя, или когда вы хотите сосредоточиться только на своих задачах в многопользовательской системе.

Выйдите из top, нажав 'q'.

Отображение только активных процессов

Иногда бывает удобно скрыть бездействующие процессы и сосредоточиться только на тех, которые реально что-то делают. В top для этого предусмотрена специальная опция.

Запустите top с флагом -i:

top -i

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

Это помогает быстро выявить потребителей ресурсов, не отвлекаясь на сотни «спящих» системных служб.

Выйдите из top, нажав 'q'.

Резюме

Поздравляем! Вы завершили лабораторную работу по использованию команды top для мониторинга системы. Давайте вспомним, что вы изучили:

  1. Базовый запуск команды top для просмотра процессов и ресурсов.
  2. Сортировка процессов по различным критериям (CPU, память, PID) внутри интерфейса.
  3. Настройка интервала обновления данных.
  4. Мониторинг процессов конкретного пользователя.
  5. Фильтрация списка для отображения только активных процессов.

эти навыки станут незаменимыми при управлении системными ресурсами, особенно когда нужно найти «узкие места» в производительности или устранить неполадки.

Вот еще несколько опций и интерактивных команд top, которые не вошли в это занятие:

  • -b: Запуск в пакетном режиме (полезно для перенаправления вывода в файлы или другие программы).
  • -n: Количество итераций обновления перед автоматическим выходом.
  • 'k': Завершить процесс (kill) по его PID прямо из интерфейса top.
  • 'r': Изменить приоритет процесса (renice).
  • 'c': Переключить отображение полного пути команды.
  • 'V': Показать информацию о версии.

Помните, что эффективный мониторинг — залог стабильности системы. Регулярное использование top поможет вам обнаруживать и предотвращать проблемы с ресурсами до того, как они критически повлияют на работу сервера.