# Утилита для контроля нагрузки и процессов top Утилита **top** является одной из специальных утилит с помощью которых можно проанализировать, что именно нагружает сервер. **top** предустановлена в UNIX-системах, поэтому для запуска достаточно подключиться к консоли сервера и выполнить команду: ``` top ``` Вывод утилиты выглядит следующим образом: {{:linux:top.jpg?direct&600|}} В верхней части выводится информация о системе, в нижней — список процессов. Вывод обновляется каждые 2 секунды. Процессы, оказывающие самую большую нагрузку на процессор, будут выведены вверху списка. ## Сведения о системе Слева вверху указано текущее время системы, далее: * **Up** — время работы системы с последнего запуска. * **User** — количество текущих пользователей. * **Load average** — средняя нагрузка на сервер: отображаются значения за одну, пять и 15 минут назад. * **Tasks** — общее количество запущенных процессов в разных статусах (**running** — выполняемые; **sleeping** — в ожидании; **stopped** — остановленные; **zombie** — «зомби», дочерние процессы, ожидающие завершения родительского процесса). * **Cpu(s)** — процент времени процессора, затраченного на выполнение процессов, в том числе: * **us** — пользовательские процессы (высокое значение данного показателя может указывать, в том числе, на проблемы в коде сайта, необходимость его оптимизации); * **sy** — процессы ядра; * **id** — неиспользуемые ресурсы (чем выше этот показатель, тем лучше); * **wa** — операции ввода/вывода, т.е. дисковые операции. * **Mem**, **Swap** — сведения об использовании оперативной памяти (**total** — общий объем, **free** — объем свободной памяти, **used** — объем использованной памяти). ## Сведения о процессах По умолчанию процессы выстроены в таблице по размеру нагрузки на процессор, от большего значения к меньшему. |Обозначения столбцов|Значение| |:---|:---| |PID |идентификатор процесса;| |USER |пользователь, запустивший процесс;| |PR |приоритет процесса;| |NI |измененный приоритет (присвоенный пользователем с помощью команды nice);| |VIRT |объем используемой виртуальной памяти (здесь выводится тот объем памяти, который был запрошен процессом, даже если фактически используется меньше);| |RES |объем используемой оперативной памяти (в данном случае, если процесс запросил 50Мб памяти, а использует 10Мб, будет выведено 10Мб);| |SHR |объем памяти, разделяемой с другими процессами (т.е. память, которая может быть использована другими процессами);| |S |статус процесса (//running// — запущен; //sleeping// — в ожидании; //zombie// — процесс-«зомби»);| |%CPU |процент использования процессорного времени;| |%MEM |процент использования оперативной памяти;| |TIME |общее время работы процесса;| |COMMAND |имя процесса (команда, которой был запущен процесс).| ## Управление Для работы с утилитой top используются следующие клавиши: |Клавиша|Действие| |:---|:---| |Пробел |обновить вывод | |M |сортировка **по используемой памяти**| |P |сортировка **по нагрузке на процессор** (используется по умолчанию)| |T |сортировка **по времени работы процесса**| |A |сортировка **по максимальному потреблению различных ресурсов**| |u |сортировка **по имени пользователя** (потребуется ввести имя пользователя)| |k |завершить процесс (потребуется указать его идентификатор, PID)| |n |изменить количество процессов в выводе (потребуется указать нужное количество)| |c |вывести полный путь запущенного процесса (столбец COMMAND)| |h |вывод справки| |q |выход из программы|