Цель урока: Перейти от статического просмотра процессов (ps) к динамическому мониторингу в реальном времени с помощью утилит top и htop. Мы научимся не только наблюдать за нагрузкой на систему, но и влиять на нее, управляя приоритетами процессов с помощью команд nice и renice.

Часть 1: Теория. Планировщик задач и "вежливость" процессов

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

Планировщик задач ядра (Kernel Scheduler) - это менеджер в этом магазине. Его работа - решать, какого "покупателя" (процесс) следующим подпустить к "кассиру" (CPU) и на какое время.

Но не все процессы равны. Некоторые - это "VIP-клиенты", которым нужно уделить внимание в первую очередь (например, ядро системы). Другие - "неспешные покупатели", которые могут и подождать (например, фоновое архивирование большого файла).

Для управления этой очередностью в Linux существует понятие приоритета. Один из главных механизмов управления приоритетом - это значение nice.

  • Значение nice - это число от -20 до +19, которое указывает, насколько "вежлив" процесс по отношению к другим.

  • Это немного контринтуитивно, запомните:

    • Чем ниже значение nice (ближе к -20), тем выше приоритет (процесс "эгоистичный" и требует больше внимания CPU).

    • Чем выше значение nice (ближе к +19), тем ниже приоритет (процесс "вежливый" и готов уступать свое время другим).

  • Правила доступа:

    • Обычный пользователь может только повышать значение nice для своих процессов (т.е. делать их более "вежливыми").

    • Только root может понижать значение nice (т.е. делать процессы более приоритетными).

Часть 2: Практика. top - классический монитор системы

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

Шаг 1: Запуск
Просто введите в терминале:

top

Вы увидите экран, который обновляется каждые несколько секунд. Для выхода нажмите клавишу q.

Шаг 2: Разбор вывода
Экран top делится на две части: сводка по системе (вверху) и список процессов (внизу).

Верхняя часть (сводка):

  • Tasks: Общее количество процессов, сколько из них работают (running), спят (sleeping) и т.д.

  • %Cpu(s): Загрузка процессора. us - пользовательские процессы, sy - системные (ядро), ni - процессы с измененным nice.

  • MiB Mem: Информация об оперативной памяти (RAM). total - всего, free - свободно, used - используется, buff/cache - занято под буферы и кэш.

  • MiB Swap: Информация о файле подкачки (swap).

Нижняя часть (список процессов):
Давайте разберем самые важные столбцы:

  • PID: Уникальный идентификатор процесса.

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

  • PR: Реальный приоритет процесса, который видит ядро.

  • NI: Наше значение nice. По умолчанию для большинства процессов оно равно 0.

  • %CPU: Процент использования CPU этим процессом. top по умолчанию сортирует по этому столбцу.

  • %MEM: Процент использования оперативной памяти.

  • TIME+: Общее время работы процессора, потраченное на этот процесс.

  • COMMAND: Имя команды/программы.

top - это мощный инструмент, но его интерфейс и управление клавишами не очень интуитивны. Поэтому мы рассмотрим его современного преемника.

Часть 3: Практика. htop - улучшенный и интерактивный монитор

htop делает все то же самое, что и top, но в гораздо более удобном и наглядном виде.

Шаг 1: Установка
htop не всегда установлен по умолчанию, поэтому давайте его установим.

Напоминаю, apt update синхронизирует списки пакетов

apt update

apt install устанавливает пакет

apt install htop

Шаг 2: Запуск и интерфейс

 htop

Что вы сразу заметите:

  • Цвет и графика: Нагрузка на каждый процессор, память и swap отображаются в виде наглядных полос.

  • Полные имена команд: Не нужно нажимать доп. клавиши, чтобы увидеть полный путь к процессу.

  • Интерактивность: Можно использовать стрелки для перемещения по списку и мышь для кликов.

  • Понятное меню: Внизу экрана всегда есть подсказки по основным действиям (F3 Поиск, F4 Фильтр, F9 "Убить" процесс, F10 Выход).

Шаг 3: Полезные интерактивные функции

  • F5 (Tree): Показать процессы в виде дерева. Очень полезно, чтобы увидеть, какой процесс породил какой.

  • F4 (Filter): Отфильтровать список. Например, введите ssh, чтобы увидеть только процессы, связанные с SSH.

  • F9 (Kill): Выбрать процесс и отправить ему сигнал для завершения (например, SIGTERM или SIGKILL). Это интерактивный аналог команды kill.

Часть 4: Практика. Управление приоритетами с nice и renice

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

1. nice - запуск команды с измененным приоритетом

  • Сценарий: Нам нужно заархивировать большой каталог /var/log, но мы не хотим, чтобы эта задача "тормозила" работу более важных сервисов (например, веб-сервера). Мы запустим tar с пониженным приоритетом (повышенным значением nice).

# nice -n [значение_nice] [команда]
nice -n 15 tar -czf large_log_archive.tar.gz /var/log

Если вы во время выполнения этой команды откроете htop в другом окне, вы найдете процесс tar и увидите, что в его столбце NI стоит значение 15.

2. renice - изменение приоритета уже запущенного процесса

  • Сценарий: Вы открыли htop и увидели, что какой-то скрипт (например, с PID 12345) внезапно начал потреблять 100% CPU. Вы не хотите его "убивать", но хотите "успокоить".

Шаг 1: Узнайте PID процесса (например, из htop). Допустим, это 12345.
Шаг 2: Примените renice.

# renice -n [новое_значение_nice] -p [PID_процесса]
renice -n 10 -p 12345

После выполнения этой команды, если вы посмотрите на процесс 12345 в htop, его значение NI изменится с 0 на 10, и планировщик начнет выделять ему меньше процессорного времени.

Часть 5: Заключение

Мы перешли на новый уровень понимания процессов. Теперь вы умеете:

  • Отличать статический список (ps) от динамического мониторинга (tophtop).

  • Читать и понимать ключевые показатели здоровья системы: загрузку CPU, использование памяти.

  • Использовать htop для удобного интерактивного анализа и управления процессами.

  • Понимать, что такое приоритет процесса и значение nice.

  • Запускать ресурсоемкие задачи в фоновом режиме с пониженным приоритетом с помощью nice.

  • "Усмирять" уже запущенные "прожорливые" процессы с помощью renice.

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

На следующем, 26-м уроке, мы научимся просматривать и анализировать системные журналы (логи) с помощью современной утилиты journalctl

Перейти к просмотру - УРОК №26.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)