- Использование команды top в ОС Linux
- Работа с командой top
- Использование top в фоновом режиме
- Параметры команды top
- Отображение текущей версии
- Определение задержки между обновлениями экрана
- Получение списка столбцов, поддерживающих сортировку
- Сортировка вывода команды top по имени столбца
- Отображение процессов определённого пользователя
- Отображение дополнительных столбцов в таблице top
- Переключение режимов
- Смена цветов
- Резюме
- Sysadminium
- Утилита top
- Общая информация о системе
- Информация по каждому процессу
- Опции команды top
- Количество итераций
- Процессы определённого пользователя
- Горячие клавиши top
- Режим цветности
- Больше информации о команде (поле COMMAND)
- Сортировка процессов
- Завершение процессов
- Добавление полей
- Итог
Использование команды top в ОС Linux
Команда top используется в операционной системе Linux для отображения всех активных процессов внутри неё. Данная статья рассказывает о работе с командой top, предоставляя обзор её параметров и отображаемой информации.
Работа с командой top
В простейшем случае, для того, чтобы отобразить активные процессы, нужно просто ввести в терминале Linux следующее:
При этом отображается следующая информация:
В первой строке отображается:
- Время
- Время работы компьютера
- Число пользователей
- Средняя нагрузка (за последний час, полчаса и 15 минут)
Во второй строке отображается:
- Общее число задач
- Количество активных задач
- Количество отложенных задач
- Количество приостановленных задач
- Количество задач-зомби
В третьей строке в процентах отображается:
- Загрузка ЦП задачами пользователя
- Загрузка ЦП системой
- Загрузка ЦП процессами с низким приоритетом
- Время бездействия ЦП
- Загрузка ЦП операциями ввода/вывода
- Загрузка ЦП обработкой аппаратных прерываний
- Загрузка ЦП обработкой программных прерываний
- Время, “украденное” гипервизором
В третьей строке отображается:
- Общий объём доступной системе памяти
- Объём свободной памяти
- Объём используемой памяти
- Объём буферного кэша
В четвёртой строке показан:
- Общий объём SWAP (раздела подкачки)
- Объём свободной памяти в SWAP
- Объём использованной памяти в SWAP
- Объём доступной памяти.
В основной таблице отображается:
- ID процесса
- Уровень пользовательского приоритета
- Уровень “вежливости”
- Объём виртуальной памяти, используемой процессом
- Объем физической памяти, используемый процессом
- Объём совместно используемой памяти
- Коэффициент загрузки ЦП процессом, %
- Коэффициент загрузки памяти процессом, %
- Время работы процесса
- Команда
Использование top в фоновом режиме
Получить доступ к команде top и при этом не вводить её каждый раз в терминал весьма просто.
Для того, чтобы приостановить top и продолжить пользоваться терминалом, достаточно нажать Ctrl+Z.
Вернуть top на первый план можно командой fg.
Параметры команды top
-h – отображает текущую версию
-c – переключает столбец command между отображением команды и имени программы
-d – устанавливает задержку между обновлениями экрана
-o – выполняет сортировку по имени
-p – показывает только процессы с заданными ID
-u – показывает только процессы определенного пользователя
Отображение текущей версии
Для того, чтобы получить информацию о версии top, введите следующее:
Вывод при этом имеет следующий вид:
Определение задержки между обновлениями экрана
Для того чтобы задать задержку между обновления экрана во время использования top, наберите следующее:
Например, чтобы обновлять содержимое каждые 5 секунд, введите top -d 5
Получение списка столбцов, поддерживающих сортировку
Для того чтобы получить список столбцов, по которым можно выполнить сортировку, введите следующее:
Команда top выводит множество столбцов, и вы, вероятно, захотите перенаправить вывод и отобразить его при помощи less. Для этого введите:
Сортировка вывода команды top по имени столбца
Чтобы выбрать столбец, по которому можно выполнить сортировку, воспользуйтесь алгоритмом из предыдущего раздела, затем выполните сортировку используя следующий синтаксис:
Например, сортировку по столбцу %CPU можно выполнить при помощи этой команды:
Отображение процессов определённого пользователя
Для того чтобы показать процессы, запущенные определённым пользователем, используйте команду следующего вида:
Например, для того, чтобы отобразить все процессы пользователя gary, введите следующее:
Отображение дополнительных столбцов в таблице top
Во время работы top нажмите клавишу “F” чтобы увидеть список полей, которые можно отобразить в таблице.
Навигация по списку полей осуществляется с помощью клавиш-стрелок.
Чтобы отобразить определённое поле, нажмите клавишу “D”. Чтобы скрыть поле, нажмите “D” ещё раз. Рядом с отображаемыми полями появляется символ звёздочка (*).
Вы можете активировать сортировку таблицы по определенному параметру, просто выделив его и нажав клавишу “S”.
Для того, чтобы изменения вступили в силу, нажмите клавишу “Enter”. Выйти из меню можно при помощи клавиши “Q”.
Переключение режимов
Во время работы top вы можете нажать клавишу “A”, чтобы переходить между стандартным и альтернативным представлением.
Смена цветов
Для того, чтобы изменить цвет значений, отображаемых в top, нажмите клавишу “Z”.
Смена цвета осуществляется в три стадии:
- Нажмите “S” для того, чтобы изменить цвет общих данных, “M” – сообщений, “H” – заголовков столбцов, “T” – информации о задачах.
- Выберите желаемый цвет для выбранного участка. 0 – черный, 1 – красный, 2 – зеленый, 3 – желтый, 4 – синий, 5 – пурпурный, 6 – голубой, 7 – белый.
- Подтвердите свой выбор нажатием клавиши “Enter”. С помощью клавиши “B” можно применить полужирное начертание текста.
Резюме
Команда top имеет множество параметров, для более подробной справки введите в терминале следующую команду:
Sysadminium
В этой статье будет показана утилита top, с помощью которой можно наблюдать за активностью процессов в реальном времени.
Утилита top
Утилита top — это консольный диспетчер задач. Он показывает общую информацию о системе и информацию о каждом процессе. Работа этой утилиты выглядит следующим образом:
Вы можете почитать официальный мануал по использованию top здесь, или выполните команду man top .
Это не привычная нам утилита командной строки. Это — интерактивная утилита, то есть она постоянно обновляет данные и с ней можно взаимодействовать с помощью горячих клавиш.
Вывод данной утилиты можно разбить на две части:
- сверху — шапка. Здесь вы можете посмотреть на общую информацию о системе;
- ниже — информация по каждому процессу.
Общая информация о системе
Как видно, шапка состоит из пяти строк.
На первой и второй строке показана общая информация о системе:
На первой строке показаны следующие поля:
- текущее время;
- как долго работает система после последней загрузки;
- сколько в системе активных пользователей;
- средняя загрузка системы (load average) — три величины, усредненные за последние 1 и 5 и 15 минут. Чем ниже, тем лучше. Если превышает количество ядер на сервере, то значит сервер перегружен.
- количество процессов;
- количество работающих в данный момент процессов;
- количество спящих процессов;
- количество остановленных процессов;
- количество зомби процессов.
На третьей строке показана информация о потреблении ЦПУ:
- us — потребление cpu пользовательскими процессами (top и apache2);
- sy — потребление cpu системными процессами;
- ni — потребление cpu пользовательскими процессами, c измененным приоритетом (командой nice или renice);
- id — простаивание cpu;
- wa — процент времени, в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Если слишком высокое (более 10), значит за вашим процессором не поспевает диск, и нужно бы поменять его на более быстрый;
- hi — процент времени работы аппаратных прерываний. Периферийные устройства могут прерывать работу процессора, чтобы передать какие-то данные;
- si – процент времени работы программных прерываний. Некоторые приложения могут прерывать работу процессора, чтобы передать какие-то данные;
- st — процент времени, когда реальный процессор не был доступен виртуальной машине. Будет расти если виртуальной машине выделить больше ядер, чем имеет гипервизор. Этот показатель имеет значение только в системах виртуализации.
Ниже видим информацию по потреблению оперативной памяти (Mem) и подкачки (Swap):
- total — общее количество памяти;
- free — количество свободной памяти;
- used — количество используемой памяти;
- buff / cache — память выделенная под буфер и дисковый кэш;
- avail Mem — память которая может быть выделена для запуска новых процессов.
Информация по каждому процессу
Ниже показана информация по каждому процессу. Информация разбита на следующие колонки:
- PID — номер процесса;
- USER — имя пользователя под которым работает процесс;
- PR — приоритет процесса;
- NI — любезность процесса, чем она выше, тем ниже приоритет;
- VIR — общее количество памяти, которое способен адресовать процесс в данный момент времени. Включает в себя RES, SHR, прикреплённые файлы (например — файлы библиотек). Также включает в себя память, которая была выделена, но не использована;
- RES — количество физической памяти, которую использует процесс;
- SHR — количество разделяемой памяти, которую использует процесс. Разделяемая память потенциально может быть разделена с другими процессами;
- S — состояние процесса (я их уже описывал здесь):
- S (sleeping) — спящий;
- R (running) — в работе;
- Z (zombie) — зомби;
- D (uninterruptible sleep) — ожидает дискового ввода/вывода, и не принимает никакие сигналы;
- T (stopped by job control signal) — остановлен специальным сигналом;
- t (stopped by debugger during trace) — остановлен в процессе дебага;
- I (Idle) — бездействующий поток ядра.
- %CPU — использование cpu в процентах;
- %MEM — RES в процентах от общего количества памяти;
- TIME+ — сколько времени с этим процессом работал ЦПУ, с точностью до сотых долей секунды;
- COMMAND — с помощью какой команды запустили процесс.
Опции команды top
Теперь пробежимся по основным опциям, с которыми можно запускать top.
Количество итераций
Опция -n укажет через сколько повторений нужно завершить работу top. По умолчанию чтобы выйти из top нужно нажать клавишу q. Следующая команда выйдет из top через 10 повторений:
Процессы определённого пользователя
Можно заставить top отображать процессы определенного пользователя с помощью опции -u:
Горячие клавиши top
Режим цветности
Если во время работы top нажать клавишу z, это переключит режим цветности (белое на чёрном или черное на белом):
Больше информации о команде (поле COMMAND)
Если во время работы top нажать клавишу с, это заставит выводить больше информации о команде:
Сортировка процессов
По умолчанию процессы отсортированы по колонке %CPU. Те что потребляют больше всего находятся сверху.
Чтобы выделить столбец, по которому сейчас идет сортировка, нажмите клавишу x.
Клавишами «» или «>«, можно выбрать столбец, по которому нужно сортировать процессы.
А если нажать клавишу R, то сортировка пойдет в обратном порядке.
Клавиша M отсортирует процессы по потреблению памяти (%MEM).
Завершение процессов
Из top можно завершить процесс, для этого нужно нажать клавишу k, далее ввести pid процесса, который хотим завершить и нажать Enter.
По умолчанию процессу посылается сигнал 15 (sigterm). Но завершать чужие процессы можно только запустив top под пользователем root, или с помощью команды sudo.
Сигналы, которые можно посылать процессам, я разберу чуть позже в этом курсе.
Добавление полей
По умолчанию отображаются далеко не все поля. Чтобы добавить поля нажмите клавишу F. Затем, с помощью клавиш вверх и вниз, вы можете перемещаться по полям. Чтобы добавить выбранное поле нажмите клавишу d или пробел. А чтобы выбрать поле для сортировки выделите его и нажмите s. Ну и чтобы вернуться в режим просмотра, нажмите q.
Итог
Мы разобрали утилиту top для мониторинга за потреблением ресурсов Linux.
Узнали следующие опции top:
- -n — завершить top после нескольких итераций;
- -u — показывать процессы определенного пользователя.
Узнали горячие клавиши top:
- z — изменить цветность;
- c — более полная команда запуска;
- — сортировать по предыдущему столбцу;
- > — сортировать по следующему столбцу;
- R — обратить сортировку;
- M — сортировать по rss;
- x — выделить колонку по которой ведётся сортировка;
- k — завершить процесс;
- F — настроить поля и сортировку.