Основные команды Linux: как работает atop

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

В первую очередь нужно установить команду atop в системе. Пользователи Debian/Ubuntu могут сделать это с помощью следующей команды:

sudo apt install atop

Другие пользователи Linux могут установить ее с помощью стандартного менеджера пакетов, после чего ввести ключевое слово “atop”.

Эта команда способна отображать конфиденциальную информацию о системе. Чтобы избежать любой утечки данных, мы можем получить повышенный доступ с помощью “sudo su” или “sudo -s”. 

Читайте также: Основные команды Linux: как работает dpkg

Базовый вывод команды atop

Для отображения использования ресурсов системы на уровне процессов можно просто запустить команду ‘atop’ в терминале:

atop

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

Накопленная статистика команды atop

Каждая запись в верхней панели показывает статистику по определенному системному ресурсу.

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

PRC означает “процесс”.

  • Первые два значения — это время, затраченное процессами ‘sys’ (системный) и ‘user’.
  • За ним следует общее количество процессов — ‘#proc’.
  • Следующее значение — это количество потоков, работающих в системе в данный момент (‘#trun’).
  • ‘#tslpi’ обозначает количество потоков, которые в данный момент находятся в спящем режиме и могут быть прерваны.
  • ‘#tslpu’ обозначает количество потоков, которые в данный момент находятся в спящем режиме и не могут быть прерваны.
  • Следующее значение — количество зомби-процессов.
  • Далее следует количество вызовов системы клонирования.
  • Последнее значение — это количество процессов, завершившихся за прошедшее время (‘#exit).

Статистика производительности

  • CPU, само собой, относится к нагрузке CPU.
    • Первые два значения показывают процентное использование всех ядер системой и пользовательскими процессами.
    • Процент использования CPU для запросов прерывания (‘irq’).
    • Следующее значение — процент простоя для всех ядер вместе взятых.
    • Следующее значение показывает время ожидания, которое приходилось тратить каждому ядру CPU.
    • Далее идет процентное значение времени простоя.
    • ‘guest’ означает guest-percentage (гостевое время), то есть процессорное время, затраченное на другие виртуальные машины.
    • Последние два значения указывают на текущую частоту процессора.
  • Затем ‘atop’ отображает приведенную выше статистику для каждого ядра независимо друг от друга.
  • CPL обозначает загрузку процессора.
    • Первые три значения — средняя нагрузка за разные периоды: 1, 5 и 15 минут.
    • За ним следует количество переключений контекста (‘csw’).
    • Далее — количество прерываний (‘intr’).
    • Последнее значение — количество доступных процессоров.

Статистика памяти

  • MEM — использование памяти
    • Общий объем физической памяти системы.
    • Объем свободной памяти в данный момент.
    • Текущий объем кэш-памяти.
    • ‘buff’ в значении ‘buffer’ — объем памяти, потребляемый метаданными файловой системы.
    • Сумма памяти для выделения памяти ядра показана как ‘slab’.
    • Объем используемой общей памяти.
  • SWP — подкачка памяти.

Статистика дисков

  • DSK — использование диска
    • Первое значение — процент времени, в течение которого система занята обработкой запросов.
    • Выданные запросы на чтение.
    • Выданные запросы на запись.
    • Скорость чтения данных (в КB) на каждый запрос на чтение.
    • Скорость записи данных (в КB) на каждый запрос на запись.
    • Следующие два значения — временные показатели для чтения и записи на диск в мегабайтах.
    • Последнее значение — это среднее количество миллисекунд, затраченных на обработку запросов.

Сетевая статистика

  • NET — сетевая статистика на транспортном уровне
    • ‘transport’ означает транспортный уровень в сети, который работает с протоколами передачи данных.
    • Количество сегментов, полученных системой по протоколу TCP (‘tcpi’).
    • Количество переданных сегментов (‘tcpo’).
    • Аналогичная статистика для протокола UCP (‘udpi’ для входящего UDP и ‘udpo’ для исходящего UDP).
    • ‘tcpao’ — это количество активных TCP-соединений.
    • ‘tcppo’ — количество пассивных TCP-соединений, которые все еще открыты.
    • Показатель повторных передач TCP — ‘tcprs’.
    • Количество ошибок во входящих пакетах UDP — ‘udpie’.
  • NET — сетевая статистика на сетевом уровне
    • ‘network’ означает сетевой уровень, который работает с сетевыми протоколами IPv4 и IPv6.
    • Количество IP-пакетов, полученных интерфейсами сети (‘ipi’).
    • Количество IP-пакетов, переданных из интерфейсов (‘ipo’).
    • Количество IP-пакетов, перенаправленных на другие интерфейсы (‘ipfrw’).
    • Количество доставленных IP-пакетов (‘deliv’).
    • Последние два пункта — это количество ICMP-пакетов, полученных и переданных интерфейсами сети.
  • Следующие строки относятся к каждому активному сетевому интерфейсу.
    • Первое значение — это имя сетевого интерфейса, например ‘wlp19s0’.
    • Следующие два значения — это количество пакетов, которые были получены и переданы через конкретный интерфейс (‘pcki’ и ‘pcko’).
    • Скорость сети в мегабитах в секунду (Mbps) — ‘sp’.
    • Скорость приема и передачи битов в секунду (‘si’ и ‘so’).
    • Количество ошибок в полученных и переданных пакетах (‘erri’ и ‘erro’).
    • Последние два значения — это количество отброшенных пакетов в обе стороны (‘drpi’ и ‘drpo’).

На этом мы закончим обзор верхней панели команды atop.

Ресурсы системы для каждого процесса

Стоит отметить, что значения в команде ‘atop’ обновляется через определенные промежутки времени.

Общий вывод команды ‘atop’ содержит следующие детали для каждого запущенного процесса:

  • PID — идентификатор процесса.
  • SYSCPU — количество процессорного времени, затраченного при обработке системных задач.
  • USRCPU — количество процессорного времени, затраченного в режиме пользователя.
  • VGROW — объем виртуальной памяти, занятой процессом с момента последнего обновления значений.
  • RGROW — объем физической памяти, занятой процессом с момента последнего обновления значений.
  • RDDSK — размер переданных данных при чтении с диска.
  • WRDSK — размер переданных данных при записи на диск.
  • RUID — реальный идентификатор пользователя, от имени которого выполняется процесс.
  • EUID — эффективный идентификатор пользователя, под которым выполняется процесс.
  • ST — текущий статус процесса.
  • EXC — код завершения после окончания процесса.
  • THR — количество потоков внутри процесса.
  • S — текущий статус основного потока процесса.
  • CPU — процент использования CPU всеми процессами.
  • CMD — название процесса.

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

Давайте рассмотрим информацию на уровне процесса для каждого типа ресурса системы.

Вывод использования памяти в команде atop

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

atop -m

https://journaldev.nyc3.digitaloceanspaces.com/2020/06/atop_memory_output.png

Как мы видим, верхняя панель остается неизменной, даже если мы добавляем опцию памяти ‘-m’. Теперь давайте разберемся с колонками для каждой записи процесса:

  • PID — идентификатор процесса.
  • TID — идентификатор потока.
  • MINFLT — количество мелких ошибок страниц, которые исправлены путем доступа к данным из свободных страниц.
  • MAJFLT — количество крупных ошибок страниц, которые были устранены путем извлечения данных с диска.
  • VSTEXT — объем виртуальной памяти, занимаемой текстом процесса.
  • VSLIBS — объем виртуальной памяти, занимаемой общими библиотеками процесса.
  • VDATA — объем виртуальной памяти, занимаемой приватными данными процесса.
  • VSTACK — объем виртуальной памяти, занимаемой приватным стеком процесса.
  • VSIZE — общий объем виртуальной памяти процесса.
  • RSIZE — общий объем резидентной памяти, занимаемой процессом.
  • MEM — процент использования RAM процессом.

Процессы отсортированы по столбцу ‘MEM’.

Поскольку ‘atop’ — это своего рода интерактивная командная утилита, мы можем изменять отображаемые столбцы прямо в ней. Для этого нам нужно просто ввести определенную опцию во время отображения информации.

Например, после запуска “atop” в терминале мы можем переключиться на отображение информации о памяти, просто введя “m”.

Вывод информации по дискам 

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

atop -d

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

  • RDDSK — размер данных, переданных при чтении с диска.
  • WRDSK — размер данных, переданных во время записи на диск.
  • WCANCL — размер данных, которые были сначала записаны, но затем отменены.
  • DSK — процент занятости диска.
  • CMD — название процесса.

Следует отметить, что процессы отсортированы по столбцу ’DSK’.

Поиск запущенных в фоновом режиме команд

atop позволяет запрашивать список команд, работающих в фоновом режиме, в формате вывода командной строки:

atop -c

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

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

Вместо простого анализа информации о процессах команда atop позволяет проверить использование ресурсов для каждого потока. Для этого нужно запустить команду:

atop -y

или просто нажать клавишу ‘y’, когда команда уже отображает информацию о системных ресурсах.

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

Другая информация

С помощью команды ‘atop’ можно получить много разной информации. Вот некоторые полезные возможности.

Поиск времени запуска процесса

С помощью опции ‘-v’,можно получить характеристики процессов:

atop -v

Количество процессов для каждого пользователя в системе

atop -au

На каком ядре работает процесс?

Эта информация относится к характеристикам планирования процесса. Доступ к ней можно получить с помощью опции ‘-s’.

atop -s

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

Есть определенные приемы команды ‘atop’, которые могут быть полезны:

  • Приостановка экрана ‘atop’ выполняется нажатием клавиши ‘z’.
  • Изменение интервала времени обновления значений — нажмите клавишу ‘i’, а затем укажите количество секунд, на которое вы хотите изменить интервал.
  • Прерывание для мгновенного обновления значений — клавиша ‘t’.
  • Завершение работы команды ‘atop’ выполняется с помощью клавиши ‘q’.

Заключение

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

Tags: ,

Добавить комментарий