Centos 7 top команда

Обновлено: 05.07.2024

Для экономии времени, ниже представлен список часто используемых команд при работе с CentOS.

Системная информация

показать мануал для command:

показать информацию о ядре:

информация о памяти:

показать инф. о использовании дисков в GB:

вывести размер текущего каталога:

использование памяти и swap:

информация версия ОС:

информация о дистрибутиве:

показать текущий аптайм:

показать пользователей онлайн:

имя, под которым вы залогинены:

Дата и время

показать текущую дату и время:

показать время нулевого меридиана:

установить дату и время, где MM – месяц, DD – день, hh – час, mm – минуты:

вывести календарь на текущий месяц:

Процессы

вывести ваши текущие активные процессы:

найти и вывести информацию о процессе process:

показать все запущенные процессы:

список остановленных и фоновых задач:

убить процесс с id pid:

убить все процессы с именем process:

получить информацию whois для domain:

получить DNS информацию domain:

Работа с пакетами

вывести список установленных пакетов:

обновить все пакеты:

установить пакет package_name:

удалить пакет package_name:

Файлы и папки

скачать файл по адресу url:

создать символическую ссылку link к файлу file:

список файлов и каталогов:

форматированный список со скрытыми каталогами и файлами:

сменить на домашний каталог:

сменить директорию на dir:

показать текущий каталог:

удалить каталог dir:

удалить file без подтверждения:

удалить каталог dir без подтверждения:

скопировать file1 в file2:

скопировать dir1 в dir2:

скопировать dir1 в dir2 с сохранением всех прав доступа:

переименовать file1 в file2, если file2 каталог, то переместить file1 в каталог file2:

создать директорию dir:

создать древо директорий /home/user/dir:

установка прав 777 на dir:

установка прав 777 на dir и все подкаталоги рекурсивно:

задать владельца apache с группы apache для директории dir:

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

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

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

В одной из предыдущих статей я рассказывал как пользоваться утилитой ps для просмотра информации о запущенных процессах в Linux. Однако для решения подобных задач существуют и более продвинутые инструменты. Один из таких инструментов - это команда top. Она немного проще чем та же утилита htop, но в отличие от ps позволяет выводить информацию о системе, а также список процессов динамически обновляя информацию о потребляемых ими ресурсах.

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

Команда top в Linux

1. Опции и команды top

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

  • -v - вывести версию программы;
  • -b - режим только для вывода данных, программа не воспринимает интерактивных команд и выполняется пока не будет завершена вручную;
  • -c - отображать полный путь к исполняемым файлам команд;
  • -d - интервал обновления информации;
  • -H - включает вывод потоков процессов;
  • -i - не отображать процессы, которые не используют ресурсы процессора;
  • -n - количество циклов обновления данных, после которых надо закрыть программу;
  • -o - поле, по которому надо выполнять сортировку;
  • -O - вывести все доступные поля для сортировки;
  • -p - отслеживать только указанные по PID процессы, можно указать несколько PID;
  • -u - выводить только процессы, запущенные от имени указанного пользователя.

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

  • h - вывод справки по утилите;
  • q или Esc - выход из top;
  • A - выбор цветовой схемы;
  • d или s - изменить интервал обновления информации;
  • H - выводить потоки процессов;
  • k - послать сигнал завершения процессу;
  • W - записать текущие настройки программы в конфигурационный файл;
  • Y - посмотреть дополнительные сведения о процессе, открытые файлы, порты, логи и т д;
  • Z - изменить цветовую схему;
  • l - скрыть или вывести информацию о средней нагрузке на систему;
  • m - выключить или переключить режим отображения информации о памяти;
  • x - выделять жирным колонку, по которой выполняется сортировка;
  • y - выделять жирным процессы, которые выполняются в данный момент;
  • z - переключение между цветным и одноцветным режимами;
  • c - переключение режима вывода команды, доступен полный путь и только команда;
  • F - настройка полей с информацией о процессах;
  • o - фильтрация процессов по произвольному условию;
  • u - фильтрация процессов по имени пользователя;
  • V - отображение процессов в виде дерева;
  • i - переключение режима отображения процессов, которые сейчас не используют ресурсы процессора;
  • n - максимальное количество процессов, для отображения в программе;
  • L - поиск по слову;
  • <> - перемещение поля сортировки вправо и влево;

Это далеко не все команды top, но их будет вполне достаточно для начала работы, а остальные вы сможете найти в официальной документации по утилите.

2. Запуск программы

Утилита не всегда установлена по умолчанию, для её установки в Ubuntu используйте команду:

sudo apt install top

Затем для запуска просто выполните в терминале:

Окно можно условно разделить на две части. В верхней части находится информация о системе, общем использовании ресурсов процессора и памяти, раздела подкачки, и так далее. В нижней части окна расположен список запущенных процессов с информацией, отсортированных по определённому полю.


Если все процессы не помещаются на одном экране, их можно листать с помощью стрелок вверх и вниз. Если не помещаются все колонки - с помощью стрелок вправо и влево:


Если вы хотите отображать только те процессы, которые используют ресурсы процессора используйте команду i:


3. Сортировка процессов

Чтобы выделить поле, по которому сейчас выполняется сортировка нажмите клавишу y. После этого вся колонка будет выделена жирным:


Для выбора соседнего поля сортировки справа или слева от текущего используйте клавиши > или < соответственно. Например, для сортировки по памяти top достаточно переместить поле сортировки на столбец %MEM.

4. Настройка полей

По умолчанию выводятся далеко не все поля, а только те, что чаще всего используются. Но вы можете включить вывод других полей, отключить не нужные, а также изменить порядок их расположения. Для этого введите команду F:

Откроется новое окно в псевдоинтерфейсе программы, в котором будут выведены все поля. Я не буду описывать поля в этой статье, поскольку я это сделал в статье про команду ps:


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

Для того чтобы переместить поле, нажмите на нём Enter, а затем стрелку вправо. После этого поле будет захвачено и вы сможете двигать его вверх или вниз. Затем надо отпустить поле на нужном месте с помощью клавиши Enter.

После завершения настройки можно вернуться обратно в интерфейс программы с помощью клавиши q.

5. Виртуальные окна

Программа имеет четыре окна для вывода данных. Так они называются в документации, но мне больше нравится название формат отображения. Это def, job, mem и usr. Каждое окно выделяется другим цветом в цветном режиме, а также содержит разный набор колонок. Для просмотра всех окон используйте команду A, а для переключения между ними - a:


Текущее окно отображается в левом верхнем углу.


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


7. Цветной вывод

По умолчанию команда top выводит всё в чёрно-белом цвете, однако вы можете включить цветной вывод. Для этого нажмите клавишу z:


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


Здесь каждому элементу цветовой схемы отведена своя буква в верхнем регистре, а цвету - в нижнем. Сначала надо выбрать элемент, затем цвет для него. Когда завершите нажмите w для сохранения и редактирования цветовой схемы следующего окна или Enter для сохранения и выхода.

8. Сохранение настроек

Все эти настройки не имели бы смысла, если бы их нельзя было сохранить для восстановления при следующем запуске. Для сохранения текущих настроек программы используйте команду W.

Она записывает все внесённые настройки в файл

/.toprc и при следующем запуске они будут восстановлены.

9. Фильтрация процессов

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

После ввода команды она попросит ввести имя пользователя или его UID. Также можно фильтровать процессы по любому другому полю. Для этого нажмите клавишу o, затем введите условие фильтра в виде:

ИМЯ_ПОЛЯ = значение

Если вы выполните команду o ещё раз, то программа предложит создать ещё один фильтр. Чтобы сбросить фильтры используйте команду =.

10. Завершение процессов

Чтобы завершить процесс используйте команду k. После ввода команды утилита попросит набрать PID идентификатор процесса, который надо завершить:

Можно оставить по умолчанию, тогда будет отправлен SIGTERM или же ввести любой другой код, например 9 для SIGKILL.

11. Инспектирование процессов

Ещё одна интересная возможность команды top - это инспектирование процессов. Для того чтобы эта функция заработала надо сначала открыть файл

/.toprc и добавить в конец такие строки:

pipe Open Files lsof -P -p %d 2>&1
file NUMA Info /proc/%d/numa_maps
pipe Log tail -n200 /var/log/syslog | sort -Mr

После этого перезапустите top и нажмите сочетание клавиш Shift+y.

Утилита попросит ввести PID процесса, который надо инспектировать. После этого откроется новое псевдоокно в котором можно выбрать три вкладки:

Для выбора вкладки нажмите Enter. Затем можете просматривать нужные данные, чтобы вернуться обратно ещё раз нажмите Enter.

Выводы

Из этой статьи вы узнали что из себя представляет команда top Linux. Как видите, утилита довольно мощная, хотя при первом запуске сложно подумать что она столько всего может и будет выглядеть настолько красиво если её настроить. Но я всё же привык к старой доброй ps. А какой утилитой пользуетесь вы для просмотра запущенных процессов? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

В Linux существуют процессы и сигналы с помощью которых процессы могут взаимодействовать между собой.

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

Например, если вы открыли три окна калькулятора (например, gcalctool), это значит, что вы запустили три процесса.

Для управления процессами существует такая подсистема как менеджер процессов.

В Linux реализована многозадачность с вытеснением и менеджер процессов полностью управляет процессами.

Каждый процесс имеет свой контекст.

Идентификатор процесса состоит из идентификатора PID и идентификатора родительского процесса PPID.

Первый пользовательский процесс называется init . Его PID всегда равен 1 , а PPID равен 0 , так как он не имеет родительского процесса, а порождается ядром на определенном этапе загрузки системы.

Все остальные процессы являются дочерними процессами и имеют PPID отличный от нуля.

Для того чтобы породить новый процесс, родительский вызывает функцию ядра fork() , в результате которой происходит клонирование родительского процесса и получается абсолютно одинаковый процесс на начальном этапе. Единственное отличие: у дочернего процесса увеличивается PID.

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

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

Операционная система Linux является еще и многопользовательской.

EUID = UID пользователя, если бит setuid = 0 .
EUID = UID программы, если бит setuid = 1 .

В определенный момент времени работать может только один процесс, но так как переключение между процессами происходит очень быстро (тысячи переключений в секунду), то создается впечатление, что все они работают одновременно. Сколько процессорного времени и других ресурсов выделить каждому процессу решает менеджер процессов. В принятии этого решения играет роль такой параметр процесса как nice или nice-фактор.

Многие процессы выполняют операции ввода/вывода информации в/из терминала. Поэтому есть такой параметр как Терминал.

А есть процессы которые работают в фоновом режиме. Такие процессы не привязаны к терминалу. Например, процесс cron.

Процесс может находится в нескольких состояниях:

Для просмотра процессов и их свойств предназначена команда ps.

Команда имеет очень много ключей и параметров. Все их можно посмотреть в man ps.

2. Команды и сигналы kill.

Это связано с Signals (сигналами).

Один процесс при помощи ядра может передать другому процессу специальное числовое значение сигнала. Процесс вызывает функцию передачи сигнала и передает необходимую информацию (код сигнала, PID процесса) ядру. Ядро передает сигнал процессу получателю и отслеживает как этот сигнал обрабатывается. Сигналы обозначаются цифрами или мнемоническими обозначениями.

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

События могут варьироваться от запросов пользователей до незаконных ошибок доступа к памяти. Некоторые сигналы, такие как сигнал прерывания, указывают на то, что пользователь попросил программу сделать что-то, что не входит в обычный поток управления.

Ответ:


Всего вы можете использовать до 60 сигналов, но все, что нужно знать, это SIG TERM ( 15 ) и SIG KILL ( 9 ).

Часть сигналов ( INT , TERM ) являются перехватываемыми. Это означает, что процесс при получении такого сигнала должен перейти на специальную подпрограмму, которая занимается обработкой сигнала. Если подпрограммы обработки нет (а ее написанием занимаются разработчики программы, которая выполняется в контексте процесса), то управление передается ядру, которое выполняет действия по умолчанию, описанные для каждого сигнала.

И есть третья группа сигналов, которые не блокируются и для которых не нужны обработчики. Примером такого сигнала является сигнал kill . Этот сигнал уничтожает процесс, так как для него нет обработчиков в процессах, то он будет обрабатываться ядром по умолчанию и так как он не блокируемый, то действия будут выполнятся немедленно.

Пока мы говорили о том как процессы “общаются” между собой с помощью сигналов. Но мы (пользователи) также можем посылать сигналы процессам. Например, комбинация клавиш Ctrl+C посылает процессу сигнал INT , который прерывает выполнение процесса. Если вы наберете в терминале команду sleep 100 , то команда не вернет управление терминалу пока не завершится. Прервать выполнение этой команды можно нажав комбинацию клавиш Ctrl+C .

В чем же отличия между похожими сигналами INT , TERM , KILL (а также QUIT и HUP )?

Несмотря на похожесть отличия есть:

Сигнал KILL не блокируется и не перехватывается и ведет к немедленному завершению процесса.

Сигнал INT в отличии от kill является блокируемым сигналом и перехватываемым.

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

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

где флаг -9 ссылается на сигнал SIG KILL .


Также обратите внимание, что можно завершать несколько процессов одной командой.

3. Не используйте kill -9.

Аргумент -9 (или kill ) для команды kill следует использовать только в случае крайней необходимости.

Единственный сигнал который приложение «не имеет право» перехватывать это -9 ( kill ).

Сигнал kill не может быть обработан процессом. Это означает, что после завершения процесса с помощью kill -9 , дочерние процессы останутся в памяти и станут «осиротевшими» (orphaned), файловая система окажется засорена временными файлами, сегменты совместно используемой памяти — активными, сокеты — зависшими, а функция atexit(3) вообще не будет выполнена. В результате есть риск столкнуться с неожиданными и сложными для отладки проблемами.

Вместо этого используйте дефолтный сигнал TERM , а kill — только если менее проблемные сигналы окажутся неэффективными:

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

Использование kill -KILL по умолчанию допустимо при работе с проблематичным приложением, например, старые версии Netscape частенько завершались только с помощью сигнала kill .

Однако, это редкое исключение из правила: используйте kill для этих заранее известных приложений и только для них.

3.1. Проблемы, возникающие при завершении процессов.

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

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

Во-вторых, иногда бывают ситуации, когда старый процесс завершился, в то время как новый процесс занял его ID в промежутке между сигналами TERM и KILL . Особенно этому риску подвергаются системы с повышенной «текучкой» процессов и системы, где ядро назначает PID в случайном порядке, например, OpenBSD.

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

3.2. Сигналы завершения процесса.

Сигналы завершения процесса могут обозначаться по имени или порядковому номеру: kill -1 PID и kill -HUP эквивалентны, kill -15 PID и kill -TERM эквивалентны.

kill PID ( -15 или -TERM используются по умолчанию). Если же этот вариант не помог, попробуйте убить процесс, посылая сигналы в порядке «силы», как описано в статье, учитывая, что процессу может потребоваться некоторое время для корректного завершения.

Однако, использование имени сигнала более безопасно, так как при указании аргумента -1 легко опечататься, отправив сигнал другому процессу или даже группе процессов.

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

Сигнал HUP «подвешивает» шелл, поэтому это хороший способ очистить шелл, повисший в ожидании ввода, или закрыть SSH-сессию.

4. Находим PID зависшего процесса.

Рассмотрим, как использовать команды, находить PID процесса и посылать сигнал SIGKILL .

Каждый процесс в Linux имеет свой идентификатор, называемый PID. Перед тем, как выполнить остановку процесса, нужно определить его PID. Для этого воспользуемся командами ps и grep . Команда ps предназначена для вывода списка активных процессов в системе и информации о них. Команда grep запускается одновременно с ps (в канале) и будет выполнять поиск по результатам команды ps .

Вывести на экран список текущих процессов, запущенных пользователем, можно командой:

Вывести список всех процессов можно, выполнив в командной строке:


  • USER — учетная запись пользователя, от которой запущен процесс.
  • PID — идентификатор процесса.
  • %CPU — потребление процессорного времени в процентном эквиваленте.
  • %MEM — использование памяти в процентах.
  • VSZ — Virtual Set Size. Виртуальный размер процесса (в килобайтах).
  • RSS — Resident Set Size. Размер резидентного набора (количество 1K-страниц в памяти).
  • TTY — терминал, из под которого был запущен процесс.
  • STAT — текущее состояние процесса. Могут принимать значения:
    1. R — выполнимый процесс;
    2. S — спящий;
    3. D — в состоянии подкачки на диске;
    4. T — остановлен;
    5. Z — зомби;
    6. W — не имеет резидентных страниц;
    7. < — высоко-приоритетный;
    8. N — низко-приоритетный;
    9. L — имеет страницы, заблокированные в памяти.
  • START — дата запуска процесса.
  • TIME — время запуска процесса.
  • COMMAND — команда, запустившая процесс.

Чтобы увидеть информацию о nice-факторе необходимо выполнить команду ps lax :

Ответ:


Особый интерес для нас предоставляют следующие столбцы:

4.1. Ключи и описания.

Но, как правило, список очень большой и найти процесс, который мы хотим «убить», бывает не так просто. Здесь на помощь приходит команда grep .

Чтобы было что закрывать запустим диспетчер задач top в фоновом режиме с помощью & на конце команды запуска:


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

Команда grep выполнит поиск по результатам команды ps и на экран будут выведены только те строки, которые содержат строку (слово) top .


Здесь есть одна интересная деталь, например, если у вас не запущено приложение калькулятора для графической оболочки gcalctool , то после выполнения ps axu | grep gcalctool вы получите:


То есть мы получили сам процесс grep , так как в качестве параметра команде мы указали слово gcalctool , и grep нашел сам себя в выводе команды ps .

Если процесс top запущен 2 раза подряд, то мы получим:


К примеру здесь нас интересует строка: «root 19703 0.0 0.0 159368 1776 pts/0 T 01:04 0:00 top». Число 19703 и есть идентификатор (PID) процесса top . И вторая строка, соответственно, 19750 тоже принадлежит другому процессу top .

Есть еще один более простой способ узнать PID процесса — это команда pidof , которая принимает в качестве параметра название процесса и выводит его PID.

Пример выполнения команды pidof :


5. «Убиваем» процесс командой kill.

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

Например, убьем процессы с номером 19750 и номером 19703 :

Проверим, закрылись ли они?


Как видно они не закрылись!

Вообще команда kill предназначена для посылки сигнала процессу. По умолчанию, если мы не указываем какой сигнал посылать, посылается сигнал SIGTERM (от слова termination — завершение). SIGTERM указывает процессу на то, что необходимо завершиться. Каждый сигнал имеет свой номер. SIGTERM имеет номер 15.

Список всех сигналов (и их номеров), которые может послать команда kill , можно вывести, выполнив kill -l .


Чтобы послать сигнал SIGKILL (он имеет номер 9) процессу 19703 и процессу 19750 , выполните в командой строке:


Ищем процесс по имени, извлекаем его PID и завершаем его:

Обратите внимание, что запрос может вывести несколько процессов, которые будут попадать под критерии поиска — в таком случае, они будут завершены все.

Проверим, закрылись ли они?


То есть мы получили сам процесс grep , так как в качестве параметра команде мы указали слово top , и grep нашел сам себя в выводе команды ps .

Сигнал SIGTERM может и не остановить процесс (например, при перехвате или блокировке сигнала), SIGKILL же выполняет уничтожение процесса всегда, так как его нельзя перехватить или проигнорировать.

Если процесс не завершается, убиваем его принудительно:

6. «Убиваем» процесс командой pkill.

Так как оно соответствует шаблону регулярного выражения, вы можете также ввести имя только частично, например:

Ответ:


7. Убиваем процессы командой killall.

Команда killall в Linux предназначена для «убийства» всех процессов, имеющих одно и то же имя. Это удобно, так как нам не нужно знать PID процесса.

В пакете CentOS 7 по умолчанию отсутствует команда killall , в следствии чего возникает неудобство «убийства» всех процессов, имеющих одно и то же имя.

Чтобы она появилась необходимо установить пакет выполнив следующую команду:

7.1. В этой ситуации рекомендуется выйти из системы и завершить все запущенные процессы пользователя с помощью команды killall:

7.2. Основное преимущество этой команды, то что она умеет посылать сигналы всем процессам с одинаковым именем или всем процессам одного пользователя.

Например, мы хотим закрыть все процессы с именем top .

Выполните в терминале:

7.3. Команда killall , также как и kill , по умолчанию шлет сигнал SIGTERM. Чтобы послать другой сигнал нужно воспользоваться опцией -s.

Как и в случае с kill , можно это сделать принудительно:

7.4. Если запустить команду killall c ключом -i , то перед посылкой сигнала будет запрашиваться подтверждение:

8. Убиваем процессы командой xkill.

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

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

9. Если что-то пошло не так.

Некоторые процессы не удается остановить под обычным пользователем.

Например, если процесс был запущен от имени пользователя root или от имени другого пользователя системы, то команды kill и killall нужно выполнять от имени суперпользователя, добавляя sudo :

Бывают ситуации, когда вы работаете в графическом интерфейсе (например, GNOME) и вам не удается открыть эмулятор терминала, чтобы остановить зависший процесс. Тогда можно переключиться на виртуальную консоль клавишами Ctrl+Alt+F1, залогиниться в ней и выполнять команды уже из нее, а потом перейти обратно, нажав Ctrl+Alt+F7.

10. Вызов справки.

Справку по использованию любой команды можно получить командой man :

11. Подробная информация о процессе.

Для каждого процесса создается каталог по пути /proc/<PID> , в котором создаются папки и файлы с описанием процесса.

11.1. Подробный вывод статуса:

Ответ:


11.2. Адрес в ячейках оперативной памяти, которые занял процесс:

Ответ:


11.3. Команда, которой был запущен процесс:

Ответ:


11.4. Символьная ссылка на рабочий каталог процесса:

Ответ:


11.5. Символьная ссылка на исполняемый файл, запустивший процесс:

Ответ:


Увидеть ссылки на дескрипторы открытых файлов, которые затрагивает процесс:

Ответ:


Для просмотра статистики потребления ресурсов используем утилиту top:

Favorite

Добавить в избранное

Главное меню » Операционная система CentOS » Основные инструменты для мониторинга системы в CentOS 7

Основные инструменты для мониторинга системы в CentOS 7

Н а этом уроке мы собираемся показать вам, как использовать основные инструменты мониторинга системы на Linux VPS под управлением CentOS 7 в качестве операционной системы.

Определение того, какие процессы запущены, объем свободной памяти в вашей системе, а также память для хранения SSD доступной для использования имеет решающее значение при настройке системы. Одним из основных инструментов мониторинга системы, которая доступна на всех системах Linux является ps . Команда ps покажет снимок текущих процессов, запущенных на CentOS VPS и будет отображать информацию о выборе активных процессов. Команда ps имеет много различных вариантов, которые могут быть смешаны. Во многих ситуациях, ps aux предоставит Вам всю необходимую информацию.

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

Дополнительные примеры использования и варианты посетить страницу man:

Следующий полезный инструмент для системного мониторинга top . Аналогично ps , top отображает процессы Linux, работающие на сервере в режиме реального времени, но выход является динамическим. Запустите top чтобы проверить вывод:

Для завершения утилиты, введите q . Для сортировки списка по памяти или использования процессора, введите M или P соответственно. страница man top предоставит вам дополнительную информацию об их использовании.

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

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

Посетите страницу для получения более подробной информации и использования опций:

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

Вывод должен выглядеть так, как показано ниже:

Последний инструмент, о котором мы будем писать, это du . Эта команда будет отображать использование пространства оценка файла. Например, чтобы отобразить общее использование пространства в каталоге /home, вы можете использовать следующую команду:

Чтобы узнать больше о команде du и другие варианты использования, посетите страницу man:

Основные инструменты для мониторинга системы в CentOS 7

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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