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

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

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/top -.-> lab-388500{{"Команда Linux top: мониторинг системы в реальном времени"}} end

Базовое использование команды 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. Первая строка показывает текущее время, время работы системы, количество пользователей и среднюю загрузку системы.
  2. Вторая строка отображает общее количество задач и их состояния (запущенные, спящие, остановленные, зомби).
  3. Третья строка показывает процентное использование ЦП.
  4. Четвертая и пятая строки отображают использование памяти и свопа.
  5. Таблица ниже показывает информацию о каждом отдельном процессе, по умолчанию отсортированную по использованию ЦП.

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

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

По умолчанию top сортирует процессы по использованию ЦП. Однако вы можете изменить эту сортировку в реальном времени. Изучим, как сортировать по использованию памяти.

  1. Запустите команду top:
top
  1. Когда top запустится, нажмите клавишу 'M' (заглавная). Это отсортирует процессы по использованию памяти (размеру резидентного набора) вместо использования ЦП.

Теперь вы должны увидеть переупорядоченный список процессов, где самые "жадные" по памяти процессы будут вверху списка.

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

  2. Чтобы отсортировать по идентификатору процесса (PID), нажмите клавишу 'N' (заглавная).

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

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

Выйдите из 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. Как сортировать процессы по разным критериям (использование ЦП, использование памяти, PID) в рамках top.
  3. Изменение интервала обновления top для более частых или реже выполняемых обновлений.
  4. Мониторинг процессов определенного пользователя.
  5. Отображение только активных процессов, исключая неактивные.

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

Вот некоторые дополнительные опции команды top и интерактивные команды, которые мы не рассмотрели в этой лабораторной работе:

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

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