Мониторинг процессов и ресурсов в ОС Linux

Команда df в linux

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

df

Утилита отображает стандартный набор колонок, но понять в ее выводе что-то с первого раза сложно. Все данные выводятся в килобайтах. Теперь давайте попросим утилиту выводить данные в более читаемом формате:

df -h

Это самое популярное сочетание опций, потому что оно дает максимально понятную информацию и уже можно судить о том, что происходит на диске. Например, мы видим, что в корневой директории уже занято 83% места и, возможно, пора что-то удалить. Если задать опцию -a, вы можете получить информацию обо всех файловых системах известных ядру, которые были смонтированы:

df -a

Здесь отображается огромное количество виртуальных файловых систем ядра. Если вы хотите вывести только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs:

df -x tmpfs

Также можно отфильтровать две файловые системы:

df -x devtmpfs -x tmpfs

Или же указать файловую систему, которую нужно отображать:

df -t ext4

Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды:

df -h /dev/sda2

С помощью опции -i вы можете посмотреть информацию про состояние inode в вашей файловой системе:

df -hi /dev/sda2

inode (произносится а́йнод или инод), индексный дескриптор — это структура данных в традиционных для ОС UNIX файловых системах (ФС), таких как UFS, ext4. В этой структуре хранится метаинформация о стандартных файлах, каталогах или других объектах файловой системы, кроме непосредственно данных и имени.

Вывести объем доступного пространства в каталоге:

df -h /home

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

Команда du в Linux

Команда du , сокращение от «использование диска», сообщает приблизительный объем дискового пространства, используемого данными файлами или каталогами. Это практически полезно для поиска файлов и каталогов, занимающих большие объемы дискового пространства.

du [OPTIONS]... FILE...

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

При выполнении без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах.

du ~/Documents

Вы также можете передать команде du несколько файлов и каталогов в качестве аргументов:

du ~/Documents ~/Pictures ~/.zshrc

Если вы запустите du для файла или каталога, для которого у вас нет прав, вы получите что-то вроде «du: невозможно прочитать каталог». В этой ситуации вам нужно будет добавить к команде sudo .

du много опций, я выделю только наиболее часто используемые.

Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге.

du -a /tmp/

Обычно вы хотите отображать только пространство, занимаемое данным каталогом, в удобочитаемом формате. Для этого используйте параметр -h.

Например, чтобы получить общий размер /var/lib и всех его подкаталогов, вы должны выполнить следующую команду:

sudo du -h /var

Мы используем sudo потому что большинство файлов и каталогов внутри каталога /var/lib принадлежат пользователю root и не доступны для чтения обычным пользователям.

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

sudo du -sh /var

Параметр -c указывает du сообщать общую сумму. Это полезно, когда вы хотите получить объединенный размер двух или более каталогов.

sudo du -csh /var/log /var/lib

Если вы хотите отобразить использование диска подкаталогами n-уровня, используйте параметр --max-depth и укажите уровень подкаталогов. Например, чтобы получить отчет о каталогах первого уровня, вы должны использовать:

sudo du -h --max-depth=1 /var/log

По умолчанию утилита du повторно использует дисковое пространство, используемое каталогом или файлом. Чтобы узнать очевидный размер файла, используйте переключатель --apparent-size . «Видимый размер» файла — это фактический объем данных в файле.

sudo du -sh --apparent-size /var/lib

du также позволяет использовать шаблон оболочки. Например, чтобы получить размер всех каталогов, начинающихся с «rc» в каталоге /etc, вы должны запустить:

sudo du -csh /etc/rc*

Использование du с другими командами

Команду du можно комбинировать с другими командами с конвейерами. Например, чтобы напечатать 5 самых больших каталогов внутри каталога /var вы должны передать вывод du в команду sort чтобы отсортировать каталоги по их размеру, а затем передать результат в команду head которая распечатает только 5 верхних каталогов:

sudo du -h /var/ | sort -rh | head -5

Выводы

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

Команда free в Linux

Сколько свободной оперативной памяти доступно в моей системе Linux? Достаточно ли свободной памяти для установки и запуска новых приложений?

В системах Linux вы можете использовать команду free чтобы получить подробный отчет об использовании памяти системой.

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

Содержание

  • Как использовать команду free

  • Отображение использования памяти в удобочитаемом формате

  • Отображение использования памяти в других показателях

  • Отображение итоговых значений столбца

  • Непрерывно печатать результат

Синтаксис free команды следующий:

free [OPTIONS] При использовании без какой-либо опции команда free будет отображать информацию о памяти и подкачке в килобайтах. 1 килобайт (КиБ) равен 1024 байтам.

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

В более старых версиях Linux вывод может немного отличаться.

Вот что означает каждый столбец:

  • total — это число представляет общий объем памяти, который может быть использован приложениями.

  • used — Используемая память. Он рассчитывается как: used = total - free - buffers - cache

  • free— Свободная / неиспользуемая память.

  • shared— этот столбец можно игнорировать, поскольку он не имеет значения. Это здесь только для обратной совместимости.

  • buff / cache — объединенная память, используемая буферами ядра, а также страничным кешем и блоками. Эта память может быть освобождена в любое время, если это необходимо приложениям.

  • available— оценка объема памяти, доступного для запуска новых приложений без подкачки.

Если вы хотите, чтобы буферы и кеш отображались в двух отдельных столбцах, используйте параметр -w .

По умолчанию команда free показывает информацию о памяти в килобайтах. Чтобы просмотреть информацию в удобочитаемом формате (обычно в мебибайт и гибибайтах), используйте параметр -h :

free -h

Отображение использования памяти в других показателях.

Команда free также позволяет вам указать единицы измерения памяти. Допустимые варианты:

  • b , --bytes — отображать вывод в байтах.

  • -kilo — отображать вывод в килобайтах (1 КБ = 1000 байт).

  • -mega — отображать вывод в мегабайтах.

  • -giga — Показать вывод в гигабайтах.

  • -tera — Показать вывод в терабайтах.

  • k , --kibi — Показать вывод в килобайтах. (1 КБ = 1024 байта). Это единица измерения по умолчанию.

  • m , --mebi — Показать вывод в мегабайтах.

  • g , --gibi — Показать вывод в гигабайтах.

  • -tebi — отображать вывод в теробайтах.

  • -peti — Показать вывод в перобайтах.

  • -si — вместо 1024 используйте --mebi --si 1000. Например, --mebi --si равно --mega .

Например, чтобы отобразить результат в мегабайтах, введите:

free --mega

Отображение итоговых значений столбца

Чтобы отобразить строку, показывающую итоги столбца, используйте параметр -t . Это дает вам сумму памяти и свопа в столбцах total, used и free.

free -h -t

Непрерывно печатать результат

Чтобы постоянно отображать информацию о памяти на экране, вызовите free с параметром -s ( --seconds ), за которым следует число, определяющее задержку.

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

free -s 5

free команда будет продолжать отображать результат, пока вы не нажмете CTRL+C Это похоже на поведение команды watch .

Чтобы отображать результат определенное количество раз, используйте параметр -c ( --count ). В примере ниже команда выведет результат десять раз:

free -s 5 -c 3

Команда free в Linux с примерами

Автоматизируйте команду free и запускайте ее непрерывно или периодически Еще одна отличная особенность – возможность автоматизировать команду. Есть два варианта, которые помогают нам настроить этот инструмент:

Есть параметр ‘-s’, которая запускает команду free в течение заданного интервала секунд, пока пользователь не закроет программу (^ + C). Существует также «-c», который можно использовать отдельно или в сочетании с параметром секунд. Если вы введете только «-c» и целое число (n), команда будет запускаться n раз. По умолчанию используются интервалы в одну секунду. Допустим, вы хотите открыть несколько приложений и посмотреть, сколько используется памяти. Для тестового вывода мы будем использовать читаемый человеком формат, используя степени 1000 (Gb) вместо 1024 (GiB). Мы собираемся записать в течение 20 секунд, чтобы проанализировать воздействие. Мы собираем данные каждые 5 секунд, и будем делать это за 4 цикла. Вот этот пример, отформатированный для командной строки и ее вывода:

free -h --si -s 5 -c 4

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

watch free -h

Команда iostat в Linux

Процесс установки iostat очень прост. iostat является частью пакета sysstat, который можно установить на вашей соответствующей системе одной из команд ниже:

Ubuntu / Debian

sudo apt install sysstat

Запуск IOSTAT

IOSTAT инструмент, который доступен через команду iostat. Введите эту команду, чтобы увидеть, как она работает:

iostat

Синтаксис iostat очень простой. Вам достаточно выполнить:

$ iostat опции устройство интервал

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

  • с - отобразить только информацию об использовании процессора;

  • d - отобразить только информацию об использовании устройств;

  • h - выводить данные в отчёте в удобном для чтения формате;

  • k - выводить статистику в килобайтах;

  • m - выводить статистику в мегабайтах;

  • o JSON - выводить статистику в формате JSON;

  • p - вывести статистику по устройству и всех его разделам;

  • x - вывести расширенную статистику;

  • y - отображать статистику с момента запуска утилиты, а не системы;

  • z - спрятать информацию о дисках, у которых нет активности.

Самый простой пример использования утилиты, это запустить её без параметров. Она выведет отчёт с со средней статистикой с момента включения системы до момента запуска программы:

sudo iostat

В первой части отчёта находится информация о загруженности процессора. Для просмотра данных в удобном формате выполните:

sudo iostat -h

Чтобы посмотреть данные по нужному устройству просто укажите это устройство:

sudo iostat /dev/sda

Можно посмотреть статистику по каждому разделу устройства, тогда надо воспользоваться опцией -p:

sudo iostat -p /dev/sda

Чтобы утилита автоматически обновляла данные каждую секунду просто добавьте интервал. Например:

sudo iostat -p /dev/sda 1

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

sudo iostat -y -p /dev/sda 1

Команда mpstat в Linux

Отображение всей информации

Опция «», показывает всю информацию, которая может быть отображена с помощью команды mpstat, как показано ниже. Это действительно эквивалентно команде «-I ALL -u -P mpstat ALL» команды:

mpstat -A

Показать статистику CPU индивидуального процессора (или) ядра

Параметр «-P ALL», покажет все индивидуальные процессоры или ядра вместе со статистикой:

mpstat -P ALL

Для отображения статистически о конкретном CPU или ядре, используйте опцию «-P», как показано ниже:

mpstat -P 0

Можно выполнить «mpstat -V» чтобы показать версию утилиты:

5.5 Дополнительные опции

Команда vmstat в Linux

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

vmstat [options] [delay [count]]

В базовом варианте вы просто выполняете команду vmstat без всяких опций.

vmstat

Procs r: количество запущенных процессов (работающих или ожидающих выполнения). b: количество спящих процессов.

Memory swpd: объем используемой виртуальной памяти. free: объем свободной памяти. buff: количество памяти, используемой в качестве буферов. cache: объем памяти, используемой в качестве кеша. inact: количество неактивной памяти (опция -a). active: количество активной памяти. (опция -a)

Swap si: объем памяти, выгруженный с диска (/s). so: объем памяти, перенесенный на диск (/s).

IO bi: блоки, полученные от блочного устройства (blocks/s). bo: блоки, отправленные на блочное устройство (blocks/s).

System in: количество прерываний в секунду, включая часы. cs: количество переключений контекста в секунду.

CPU Здесь проценты от общего времени процессора. us: время, потраченное на запуск кода, не относящегося к ядру (время пользователя). sy: время, потраченное на выполнение кода ядра (системное время). id: время бездействия. До версии Linux 2.5.41 это включает время ожидания ввода-вывода. wa: время, проведенное в ожидании ввода/вывода. До Linux 2.5.41, включено в idle. st: время, украденное из виртуальной машины. До Linux 2.6.11 неизвестно.

vmstat -a

(active/inactive memory) - активная/неактивная память

vmstat -f

(number of forks since boot) - количество вызовов fork (vfork и т.д.) с момента загрузки

vmstat -d

(disk statistics) - статистика диска

vmstat -D

(summarize disk statistics) - (общая статистика диска)

vmstat -s

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

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

vmstat --help

vmstat 1 - 60 - через какое количество секунд выводить информацию

Команда "w" в Linux

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

w

В таблице для каждого пользователя выводятся следующие поля:

USER — имя пользователя.
TTY — название терминала.
FROM — название удаленного компьютера или IP-адрес.
LOGIN — время входа в систему.
IDLE — время бездействия.
JCPU — время, использованное всеми процессами, подключенными к tty. Оно не включает завершенные фоновые задания, но включает фоновые задания, работающие в данный момент.
PCPU — время, использованное текущим процессом, который указан в поле WHAT.
WHAT — текущий процесс (командная строка текущего процесса).
w -h

Не выводить заголовок у таблицы.

w -u

Игнорировать имена пользователей при определении времени текущего процесса и времени CPU.

w -s

Использовать сокращенный формат вывода. Не выводить колонки JCPU и PCPU.

w -f

Включить или выключить вывод поля from, которое соответствует имени удаленного хоста (remote hostname). В зависимости от дистрибутива Linux (версии утилиты w), поле from может выводиться или не выводиться по умолчанию.

w -i

Выводить в поле from IP-адрес вместо имени хоста (hostname), если это возможно.

w -o

Выводить информацию в старом формате. Время, которое меньше 1 минуты, не выводится.

w -V

Вывести версию утилиты w.

Утилита htop

Как установить htop

sudo apt install htop

Как просмотреть все процессы в Linux

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

htop

Так и с привилегиями суперпользователя, для этого используйте sudo:

sudo htop

Чтобы программа выводила новые данные раз в 5 секунд:sudo htop -d 50

Как вывести процессы в виде дерева

Для вывода процессов в виде дерева используйте опцию -t:sudo htop -t

Дополнительная литература

Last updated