
Цель урока: Перейти от статического просмотра процессов (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) от динамического мониторинга (top, htop).
-
Читать и понимать ключевые показатели здоровья системы: загрузку CPU, использование памяти.
-
Использовать htop для удобного интерактивного анализа и управления процессами.
-
Понимать, что такое приоритет процесса и значение nice.
-
Запускать ресурсоемкие задачи в фоновом режиме с пониженным приоритетом с помощью nice.
-
"Усмирять" уже запущенные "прожорливые" процессы с помощью renice.
Эти навыки позволяют не просто констатировать факт "сервер тормозит", а находить причину и активно влиять на ситуацию, обеспечивая стабильную работу системы.
На следующем, 26-м уроке, мы научимся просматривать и анализировать системные журналы (логи) с помощью современной утилиты journalctl
Перейти к просмотру - УРОК №26.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

