Для оценки производительности устройств ввода-вывода рассчитывается их эффективность по времени. В Linux мы используем команду iostat, чтобы узнать, как он использует ЦП и другие подключенные устройства ввода-вывода по времени. На основе этих отчетов конфигурации устройств ввода-вывода могут быть изменены для оптимизации нагрузки на ЦП.
Команда iostat полезна для мониторинга ЦП и других подключенных к нему устройств ввода-вывода. В этой статье мы узнаем больше о команде iostat.
Установка команды iostat в Linux
Команда iostat не предустановлена в дистрибутивах Linux, но поставляется с пакетом по умолчанию, поэтому ее можно установить в Linux с помощью диспетчера пакетов конкретного дистрибутива. Чтобы установить команду iostat в RedHat/CentOS/Fedora, используйте команду:
$ yum install sysstat
В дистрибутивах Linux на основе Ubuntu/Debian/Linuxmint его можно установить с помощью команды:
$ sudo apt install sysstat
Использование команды iostat в Linux
Команда iostat проста и может быть выполнена в терминале Linux для отображения отчета о мониторинге:
$ iostat
В приведенном выше выводе мы видим, что отчет разделен на две части; Отчет об использовании ЦП и отчет об использовании устройств.
Отчет об использовании ЦП: отчет об использовании ЦП отображает производительность ЦП по различным параметрам, объяснение этих параметров:
Параметр | Объяснение |
---|---|
%user | Использование ЦП отображается в % |
%nice | Он показывает использование ЦП в процентах на уровне пользователя, когда он используется с командой «хороший приоритет». |
%system | Он показывает использование ЦП в процентах на системном уровне, который также известен как уровень ядра. |
%iowait | Это время (время в %), в течение которого ЦП был инертным, а система (ядро) получала запрос устройств ввода-вывода. |
%steal | Показывает время в процентах, в течение которого виртуальный ЦП вынужденно ждал, потому что гипервизор обслуживался любым другим процессором. |
%idle | Это время (время в %), в течение которого ЦП был инертным, а система (ядро) получала запрос на отсутствие устройств ввода-вывода. |
Отчет об использовании устройств: в отчете об использовании устройств отображается производительность устройств ввода-вывода на основе следующих параметров:
Параметры | Объяснение |
---|---|
Устройство | Он показывает имя устройства ввода-вывода, отчет о котором отображается |
tps | Он показывает количество передач в секунду (tps), где передача — это запрос, сделанный устройствами ввода-вывода к ЦП, и чем выше значение tps, тем больше загружен ЦП. |
kB_read/s | Он отображает количество данных, прочитанных ЦП в секунду, это может быть в разных единицах либо в килобайтах (КБ), либо в мегабайтах (МБ) в зависимости от размера. |
kB_wrtn/s | Он отображает количество данных, записываемых ЦП в секунду, аналогично kB_read/s, это может быть в разных единицах либо в килобайтах (КБ), либо в мегабайтах (МБ) в зависимости от размера. |
kB_dscd/s | Он отображает скорость данных, отбрасываемых ЦП в секунду, аналогичную kB_read/s, это может быть в разных единицах либо в килобайтах (КБ), либо в мегабайтах (МБ) в зависимости от размера. |
kB_read | Он отображает общее количество блоков или объем данных, прочитанных процессором. |
kB_wrtn | Он отображает общее количество блоков или объем данных, записанных процессором. |
iostat собирает все эти данные ЦП и устройств ввода-вывода из следующих каталогов:
- /proc/stat: содержит подробную системную статистику.
- /proc/uptime: время безотказной работы системы извлекается отсюда.
- /proc/diskstats: отсюда берется статистика по дискам
- /sys: содержит статистику по блочным устройствам (устройства фиксированного размера, такие как жесткий диск).
- /proc/self/mountstats: содержит данные для сетевых файловых систем.
- /dev/disk: отсюда извлекаются постоянные имена устройств, подключенных к системе.
Общий синтаксис команды iostat
Общий синтаксис использования команды iostat в Linux:
$ iostat [option] [device-name]
Чтобы отобразить сводный отчет ЦП и устройств ввода/вывода
Если выполняется только команда «iostat», она отобразит сводный отчет обоих; ЦП и устройства ввода-вывода, но его также можно использовать с различными параметрами, которые будут отображать подробную сводку по конкретному устройству. Например, если мы хотим отобразить отчет об использовании ЦП, мы будем использовать флаг «-c» с командой iostat:
$ iostat -c
Чтобы отобразить только отчет об устройствах ввода/вывода
Точно так же мы можем отобразить только отчет об устройствах ввода-вывода, используя флаг «-d»:
$ iostat -d
Чтобы отобразить подробный отчет
Мы можем использовать флаг «-x», который используется для отображения подробного отчета:
$ iostat -x
В приведенном выше выводе отображаются некоторые новые параметры, объяснение важных параметров указано в таблице ниже:
Параметры | Объяснение |
---|---|
r/s | Общее количество запросов на чтение, выполненных в секунду |
rrqm/s | Общее количество объединенных запросов на чтение в секунду, поставленных в очередь в системе. |
wrqm/s | Общее количество объединенных в секунду запросов на запись, поставленных в очередь в системе. |
r_await | Это среднее время, затрачиваемое запросами на чтение устройств от ожидания в очереди до времени, когда запрос принят системой. |
w_await | Это среднее время, затрачиваемое запросами устройств на запись от ожидания в очереди до времени, когда запрос принят системой. |
w/s | Общее количество запросов на запись, выполненных в секунду |
%util | Продолжительность ЦП, в течение которого были отправлены запросы устройств ввода-вывода. |
Чтобы отобразить отчет с использованием других единиц измерения
Опции «-k» и «-m» используются для отображения результатов в килобайтах и мегабайтах , чтобы понять это, мы будем использовать флаг «-m» для преобразования наших результатов (которые в килобайтах) в мегабайты:
$ iostat -m
Для отображения отчета о блокировке устройств
Для получения отчета о мониторинге блочных устройств используется флаг «-p»:
$ iostat -p
$ iostat -pdm
В приведенной выше команде мы использовали три флага «-p», «-d» и «-m» , чтобы получить сведения о блочных устройствах в мегабайтах.
Чтобы отобразить отчет в удобочитаемом формате и формате JSON
Мы также можем отобразить этот отчет в удобочитаемом формате, используя «-h»:
$ iostat -h
Или в формате JSON с помощью опции «-o JSON»:
$ iostat -o JSON
Вывод
Команда iostat используется в Linux для мониторинга производительности ЦП и устройств ввода-вывода, что полезно при распределении нагрузки на различные устройства хранения для получения максимальной эффективности от ЦП. В этой статье мы объяснили установку команды iostat, а также параметры отчета, созданного командой iostat. Команду iostat также можно использовать с другими флагами; также обсуждаются важные и наиболее широко используемые флаги.