Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Решение административных задач в Linux

Htop: интерактивный инстумент мониторинга системы

Оригинал: Htop, a tip-top ncurses interactive tool for system monitoring your desktop
Автор: Гэри Ричмонд (Gary Richmond)
Дата: 26 марта 2009 г.
Перевод: Сергей Супрунов
Дата перевода: 12 апреля 2009 г.

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

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

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

Теперь понимаете, что я имел в виду? Этот скриншот - одномоментный снимок экрана, любезно предоставленный утилитой Ksnapshot, но сам по себе Top, если верить man-странице, позволяет динамически просматривать состояние работающей системы в режиме реального времени. Если бы я, вместо снимка, запустил утилиту видеозаписи рабочего стола, вы увидели бы, что вывод постоянно обновляется. Страница справки также сообщает, что отображение можно настраивать, и эти настройки можно сохранять между запусками. Кстати, top интерактивна, хотя сразу и не скажешь. Когда top запущена, вам нужно нажать клавишу H, чтобы увидеть все доступные опции, а затем нажать любую другую клавишу, чтобы вернуться к основному выводу. С настройками по умолчанию, 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 лет проработавший в муниципальных органах, и сейчас почти вышедший в отставку, с намерением наслаждаться своими нетрудовыми доходами.