Управление процессами в Linux

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

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

Введение

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

Результаты

По окончанию этого лабораторного занятия вы сможете:

  • Списывать и фильтровать процессы с использованием ps
  • Мониторить процессы в режиме реального времени с помощью top
  • Проверять использование системной памяти с помощью free

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") subgraph Lab Skills linux/ps -.-> lab-46{{"Управление процессами в Linux"}} linux/top -.-> lab-46{{"Управление процессами в Linux"}} linux/free -.-> lab-46{{"Управление процессами в Linux"}} end

Список всех процессов

Начнем с того, что выведем список всех процессов, запущенных в системе, с использованием команды ps.

  1. Откройте терминал. Вы должны находиться в директории /home/labex/project. Если вы не уверены, всегда можно проверить текущую директорию, введя pwd и нажав Enter.

  2. Выполните следующую команду для вывода списка всех процессов:

    ps -e

    Это отобразит список всех процессов, включая их идентификатор процесса (PID), терминал (TTY), время CPU и имя команды.

  3. Отведите немного времени на изучение вывода. Вы увидите системные и пользовательские процессы. Вот что означает каждая колонка:

    • PID: Уникальный идентификатор процесса
    • TTY: Тип терминала, связанный с процессом
    • TIME: Количество времени CPU, использованное процессом
    • CMD: Имя команды или программы

    Не беспокойтесь, если вы видите незнакомые имена процессов; многие из них - это системные процессы, которые работают в фоновом режиме.

Отображение подробной информации о процессах

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

  1. Выполните следующую команду:

    ps aux

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

  2. Вывод может быть довольно длинным. Вы можете использовать команду less для более удобного просмотра:

    ps aux | less

    Это перенаправляет вывод команды ps aux в less, позволяя вам прокручивать его.

  3. В просмотрщике less:

    • Используйте стрелки вверх и вниз для прокрутки.
    • Нажмите Space, чтобы перейти на одну страницу вперед.
    • Нажмите b, чтобы перейти на одну страницу назад.
    • Нажмите q, чтобы выйти из просмотрщика less, когда закончите.
  4. Давайте разберем, что вы видите:

    • USER: Владелец процесса
    • PID: Идентификатор процесса
    • %CPU: Использование CPU
    • %MEM: Использование памяти
    • VSZ: Размер виртуальной памяти
    • RSS: Resident Set Size (используемая несмещенная физическая память)
    • TTY: Тип терминала
    • STAT: Состояние процесса
    • START: Время запуска процесса
    • TIME: Совокупное время CPU
    • COMMAND: Команда со всеми ее аргументами

Не беспокойтесь, если вы сейчас не понимаете все эти термины. По мере накопления опыта вы будете знакомы с ними.

Фильтрация процессов по пользователю

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

  1. Чтобы увидеть процессы, принадлежащие пользователю root, выполните:

    ps -u root

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

  2. Чтобы увидеть процессы, принадлежащие вашему текущему пользователю (labex), выполните:

    ps -u labex

    Это покажет вам все процессы, которые вы запустили от имени своей пользовательской учетной записи.

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

Мониторинг процессов в режиме реального времени с помощью top

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

  1. Выполните следующую команду:

    top
  2. Вы увидите постоянно обновляемый экран с системными процессами, отсортированными по использованию CPU. Экран разделен на две основные части:

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

    • Нажмите M, чтобы отсортировать процессы по использованию памяти вместо CPU.
    • Нажмите P, чтобы вернуться к сортировке по использованию CPU.
    • Нажмите T, чтобы отсортировать по времени выполнения.
    • Нажмите N, чтобы отсортировать по PID.
    • Используйте стрелки вверх и вниз для навигации по списку процессов.
    • Нажмите q, чтобы выйти из top.
  4. В сводке содержится важная системная информация:

    • Время работы системы и средняя загрузка.
    • Сводка по задачам (всего, запущенных, спящих, остановленных, зомби).
    • Состояния CPU (пользовательское, системное, простой и т.д.).
    • Использование памяти (всего, свободно, использовано, буферы/кеш).
    • Использование свопа.

Отведите немного времени на изучение top. Это мощный инструмент для понимания того, что происходит в вашей системе в режиме реального времени.

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

Команда free позволяет быстро и легко проверить использование системной памяти.

  1. Выполните следующую команду, чтобы увидеть использование памяти в человекочитаемом формате:

    free -h

    Опция -h означает "human-readable" (человекочитаемый), которая отображает размеры в степенях 1024 (например, 1K, 234M, 2G).

  2. Вы увидите вывод, похожий на следующий:

                  total        used        free      shared  buff/cache   available
    Mem:           7.7G        4.1G        287M        624M        3.3G        2.7G
    Swap:          2.0G        506M        1.5G

    Давайте разберем, что означает каждая строка и столбец:

    • Mem: Эта строка показывает информацию о RAM вашей системы.
    • Swap: Эта строка показывает информацию о вашем своп - пространстве (виртуальной памяти).

    Столбцы:

    • total: Общая установленная память.
    • used: Память, которая в настоящее время используется.
    • free: Неиспользуемая память.
    • shared: Память, разделяемая несколькими процессами.
    • buff/cache: Память, используемая буферами ядра, кэшем страниц и слябами.
    • available: Оценка того, сколько памяти доступно для запуска новых приложений без переключения на своп.
  3. Не пугайтесь, если ваша "свободная" память кажется небольшой. Linux использует доступную память для кэширования диска, чтобы улучшить производительность системы, но эта память может быть возвращена, если приложениям это понадобится.

Резюме

В этом практическом занятии вы узнали, как использовать основные инструменты управления процессами в Linux:

  • ps для перечисления и фильтрации процессов
  • top для мониторинга процессов в режиме реального времени
  • free для проверки использования системной памяти

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

По мере того, как вы будете чувствовать себя более уверенно при работе с этими инструментами, вы можете изучить дополнительные параметры и комбинировать их с другими командами Linux для более продвинутого анализа системы. Например:

  • Используйте ps вместе с grep для поиска конкретных процессов.
  • Научитесь интерпретировать подробную информацию в top для выявления ресурсоемких приложений.
  • Используйте free в скриптах для мониторинга использования памяти в течение времени.

Помните, что практика делает мастером! Не стесняйтесь самостоятельно экспериментировать с этими командами, чтобы углубить свое понимание управления процессами в Linux. Чем чаще вы будете использовать эти инструменты, тем более интуитивно понятными они станут.