Содержание
Простейшей утилитой для мониторинга процессов является утилита top. Первоначально эта утилита была разработана для вывода информации о первых десяти процессах в порядке убывания использования ресурсов CPU, чем и заслужила своё название. В современной ОС FreeBSD утилита показывает каждый процесс, выполняющийся на данный момент в любом состоянии.
Вся фишка утилиты top в том, что она полностью интерактивна и выполняется в реальном времени. После запуска она обновляет терминал каждую секунду, предоставляя информацию о состоянии нашей системы. Далее мы познакомимся поближе с этой утилитой и научимся управлять процессами, ну а сначала разберёмся с тем, что же всё-таки она выводит.
Информация, выводимая утилитой top.
Вот скриншот экрана моей системы с запущеной утилитой top. Полезная информация понеслась уже со второй строки: показывает, сколько запущено процессов, сколько активно на данный момент, сколько простаивает и сколько находится в режиме “зомби”, а также сколько на эти процессы потребовалось времени CPU.
По умолчанию в этом списке отображаются все процессы, как простаивающие, так и активные. Мы можем переключиться между отображением/сокрытием простаивающих процессов нажатием клавиши <I>. Ещё полезная фича – убивать процессы. <K> и PID процесса, позволяют кильнуть процесс как в диспетчере задач Windows. Сейчас я это продемонстрирую.
Открем новую консоль, <Alt+F3>, залогиниваемся под root. В домашней папке создадим новый файл, я назвал его cicle.exe
# ee cicle.exe
Да, пережиток винды. Не суть важно, как мы его назовём. Содержание будет следующее:
#!/bin/sh
while true
do
printf ‘Hello /n’;
done
Расшифровывать, думаю, не надо. Скрипт просто зациклен и печатает на экране слово hello. Сохраним этот файл и добавим ему атрибут исполнения:
# chmod +x cicle.exe
и запускаем файл на исполнение:
# ./cicle.exe
Понеслась!
Переходим вновь на первую консоль <Alt+F1>, выключаем отображение простаивающих процессов и видим загрузку интерпретатора sh.
Киляем процесс по его PID, нажимаем <K> и вводим заветный идентификатор. Всё! Процесс погребён заживо.
Что за параметр load averages
Следующее, на что следует обратить внимание – это средние значения загрузки (load averages) в первой строке. Довольно непростые метрики, которые можно использовать, чтобы оценить примерную загрузку нашего сервера. В расчёт этих метрик берётся количество задач, выполнившихся за последние 1 мин, 5 мин и 15 мин соответственно. Если значения больше единицы, значит система не успевает выполнять поставленные задачи и они выстраиваются в очередь. Повторюсь, этот параметр очень приблизитиельный.
Что такое “спираль смерти” (death spiral)
Обычно для сервера нормальная загрузка – это единица, значение 5 расценивается как неустойчивая работа. Некоторые демоны прекращают приём новых запросах при высоких уровнях загрузки, как например Sendmail перкращает приём при загрузке уже в 12. Если загрузка достигает 20-30, то скорей всего система оказалась в ситуации, называемой “спираль смерти”, т.е. новые процессы создаются быстрее, чем система их может выполнить. Death Spiral – один из редких случаев, когда может понадобится перезагрузить сервер.
Показатели использования памяти
Не стоит думать, что показатель Free отображает всю доступную память в системе. Это значение показывает тот объем памяти, который ещё не использовался с момента включения системы. А на что следует обратить внимание, так это на параметр Active, поскольку он показывает, сколько памяти занято активными процессами.
Обратите внимание, что процессы перечислены в порядке убывания значения в столбце WCPU. Этот параметр показывает, сколько циклов CPU используется в данный момент времени каждым процессом.
Строка CPU states (состояние CPU) говорит о том, сколько ресурсов процессора используется в каждом из четырёх возможных состояний.
Следует помнить, что некоторые демоны (MySQL, Qmail) могут занимать 100% возможностей системы, и это поведение считается нормальным.
Значение в столбце TIME представляет количество секунд CPU, которые были отведены процессу на состояниях системы и состояниях пользователя соответственно.
Так же обратим внимание на столбцы SIZE и RES. SIZE показывает выделенный размер процесса, включая компоненты текста, данных и стека, а столбец RES показывает данные по резидентной памяти. Именно этот параметр является “классическим” объемом используемой памяти, которое показывают системы Windows и Mac OS.
Остальные столбцы не настолько важны, чтобы на них заострят внимание. PID – Process Id, уникальный идентификатор процесса, USERNAME – имя пользователя, под которым процесс запущен. STATE показывает, в каком из состояний находится процесс, что в общем-то не является информативным параметром.
Процесс Zomb (Zombie) – дочерний процесс, который был остановлен, но ещё не освободил полностью ресурсы в таблице процессов.
Клавиша <U> поможет отфильтровать процессы по имени пользователя, хозяина процессов, а клавиша <T> включает и выключает отображение самого процесса top.
Comments: