Показ задач в Linux

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

Введение

Мониторинг системных процессов является важным навыком для пользователей Linux и системных администраторов. Понимание того, какие процессы запущены и как они используют ресурсы, позволяет вам поддерживать стабильность и производительность системы.

В этом практическом занятии (лабораторной работе) вы научитесь использовать команду top, которая является мощным инструментом для мониторинга процессов Linux в реальном времени. Команда top предоставляет подробную информацию о использовании ЦП, потреблении памяти и других важных системных показателях. Освоив эту важную команду, вы сможете определить ресурсоемкие процессы и эффективно управлять ресурсами своей системы Linux.

Введение в команду top

Команда top представляет собой фундаментальную утилиту Linux, которая отображает динамическое, реальное представление о процессах, запущенных на вашей системе. Название "top" связано с ее поведением по умолчанию, которое заключается в отображении "самых активных" (по потреблению ЦП) процессов.

Начнем с перехода в каталог вашего проекта и рассмотрим базовое использование команды top:

cd ~/project

Теперь запустим команду top:

top

При выполнении этой команды вы должны увидеть интерактивный экран, похожий на следующий:

top - 14:25:30 up 2 days,  3:45,  1 user,  load average: 0.15, 0.20, 0.25
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   4096.0 total,   2841.3 free,    845.2 used,    409.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2970.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox
 2345 labex     20   0   78912  23456  13204 S   0.7   0.6   0:12.34 terminal
 3456 root      20   0   43528   5424   4356 S   0.3   0.1   0:05.67 sshd
  ... (more processes)

Экран top состоит из двух основных разделов:

  1. Общая информация (первые 5 строк): Предоставляет системную информацию, включая:

    • Время работы системы и средние нагрузки
    • Статистика по задачам (всего, запущенных, спящих и т.д.)
    • Процентное использование ЦП
    • Использование памяти (ОЗУ и своп)
  2. Список процессов (таблица под общей информацией): Содержит список запущенных процессов с деталями, такими как:

    • PID: Идентификатор процесса
    • USER: Владелец процесса
    • PR: Приоритет
    • NI: Nice-значение
    • VIRT: Используемая виртуальная память
    • RES: Используемая физическая память
    • %CPU: Процентное использование ЦП
    • %MEM: Процентное использование памяти
    • COMMAND: Имя команды

По умолчанию экран автоматически обновляется каждые 3 секунды. Чтобы выйти из команды top, просто нажмите клавишу q.

Теперь сделаем статическую снимку процессов с использованием опции -n 1. Эта опция сообщает top обновиться только один раз и затем завершиться:

top -n 1 > ~/project/top_snapshot.txt

Эта команда создает файл с именем top_snapshot.txt в каталоге вашего проекта, содержащий снимок текущих системных процессов. Проверим содержимое файла:

cat ~/project/top_snapshot.txt

Вы должны увидеть вывод, похожий на то, что отображалось в интерактивной сессии top, но в виде статического текстового файла.

Интерпретация вывода команды top

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

Откройте файл top_snapshot.txt с помощью текстового редактора nano:

nano ~/project/top_snapshot.txt

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

Посмотрите на раздел со списком процессов (под разделом с общими данными) и найдите процесс с наибольшим значением в столбце %CPU. Это указывает на процесс, который потреблял больше всего ЦП в момент снятия снимка.

Например, если вы видите строку следующего вида:

 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox

Это показывает, что процесс с PID 1234 (firefox), принадлежащий пользователю "labex", использовал 2,0% ЦП и 1,0% памяти.

Запишите следующую информацию о процессе с наибольшим использованием ЦП:

  1. PID (идентификатор процесса)
  2. USER (владелец процесса)
  3. %CPU (процентное использование ЦП)
  4. %MEM (процентное использование памяти)
  5. COMMAND (команда или программа, которая запущена)

Чтобы выйти из nano, нажмите Ctrl+X.

Теперь создайте файл с именем top_analysis.txt, чтобы документировать свои наблюдения:

echo "Most CPU-intensive process analysis" > ~/project/top_analysis.txt

Добавьте детали о самом ресурсоемком по ЦП процессу в файл. Замените заполнители фактическими значениями, которые вы обнаружили:

echo "PID: [Replace with PID]" >> ~/project/top_analysis.txt
echo "USER: [Replace with USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Replace with %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Replace with %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Replace with COMMAND]" >> ~/project/top_analysis.txt

Например, если процесс 1234 (firefox) был самым ресурсоемким по ЦП, вы должны ввести:

echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt

Давайте проверим, что мы записали в файл:

cat ~/project/top_analysis.txt

В результате должны отобразиться содержимое файла с анализом и детали о самом ресурсоемком по ЦП процессе.

Сортировка и фильтрация процессов в top

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

Сначала запустим интерактивную команду top еще раз:

top

Во время работы top вы можете использовать сочетания клавиш для изменения его поведения:

  1. Нажмите M (заглавная буква), чтобы отсортировать процессы по использованию памяти.
  2. Нажмите P (заглавная буква), чтобы отсортировать процессы по использованию ЦП (по умолчанию).
  3. Нажмите T (заглавная буква), чтобы отсортировать процессы по времени (сколько времени они работают).
  4. Нажмите N (заглавная буква), чтобы отсортировать процессы по PID (идентификатору процесса).

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

Теперь сделаем снимок процессов, отсортированных по использованию памяти. Мы будем использовать пакетный режим top с определенными параметрами:

top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt

В этой команде используются следующие параметры:

  • -b: Пакетный режим (неинтерактивный).
  • -n 1: Запустить только один цикл обновления.
  • -o %MEM: Сортировать по использованию памяти.

Проверим содержимое этого файла:

cat ~/project/top_sorted_by_mem.txt

Вы должны увидеть список процессов, отсортированный по использованию памяти, с самыми "жадными" по памяти процессами вверху.

Далее отфильтруем процессы так, чтобы показать только те, которые принадлежат вашему пользовательскому аккаунту:

top -b -n 1 -u labex > ~/project/top_user_filtered.txt

Параметр -u labex фильтрует вывод, показывая только процессы, принадлежащие пользователю "labex". Проверим этот файл:

cat ~/project/top_user_filtered.txt

В этом файле должны быть показаны только процессы, принадлежащие пользователю "labex".

Наконец, объединим сортировку и фильтрацию, чтобы получить более конкретное представление:

top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt

Эта команда показывает только процессы, принадлежащие пользователю "labex", и сортирует их по использованию ЦП. Проверим результат:

cat ~/project/top_custom.txt

Эти параметры настройки делают top универсальным инструментом для анализа определенных аспектов системной производительности и использования ресурсов.

Резюме

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

  1. Запуск команды top для просмотра реального времени отображения системных процессов.
  2. Понимание информации, отображаемой в выводе команды top, включая использование ЦП, использование памяти и детали процессов.
  3. Создание снимков информации о процессах для анализа.
  4. Определение ресурсоемких процессов путем анализа использования ЦП и памяти.
  5. Настройка отображения в top с помощью опций сортировки и фильтрации.

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

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