Htop linux как пользоваться

Обновлено: 04.07.2024

Каждый запущенный на сервере процесс оказывает нагрузку, и если ресурсов сервера становится недостаточно, могут возникать проблемы: медленная работа сайта, задержки в выполнении скриптов и так далее.

Проанализировать, что именно нагружает сервер, можно с помощью специальных утилит. Их довольно много; в статье мы рассмотрим три из них:

В целом они довольно похожи; работа с htop может быть немного удобнее за счет интерактивности; при этом top предустановлена во всех дистрибутивах Linux и не требует отдельной установки; atop отличается возможностью ведения логов.

При медленной работе сайта дополнительно рекомендуем воспользоваться сервисом PageSpeed Insights от Google, который анализирует скорость загрузки страниц и сообщает, каким образом можно оптимизировать работу сайта. Также можно попытаться оптимизировать работу сайта за счет переноса каталога временных файлов MySQL в tmpfs.

Как было сказано выше, утилита top предустановлена в UNIX-системах, поэтому для запуска вам достаточно подключиться к серверу по SSH и выполнить команду top.

Вывод утилиты выглядит следующим образом:


В верхней части выводится информация о системе, ниже - список процессов. Вывод обновляется каждые 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 - выход из программы

В отличие от top, утилиту htop сначала необходимо установить на сервер:

Ubuntu / Debian:

CentOS:

И после запустить:

Вывод команды выглядит следующим образом:


Аналогично выводу top, в верхней части представлена информация о системе, ниже - список процессов. Значения столбцов в htop те же, что в top (они описаны выше).

Сверху слева вы можете видеть данные о нагрузке каждого ядра процессора, объем занятой памяти, сведения о количестве процессов, значения load avearage (средней нагрузки) за последние 1, 5 и 15 минут и аптайм системы.

По умолчанию процессы отсортированы по уровню нагрузки на процессор, от большего к меньшему.

Чтобы отсортировать их по занятой памяти (или любому другому параметру), просто кликните на название нужного столбца, например MEM. Для обратной сортировки (от меньшего к большему) достаточно кликнуть на тот же столбец еще раз. Также для управления сортировкой можно использовать клавиши M (сортировка по памяти), P (по процессору), T (по времени), аналогично утилите top.

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

u - вывести процессы конкретного пользователя.

Для управления используются клавиши F1 - F10:

F1 - вывод справки

F2 - настройка вывода (добавление, удаление столбцов, отображение расширенной информации в верхнем блоке и пр.)

F3 - поиск процессов

F4 - фильтрация процессов (вывод процессов, имеющих в названии указанное слово)

F5 - вывод дерева процессов (родительские и дочерние процессы)

F6 - изменить тип сортировки

F7 / F8 - повышение / понижение приоритета

F9 - завершение процесса (в отличие от top, не требуется указание PID - просто выделите с помощью мыши или клавиатуры нужный процесс и нажмите F9. Для подтверждения завершения процесса нажмите Enter, для отмены - Esc).

F10 - выход из программы

Функции для каждой клавиши могут изменяться, в зависимости от того, в каком меню программы вы находитесь, при этом доступные действия по соответствующим клавишам будут отображаться внизу окна, что упрощает работу с утилитой.

Основным преимуществом утилиты atop является функция ведения логов. Благодаря этому можно не только контролировать нагрузку в текущий момент, но и отслеживать работу процессов за прошедшие дни, чтобы диагностировать плавающие ошибки, которые сложно "поймать" при мониторинге в реальном времени.

htop_explained_1

Цветовые обозначения строки состояния CPU и MEM разделяются по приоритетам процессов и типам используемой памяти.

Настройка отображения

htop поддерживает отображение расширенной информации, как это делает top в виде по умолчанию:

htop_explained_2

htop_explained_3

htop_explained_4

htop_explained_5

htop_explained_6

htop_explained_7

и с помощью пробела добавляем Detailed CPU time :

htop_explained_8

htop_explained_9

С помощью F7/F8 перемещаеем на желаемую позицию.

Выходим по F10 и смотрим:

htop_explained_10

Там же можно переключить цетовую схему:

htop_explained_11

Значения цветов в htop

htop_explained_12

Для CPU , к примеру, по умолчанию заданы следующие цвета:

  • синий : процессы с низким приоритетом ( nice > 0 );
  • зеленый : процессы с нормальным (приоритет пользователя) приоритетом;
  • красный : процессы с приоритетом ядра;
  • зелёный : используемая память
  • синий : буферы
  • оранжевый : системный кэш

При расширенном отображении информации о CPU применяются следующие цвета:

  • синий : процессы с низким приоритетом ( nice > 0 );
  • зеленый : процессы с нормальным (приоритет пользователя) приоритетом;
  • красный : процессы с приоритетом ядра;
  • желтый : irq (прерывания оборудования);
  • пурпурный : soft-irq (прерывания приложений);
  • серый : IOwait (ожидаение ввода-вывода).

Информация о процессоре

При отображении раширенной информации о CPU htop выводит:

Информация о процессах

  • PID : Process ID процесса;
  • USER : пользователь-владелец процесса;
  • PRI : приоритет процесса;
  • NI : значение nice процесса;
  • VIRT : занятая процессом виртуальная память;
  • RES : занятая процессом физическая память;
  • SHR : используемая процессом общая память;
  • S : статус процесса (sleeping, running и т.д.).
  • CPU% : % потребления времени CPU процессом;
  • MEM% : % доступной физической памяти, занятой процессом;
  • TIME+ : % времени CPU, использованный процессом;
  • COMMAND : команда запуска процесса.

Дополнительные возможности

htop_explained_13

htop_explained_14

htop_explained_15

htop_explained_16

htop_explained_17

htop_explained_20

htop_explained_18

Не нужно быть сверхадмином, чтобы использовать Htop. Похоже, что разрабатывали его для хозяев Вселенной, но то, что вы всего лишь одинокий пользователь в заваленной коробками из-под пиццы аудитории, пялящийся в монитор единственного компьютера, ещё не означает, что вы не можете работать с ним. В этой статье я расскажу, как настраивать и использовать Htop для мониторинга ресурсов системы, а также о том, как с помощью этого изящного инструмента управлять приложениями и процессами, запущенными в вашей системе.

Начинать с нуля вам не придётся. Во всех дистрибутивах GNU/Linux уже установлен top - утилита, которая древнее, чем борода Ричарда Столмена. Не верите? Просто запустите top в консоли. И если в результате вы ничего на экране не увидите, я завяжу со свободным ПО и вновь начну использовать Windows. Вывод утилиты top не слишком прост для восприятия (хотя, чтобы улучшить внешний вид, неплохо бы установить цвета фона и текста). Зрелище не слишком приятное. Вот о чём я говорю:


Top: полезный, но не слишком удобный

Вы можете изменить это, настроив интервал обновления (по умолчанию установлено пять секунд [в разных дистрибутивах это может различаться - прим.перев.]), для чего нажмите клавишу D и в появившемся приглашении установите больший или меньший интервал. Нажатие на пробел отменит все настройки и обновит экран. Помимо отображаемого списка процессов, вы должны были заметить набор параметров в верхней части экрана. Среди этих обобщающих значений - средняя загрузка системы, статистика по использованию процессора и памяти. Вы можете включать и отключать отображение этих значений с помощью клавиш l , m и t соответственно. Если вам интересно, что означают заголовки всех этих столбцов и как их переупорядочить, добавить или удалить любой из них, просто нажмите o :


Приложив некоторые усилия, вы сможете добиться более удобного отображения, которое будет проще для восприятия и соответствовать именно вашим потребностям. Хотя по сравнению с vmstat (сокращение от Virtual Memory Statistics, статистика виртуальной памяти) top определённо более болтлив:


Можно отметить одну замечательную функцию Vmstat - возможность снимать статистику каждые Х секунд заданное число раз, и затем завершать работу. Например, запуск vmstat 3 6 приведёт к тому, что утилита обновится 6 раз через каждые 3 секунды, после чего завершится:


Довольно аккуратно. Но то, что вы видите здесь - это статистика виртуальной памяти, и вы напрасно будете здесь искать узкие места в работе приложений. Для этого вам всё же нужен top , который, хотя и является в общем интерактивным, но не слишком интуитивен и прост для восприятия. Так что нам нужен Htop.

В то время как top в вашей системе уже есть, Htop вам придётся скачать и установить с помощью менеджера пакетов вашего дисрибутива. Он доступен для всех основных версий GNU/Linux. Всё, что вам нужно знать, - это то, что он написан на языке Си и требует библиотеку ncurses . Если вы используете менеджер пакетов Debian - aptitude (в т.ч. и для установки Htop), этот интерфейс вам будет знаком. В отличие от top , с Htop пользователь может взаимодействовать как с помощью клавиатуры, так и мыши. Также он использует различные цвета. Всё это может сделать восприятие выводимой информации более простым:


Настройка Htop

По умолчанию экран разбит на две части: системная статистика в верхней, и в нижней - потребление ресурсов отдельными процессами. С помощью раздела Setup можно настроить, какие именно данные вы хотите получать. Нажмите F2 :


Для перемещения к нужной опции меню можно использовать клавиши со стрелками, затем нажать клавиши от F1 до F9 [см. подсказки в нижней строке - прим.перев.], чтобы изменить внешний вид индикатора, добавить, удалить или переместить их в различные части экрана. Например, если вы хотите изменить вид индикатора времени, выделите его стрелками, последовательными нажатиями Enter выберите нужный вариант из доступных (Text/Текст, LED/ЖК-дисплей, Bar/Диаграмма и Graph/График) и затем F10 для выхода. Аналогично можно изменить любую категорию индикаторов.

Помимо выбора различных индикаторов и их внешнего вида, вы можете упростить просмотр информации, выбрав другую цветовую схему. Отметьте Colors в меню Setup и переместитесь к списку цветов, выберите схему и активируйте её нажатием пробела (должна появиться отметка X ). Всё это, конечно, лишь косметика по сравнению с другими возможностями, но суть интерактивной природы Htop, которая, собственно, и помогает вам наблюдать за приложениями и процессами, а также управлять ими, заключается в сортировке вывода и управлении набором отображаемых параметров.

Меню Setup подскажет вам, какие столбцы можно выбрать для отображения:


Если какой-то столбец вам не нужен, его удаление сводится к тому, чтобы выделить его и нажать F9 . Не беспокойтесь - вы сможете вернуть назад любой столбец, выбрав его в списке доступных (Available Columns) и нажав F5 . В зависимости от того, за чем вы наблюдаете, вы можете вывести все элементы, необходимые вам для решения конкретной задачи. Конечно, это поможет вам лишь в случае, если вы знаете, что означают все эти аббревиатуры, но обращение к man htop даст вам сравнительно мало информации. В этой ситуации man top предпочтительнее, и кроме того, многие из команд top будут также работать и в htop , но не все - так что экспериментируйте. Ctrl+W в top сохранит сделанные изменения, записав их в конфигурационный файл

/.toprc , так что они не потеряются между сеансами работы и перезагрузками. В Htop это, похоже, не работает, а значит, изменения, сделанные в меню Setup (клавиша F2 ) работают только в текущем сеансе и не сохраняются. При вызове Htop можно использовать, как и в Top, ключ d для изменения задержки (интервала обновления экрана). Попробуйте выполнить команду htop d 1 . Совет: не моргайте, иначе всё пропустите.

Укрощение непослушных процессов и приложений

Если по каким-нибудь причинам вам нужно изменить приоритет некоторого приложения, Htop предоставляет пользователю фукнции nice/renice более удобным способом, чем Top. В последнем вам нужно узнать идентификатор (PID) процесса/приложения, прежде чем использовать эти команды. В Htop прокрутите экран к желаемой цели и просто нажимайте F8 для понижения приоритета (т.е. увеличения значения nice, максимальное значение - 19). Это может выполнить и простой пользователь, но если вы хотите повысить приоритет (значение nice можно опустить до -20), вы должны работать с правами суперпользователя root, иначе вы не сможете установить значение nice ниже нуля.

Администраторам, да и обычным пользователям, часто нужно принудительно завершить какой-нибудь процесс или приложение, особенно если они не подчиняются "весёлому роджеру", появляющемуся как Ангел Смерти по Ctrl+Alt+Del [видимо, имеется в виду утилита xkill - прим.перев.]. Запуск Htop в окне терминала избавит вас от головной боли. В примере ниже я выделяю процесс веб-сервера Apache как кандидата на получение "серебряной пули", затем жму F9 и получаю возможность выбрать оружие:


Уничтожаете ли вы какое-нибудь приложение или задаёте приоритет с помощью nice/renice, очень полезной оказывается возможность фильтрации по пользователям. Нажмите клавишу U , и вы получите список всех пользователей системы, с помощью которого сузите перечень отображаемых процессов. Это помогает не прибить по ошибке какой-нибудь критически важный процесс, запущенный пользователем root:


Если хотите, F6 позволит вам отсортировать вывод по различным категориям, таким как Users/Пользователи, PID/Идентификаторы процесса, Priority/Приоритет. При этом ничего не фильтруется, а просто изменяется порядок списка. Вы можете совмещать эти два фильтра. Если вы сначала нажмёте U для выбора пользователя, вы сможете затем использовать F6 для сортировки процессов заданного пользователя согласно категориям, таким как приоритет, потребление памяти и процессорного времени.

Заключение

Htop приятен, хорошо смотрится, функционален, прост в восприятии, и вообще - это прекрасный способ посмотреть, что же творится в недрах вашей системы. Есть ли у него недостатки? Совсем немного. Я не смог найти серьёзных изъянов. Пожалуй, единственное, что работает лучше, чем Htop, это Htop, запущенный в Quake-подобной консоли типа YaKuake (KDE) или Guauke (Gnome). И мониторинг системы не будет от вас дальше клавиши F12 . Htop настраивается в очень широких пределах, с ним удобно взаимодействовать, но вы можете подумать, что это лишь решение для поиска какой-нибудь проблемы. Однако если вы программист, разрабатывающий и тестирующий программы, вы будете очень благодарны Htop, когда будете разбираться с тем, как ваше цифровое детище ведёт себя. Если вы предпочитаете более традиционный подход с использованием командной строки или, наоборот, занимательные графические инструменты, чтобы "грохать" зависшие процессы и приложения, постоянный автор FreeSoftwareMagazine Эндрю Мин (Andrew Min) подготовил на этом сайте отличное, занятное и информативное руководство .

Информация о правах

Все права на эту статью принадлежат автору. Если иное не оговорено в тексте статьи, применяется следующая лицензия: "Разрешается копирование и распространение этой статьи любым способом без выплаты авторского гонорара, при условии, что данное уведомление сохраняется и включены соответствующие атрибуты (автор, исходный сайт, исходный URL)".

Об авторе

Гэри Ричмонд (Gary Richmond): восторженный компьютерщик, имеющий степень бакалавра (с отличием) и магистра философии со специализацией "Англия XVII века", 25 лет проработавший в муниципальных органах, и сейчас почти вышедший в отставку, с намерением наслаждаться своими нетрудовыми доходами.

Замена встроенных средств администрирования более функциональными сторонними инструментами характерна не только для Windows, к ней прибегают пользователи практически всех операционных систем, включая Linux. Так, не только опытные, но и начинающие пользователи разных версий Linux заменяют штатный монитор процессов Top сторонним Htop. И это понятно, ведь в отличие от Top, утилита Htop показывает на порядок больше процессов, кроме того, ее можно использовать для поиска утечек памяти.

По сути, Htop представляет собой диспетчер процессов для Linux. С его помощью вы можете получать данные о текущих процессах (имя пользователя, приложения, PID, уровень загрузки ЦП, время работы процесса и т.д.) , завершать процессы, задавать их приоритет, сортировать по разным критериям, словом, выполнять все те же операции, что и в Top и даже больше. Оставаясь консольной утилитой, монитор Htop, однако, имеет более наглядный интерфейс и более удобен в использовании, по крайней мере, в нём имеется меню управления посредством функциональных клавиш, на подобии меню файлового менеджера Midnight Commander .

Установка, запуск, знакомство с интерфейсом

Устанавливается Htop точно так же, как все программы Linux – с помощью графического менеджера приложений либо через терминал.

Графический менеджер приложений

В консоли Ubuntu, к примеру, утилита устанавливается командой sudo apt-get install htop .

В консоли Ubuntu

А запускается командой sudo htop .

Запуск Htop

Управление утилитой осуществляется с помощью функциональных кнопок верхнего ряда F1-F10 и клавиш-стрелок.

• F1 (Help) – открывает справку.
• F2 (Setup) – вызывает настройки интерфейса (выбор цвета окна, изменения порядка столбцов) .
• F3 (Search) – открывает поисковую строку.
• F4 (Filter) – выполняет сортировку процессов от меньшего к большему и наоборот.
• F5 (Sorted) – отображает процессы в виде древовидной структуры.
• F6 (Collap) – позволяет сортировать процессы по PID , имени, размеру и так далее.
• F7 (Nice+) – повышает приоритет выбранного процесса.
• F8 (Nice -) – понижает приоритет выбранного процесса.
• F9 (Kill) – принудительно завершает выбранный процесс.
• F10 (Quit) – завершает работу утилиты.

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

Htop

Столбцы PID и USER отображают идентификатор и имя владельца процесса.

PID

PRI и NI — текущий приоритет и величину его изменения.

NI

VIRT — общий объем используемой процессом памяти, DATA и SWAP — объем памяти, используемый процессом в ходе выполнения и объем памяти, перемещенный в файл подкачки. Столбец TIME+ показывает общее время работы процесса, а Command — команду, которой он был запущен.

Htop - All

Примеры использования Htop

Проблем с использованием утилиты возникнуть не должно даже у недавно приступивших к изучению Linux новичков. Допустим, вы хотите сделать выполнение некоего процесса более приоритетным. Выберите его мышкой или клавишами-стрелками и нажмите кнопку F7 . Каждое нажатие будет увеличивать приоритет на единицу (максимум +19) . Аналогичным образом можно понизить приоритет процесса, нажимая F8 (минимум -20) .

Если какой-то процесс не отвечает или работает неправильно, завершите его принудительно. Для этого так же выделяем строку с процессом, жмем F9 и подтверждаем действие нажатием Enter . Пользоваться этой опций, однако, следует с осторожностью.

Не завершайте процессы, назначение которых вам точно не известно, так как это может привести к системному сбою и аварийному завершению работы Linux.

А на этом пока всё.

Как видите, работать с Htop не так уже и сложно, правда, есть у программки свои маленькие секреты, но для начала будет достаточно и того, что вы узнали из этой статьи.

Читайте также: