Команда top linux сортировка

Консольная команда TOP в системах Linux

Top (table of processes) — команда предназначена для вывода списка работающих процессов в системе и информацию о них.

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

Некоторые полезные сочетания клавиш и функций

Для вызова справки по всем сочетаниям клавиш – нажать «h» на клавиатуре.

Сортировка по объёму памяти:

Сортировка по времени

Cортировка в одну или в другую сторону (использовать, чтобы больший параметр был вверху)

Другие клавиши, по которым можно сортировать каждую из колонок:

Сортировка по CPU:

Чтобы убить процесс нужно нажать k и ввести номер PID.

Расшифровка значений индикаторов команды top

Нагрузка на процессор (CPU) это первые два значения:

Кнопка «1» выведет нагрузку по каждому из процессоров.

S — состояние процесса:

Клавиша «С» отобразит в строке COMMAND ключи с которыми запущены процессы.

Клавиша «Q» — выйти из команды Top.

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

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

Источник

Практические рекомендации: устраняйте неполадки, используя команду ‘Top’ в Linux

Вывод команды «top»

Если в коммандной строке линукс системы вы наберете команду top, то получите табличку со следующим заголовком:

Давайте разберем значение каждой из строк.

top – 17:15:19 up 32 days, 18:24, 6 users
Здесь показана команда и текущее системное время; «время бесперебойной работы», в нашем случае это 32 дня, 18 часов и 24 минуты; наконец, указывается количество зарегистрированных в системе пользователей; в данном примере, в системе зарегистрированы 6 пользователей. Они могут быть подключены по SSH, локально, быть неактивными и т.д.

load average: 0,00, 0,01, 0,05
В этой части показывается средняя нагрузка; она может сбивать с толку, особенно на виртуальной машине/в облаке.
Первая цифра показывает среднюю нагрузку «последней минуты», или «текущую» среднюю нагрузку; вторая цифра показывает «среднюю нагрузку за 5 минут», последняя цифра – «среднюю нагрузку за 15 минут».
Средняя нагрузка – мера среднего числа процессов, ожидающих своей очереди, чтобы совершить какое-либо действие в процессоре. Как и в супермаркете, приходится стоять в очереди, дожидаясь, пока кассир уделит вам все свое внимание. Причина, по которой средняя нагрузка растет, заключается в остальной статистике и счетчиках, находящихся ниже этой линии, поэтому, если ориентироваться строго на значения средней нагрузки, можно не увидеть всей картинки полностью.

Вот пример, взятый из узла distcc:

Данный сервер, кроме того, что является средой промежуточной обработки для скриптов и хостингом инструментов командной строки облака, предоставляет также распределенную службу C компилятора различным машинам, находящимся в нашей сети, поскольку она имеет 8 процессоров, 32 ГБ оперативной памяти и тонну псевдодискового пространства. При нормальной нагрузке, среднее ее значение остается относительно низким; при выполнении java-скриптов нагрузка может вырастать в два и более раза. Однако при выполнении службы компилятора при полной нагрузке (10 выполняемых процессов при загрузке процессора, равной 95% или выше), среднее значение нагрузки составляет 0,75… Как же так получается? Попытаемся разобраться

Строка Tasks

1.
sleeping Количество ждущих процессов показывает, какие процессы выполняются, но не являются активными; обычно это фоновые задачи, системное ПО, драйвера принтера и т.д.
stopped Количество остановленных процессов должно, как правило, равняться 0, если вы не послали процессу сигнал a SIGSTOP или kill -STOP для устранения неисправностей. Если это число отличается от 0, то, в случае с рабочими серверами это может служить поводом для беспокойства.
zombie Зависшие процессы. Это означает, что многопоточное приложение запустило дочерний процесс, а затем было уничтожено или неожиданно завершено, оставив после себя повисший процесс, известный, как zombie-процесс. Apache может наплодить целую кучу таких процессов в случае, если происходит что-то из ряда вон выходящее. Обычно, их число тоже должно равняться 0.

Читайте также:  Windows image acquisition wia отсутствует
Строка Cpu

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

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.9%id,
Первые четыре величины, приведенные здесь, присутствуют на всех серверах с linux, и они привычны для большинства людей.
%us показывает использование отдельного процессора (пользовательскими процессами, такими, как apache, mysql и т.д.) до максимального значения, составляющего 100%. Таким образом, если в четырехъядерном процессоре 1 процесс использует 100% CPU, это даст значение %us, равное 25%. Значение 12,5% для 8-ядерного процессора означает, что занято одно ядро.
%sy означает использование CPU системой. Обычно это значение невысоко, высокие его значения могут свидетельствовать о проблеме с конфигами ядра, проблему со стороны драйвера, или целый ряд других вещей.
%ni означает процент CPU, используемого пользовательскими процессами, на которые повлияло использование команд nice или renice, т.е. по существу их приоритет был изменен по сравнению с приоритетом по умолчанию, назначаемому планировщиком, на более высокий или низкий. При назначении какому-либо процессу команды nice, положительное число означает более низкий приоритет (1 = 1 шаг ниже нормального), а отрицательное число означает более высокий приоритет. 0 – значение по умолчанию, что означает, что решение о приоритете принимает планировщик. Можно установить, какой планировщик используется вашей системой, но это более сложная тема для следующих статей. Кроме того, любая величина в процентах, приведенная в этот статье не накладывается на величину %us, которая показывает только пользовательские процессы с невыставленным приоритетом.
%id – результат, получающийся при вычитании трех предыдущих значений из 100,0%, и измеряющий «простаивающую» вычислительную мощность.

0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Второй набор значений связан с виртуализацией, и именно по ним мы можем точно отследить те проблемы, которые, возможно, вносят вклад в высокое значение средней нагрузки.

%wa – iowait, процент времени (циклов, секунд), в течение которого процессор простаивал, ожидая завершения операции ввода-вывода. Когда какой-либо процесс или программа запрашивает данные, он сначала проверяет кэш процессора (в нем имеется 2 или 3 кэша), затем проверяет память и, наконец, доходит до диска. Дойдя до диска, процессу или программе обычно приходится ждать, пока поток ввода-вывода передаст информацию в оперативную память, прежде чем иметь возможность снова на нем работать. Чем медленнее диск, тем выше будет значение IO Wait % для каждого процесса. Это происходит также с процессами записи на диск, если системный буфер заполнен и его необходимо прочистить при помощи ядра – обычно это наблюдается на серверах баз данных с высокой нагрузкой. Если значение IO Wait стабильно превышает <100 >%, это означает, что, возможно, имеется проблема хранения, с которой необходимо разобраться. Если вы наблюдаете высокую среднюю нагрузку, прежде всего, проверьте этот параметр. Если он высок, тогда узкое место в процессах, скапливающихся на диске, а не в чем-либо еще.
%hi означает прерывания на уровне железа; на плате электроны движутся по микросхемам предсказуемым образом. Например, когда сетевая карта получает пакет, перед передачей информации, содержащейся в пакете в процессор через ядро, она запросит прерывание в канале прерывания материнской платы. Процессор сообщает ядру, что у сетевой карты для него есть информация, а ядро имеет возможность решить, как поступить. Высокое значение времени, тратящегося на обработку прерываний на уровне железа встречается на виртуальной машине довольно редко, но по мере того, как гипервизоры предоставляют в распоряжение виртуальных машин все больше «железа», эта ситуация может измениться. Чрезвычайно высокая пропускная способность сети, использование USB, вычисления на графических процессорах, — все это может привести к росту этого параметра на величину, превышающую несколько процентов.
%si – прерывание на уровне софта; в ядре linux версии 2.4 реализована возможность запроса прерывания программным обеспечением (приложениями), а не элементом аппаратного обеспечения или устройством (драйвером), запрашивающим прерывание в канале прерывания материнской платы; запрос обслуживается ядром посредством его обработчика прерываний. Это означает, что приложение может запросить приоритетный статус, ядро может подтвердить получение команда, а программное обеспечение будет терпеливо ждать, пока прерывание не будет обслужено. Если мы применим утилиту tcpdump к гигабитному каналу с высоким трафиком, то значение может измениться примерно на 10%, — по мере заполнения выделенной памяти tcpdump, утилита посылает зарос на прерывание, чтобы переместить данные со стека на диск, экран, или куда угодно еще.
%st — самый важный параметр из всех в списке, по моему мнению, это IOSteal%. В виртуализированной среде множество логических серверов могут работать под одним фактическим гипервизором. Каждой виртуальной машине(VM) мы присваиваем 4-8 «виртуальных» CPU; хотя сами гипервизоры могут не иметь (кол-во VM * кол-во виртуальных CPU на одну VM). Причина этого заключается в том, что мы не перегружаем CPU использованием наших виртуальных машин, так что если мы дадим одной-двум VM возможность изредка использовать 8 процессоров, это не будет негативно влиять на весь пул в целом. Однако если виртуальными процессорами VM используется количество CPU, превышающее количество физических (или логических, в случае с гиперпотоковыми процессорами Xeon), тогда значение iosteal будет расти.

Читайте также:  Программная лицензия 1с сервер linux

iosteal% — мера загруженности гипервизора; наличие в каком-либо пуле виртуальных машин, демонстрирующих стабильно высокое значение параметра iosteal% (более 15%) может свидетельствовать о необходимости переноса некоторых из VM в другую часть пула.

iowait% является показателем производительности диска. В системе хранения данных, поддерживаемой NetApp, у нас может не получиться решить проблему производительности без перемещения тома на менее используемый, или другой диск NetApp. В случае с локальным диском (SSD или SAS) это может означать, что в гипервизоре имеется слишком много VM, интенсивно использующих ресурсы диска, и может потребоваться перенести некоторые из этих VM в другую часть пула.

Подведем итоги:

• Средняя нагрузка, на самом деле, ни о чем не говорит.
• Параметр %userland (%us) важен для средней нагрузки, поскольку он говорит о том, что производятся вычисления. Например, mysql, займет всего один поток, поэтому при полной нагрузке будет использовать (1/кол-во виртуальных CPU, присвоенных VM). postgresql является многопоточным, и может использовать больше процессоров, если они будут выделены, – помните об этом, создавая виртуальные машины в гипервизоре, чтобы предотвратить:
%st – iosteal% — показатель загруженности гипервизора. Создание стека из 4-х postgresql и 6 серверов tomcat под одним гипервизором может быть разумным с точки зрения бизнеса, но вам придется все время конкурировать за процессорное время.
%wa – iowait% — показатель количества времени, которое уходит на отсылку ваших процессов на невероятно медленные диски, неважно какое решение для хранения данных вы используете. Диски, даже SSD, сравнительно медленные. Добавление ОЗУ для увеличения буфера ядра может немного смягчить проблему. ОЗУ дешевле диска, если учесть, насколько молниеносно она работает по сравнению с ним.

Дополнительные команды

iostat
Если вы столкнулись с высокими значениями параметров iowait или iosteal, можно с точностью отследить, какой диск является этому причиной, при помощи команды iostat. Запускается она таким образом:

Более подробно, см. руководство по iostat. Разбивка, выводимая каждую секунду, с каких и на какие диски идет чтение/ запись, а также все значения iosteal или iowait, связанные с доступом к этим дискам.

htop
Команда по использованию CPU и процессов на системе Linux. Он не показывает виртуальную статистику, но отображает дерево процессов, а также разбивку каждого процессора в системе, его использование; кроме того, он показывает статистику свопинга и памяти, позволяющую отследить неприятные утечки памяти, раскрашивая все это симпатичными цветами. По моему мнению, этот пакет должен быть обязательным для всех VM.

Источник

Использование команды top в ОС Linux

Введение

Команда top используется в операционной системе Linux для отображения всех активных процессов внутри неё. Данная статья рассказывает о работе с командой top, предоставляя обзор её параметров и отображаемой информации.

Работа с командой top

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

Читайте также:  Установил windows mac не загружается

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

В первой строке отображается:

  • Время
  • Время работы компьютера
  • Число пользователей
  • Средняя нагрузка (за последний час, полчаса и 15 минут)

Во второй строке отображается:

  • Общее число задач
  • Количество активных задач
  • Количество отложенных задач
  • Количество приостановленных задач
  • Количество задач-зомби

В третьей строке в процентах отображается:

  • Загрузка ЦП задачами пользователя
  • Загрузка ЦП системой
  • Загрузка ЦП процессами с низким приоритетом
  • Время бездействия ЦП
  • Загрузка ЦП операциями ввода/вывода
  • Загрузка ЦП обработкой аппаратных прерываний
  • Загрузка ЦП обработкой программных прерываний
  • Время, “украденное” гипервизором

В третьей строке отображается:

  • Общий объём доступной системе памяти
  • Объём свободной памяти
  • Объём используемой памяти
  • Объём буферного кэша

В четвёртой строке показан:

  • Общий объём SWAP (раздела подкачки)
  • Объём свободной памяти в SWAP
  • Объём использованной памяти в SWAP
  • Объём доступной памяти.

В основной таблице отображается:

  • ID процесса
  • Уровень пользовательского приоритета
  • Уровень “вежливости”
  • Объём виртуальной памяти, используемой процессом
  • Объем физической памяти, используемый процессом
  • Объём совместно используемой памяти
  • Коэффициент загрузки ЦП процессом, %
  • Коэффициент загрузки памяти процессом, %
  • Время работы процесса
  • Команда

Использование top в фоновом режиме

Получить доступ к команде top и при этом не вводить её каждый раз в терминал весьма просто.

Для того, чтобы приостановить top и продолжить пользоваться терминалом, достаточно нажать Ctrl+Z.

Вернуть top на первый план можно командой fg.

Параметры команды top

-h – отображает текущую версию

-c – переключает столбец command между отображением команды и имени программы

-d – устанавливает задержку между обновлениями экрана

-o – выполняет сортировку по имени

-p – показывает только процессы с заданными ID

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

Отображение текущей версии

Для того, чтобы получить информацию о версии top, введите следующее:

Вывод при этом имеет следующий вид:

Определение задержки между обновлениями экрана

Для того чтобы задать задержку между обновления экрана во время использования top, наберите следующее:

Например, чтобы обновлять содержимое каждые 5 секунд, введите top -d 5

Получение списка столбцов, поддерживающих сортировку

Для того чтобы получить список столбцов, по которым можно выполнить сортировку, введите следующее:

Команда top выводит множество столбцов, и вы, вероятно, захотите перенаправить вывод и отобразить его при помощи less. Для этого введите:

Сортировка вывода команды top по имени столбца

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

Например, сортировку по столбцу %CPU можно выполнить при помощи этой команды:

Отображение процессов определённого пользователя

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

Например, для того, чтобы отобразить все процессы пользователя gary, введите следующее:

Отображение дополнительных столбцов в таблице top

Во время работы top нажмите клавишу “F” чтобы увидеть список полей, которые можно отобразить в таблице.

Навигация по списку полей осуществляется с помощью клавиш-стрелок.

Чтобы отобразить определённое поле, нажмите клавишу “D”. Чтобы скрыть поле, нажмите “D” ещё раз. Рядом с отображаемыми полями появляется символ звёздочка (*).

Вы можете активировать сортировку таблицы по определенному параметру, просто выделив его и нажав клавишу “S”.

Для того, чтобы изменения вступили в силу, нажмите клавишу “Enter”. Выйти из меню можно при помощи клавиши “Q”.

Переключение режимов

Во время работы top вы можете нажать клавишу “A”, чтобы переходить между стандартным и альтернативным представлением.

Смена цветов

Для того, чтобы изменить цвет значений, отображаемых в top, нажмите клавишу “Z”.

Смена цвета осуществляется в три стадии:

  1. Нажмите “S” для того, чтобы изменить цвет общих данных, “M” – сообщений, “H” – заголовков столбцов, “T” – информации о задачах.
  2. Выберите желаемый цвет для выбранного участка. 0 – черный, 1 – красный, 2 – зеленый, 3 – желтый, 4 – синий, 5 – пурпурный, 6 – голубой, 7 – белый.
  3. Подтвердите свой выбор нажатием клавиши “Enter”. С помощью клавиши “B” можно применить полужирное начертание текста.

Резюме

Команда top имеет множество параметров, для более подробной справки введите в терминале следующую команду:

Источник

Оцените статью