Htop linux как пользоваться
Каждый запущенный на сервере процесс оказывает нагрузку, и если ресурсов сервера становится недостаточно, могут возникать проблемы: медленная работа сайта, задержки в выполнении скриптов и так далее.
Проанализировать, что именно нагружает сервер, можно с помощью специальных утилит. Их довольно много; в статье мы рассмотрим три из них:
В целом они довольно похожи; работа с 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 является функция ведения логов. Благодаря этому можно не только контролировать нагрузку в текущий момент, но и отслеживать работу процессов за прошедшие дни, чтобы диагностировать плавающие ошибки, которые сложно "поймать" при мониторинге в реальном времени.
Цветовые обозначения строки состояния CPU и MEM разделяются по приоритетам процессов и типам используемой памяти.
Настройка отображения
htop поддерживает отображение расширенной информации, как это делает top в виде по умолчанию:
и с помощью пробела добавляем Detailed CPU time :
С помощью F7/F8 перемещаеем на желаемую позицию.
Выходим по F10 и смотрим:
Там же можно переключить цетовую схему:
Значения цветов в htop
Для 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. Похоже, что разрабатывали его для хозяев Вселенной, но то, что вы всего лишь одинокий пользователь в заваленной коробками из-под пиццы аудитории, пялящийся в монитор единственного компьютера, ещё не означает, что вы не можете работать с ним. В этой статье я расскажу, как настраивать и использовать 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 .
А запускается командой sudo htop .
Управление утилитой осуществляется с помощью функциональных кнопок верхнего ряда F1-F10 и клавиш-стрелок.
• F1 (Help) – открывает справку.
• F2 (Setup) – вызывает настройки интерфейса (выбор цвета окна, изменения порядка столбцов) .
• F3 (Search) – открывает поисковую строку.
• F4 (Filter) – выполняет сортировку процессов от меньшего к большему и наоборот.
• F5 (Sorted) – отображает процессы в виде древовидной структуры.
• F6 (Collap) – позволяет сортировать процессы по PID , имени, размеру и так далее.
• F7 (Nice+) – повышает приоритет выбранного процесса.
• F8 (Nice -) – понижает приоритет выбранного процесса.
• F9 (Kill) – принудительно завершает выбранный процесс.
• F10 (Quit) – завершает работу утилиты.
Выше списка процессов располагается меню со столбцами, переключаться между которыми можно нажимая на нужный столбец мышкой.
Столбцы PID и USER отображают идентификатор и имя владельца процесса.
PRI и NI — текущий приоритет и величину его изменения.
VIRT — общий объем используемой процессом памяти, DATA и SWAP — объем памяти, используемый процессом в ходе выполнения и объем памяти, перемещенный в файл подкачки. Столбец TIME+ показывает общее время работы процесса, а Command — команду, которой он был запущен.
Примеры использования Htop
Проблем с использованием утилиты возникнуть не должно даже у недавно приступивших к изучению Linux новичков. Допустим, вы хотите сделать выполнение некоего процесса более приоритетным. Выберите его мышкой или клавишами-стрелками и нажмите кнопку F7 . Каждое нажатие будет увеличивать приоритет на единицу (максимум +19) . Аналогичным образом можно понизить приоритет процесса, нажимая F8 (минимум -20) .
Если какой-то процесс не отвечает или работает неправильно, завершите его принудительно. Для этого так же выделяем строку с процессом, жмем F9 и подтверждаем действие нажатием Enter . Пользоваться этой опций, однако, следует с осторожностью.
Не завершайте процессы, назначение которых вам точно не известно, так как это может привести к системному сбою и аварийному завершению работы Linux.А на этом пока всё.
Как видите, работать с Htop не так уже и сложно, правда, есть у программки свои маленькие секреты, но для начала будет достаточно и того, что вы узнали из этой статьи.
Читайте также: