Команда iostat в Linux с примерами
Команда iostat в Linux используется для мониторинга системной статистики ввода-вывода для устройств и разделов. Он контролирует ввод / вывод системы, наблюдая за временем, в течение которого устройства активны, относительно их средней скорости передачи. Производственные отчеты iostat могут использоваться для изменения конфигурации системы, чтобы повысить баланс ввода / вывода между физическими дисками. iostat входит в пакет sysstat . Если у вас его нет, вам нужно сначала установить.
Команда для установки на разных дистрибутивах:
- На RedHat / CentOS / Fedora
- В Debian / Ubuntu / Linux Mint
Примечание: 10 команд Linux iostat для составления статистики процессора и ввода-вывода перечислены ниже:
- iostat: получить отчет и статистику.
- iostat -x: показать более подробную статистическую информацию.
- iostat -c: показать только статистику процессора.
- iostat -d: показать только отчет об устройстве.
- iostat -xd: Показать расширенную статистику ввода / вывода только для устройства.
- iostat -k: захват статистики в килобайтах или мегабайтах.
- iostat -k 2 3: Показать статистику процессора и устройства с задержкой.
- iostat -j ID mmcbkl0 sda6 -x -m 2 2: Показать статистику постоянных имен устройств.
- iostat -p: Показать статистику для блочных устройств.
- iostat -N: Показать статистическую информацию lvm2.
1) Команда iostat: команда iostat в linux используется для получения отчета и статистики.
Синтаксис:
Пример: вот пример.
Первый раздел содержит отчет о процессоре:
- % user: показывает процент использования ЦП при выполнении на уровне пользователя.
- % nice: показывает процент использования ЦП, произошедшего при выполнении на уровне пользователя с хорошим приоритетом.
- % system: показывает процент использования ЦП, произошедшего при выполнении на уровне системы (ядра).
- % iowait: показывает процент времени, в течение которого ЦП или ЦП находились в режиме ожидания, в течение которого система имела невыполненный запрос дискового ввода-вывода.
- % steal: показывает процент времени, затраченного на принудительное ожидание виртуальным процессором или процессорами, пока гипервизор обслуживал другой виртуальный процессор.
- % незанятости: показывает процент времени, в течение которого ЦП или ЦП находились в состоянии простоя, и система не имела невыполненного запроса дискового ввода-вывода.
Второй раздел вывода содержит отчет об использовании устройства:
- Устройство: имя устройства / раздела указано в каталоге / dev .
- tps: количество передач в секунду, которые были выданы устройству. Более высокое значение tps означает, что процессор загружен.
- Blk_read / s: показывает количество данных, считанных с устройства, выраженное в количестве блоков (килобайт, мегабайт) в секунду.
- Blk_wrtn / s: объем данных, записываемых на устройство, выраженный в количестве блоков (килобайт, мегабайт) в секунду.
- Blk_read: показывает общее количество прочитанных блоков.
- Blk_wrtn: показывает общее количество записанных блоков.
iostat использует файлы, указанные ниже, для создания отчетов:
- /proc/stat Содержит системную статистику.
- /proc/uptime Содержит время работы системы.
- /proc/diskstats Содержит статистику дисков.
- /sys Содержит статистику по блочным устройствам.
- /proc/self/mountstats Содержит статистику для сетевых файловых систем.
- /dev/disk Содержит постоянные имена устройств.
2) Команда iostat -x: эта команда отображает более подробную статистическую информацию. В результате команда iostat выдает отчет об использовании устройств ввода-вывода. Таким образом, можно расширить статистический результат для глубокой диагностики с помощью опции -x .
Синтаксис:
Пример:
- avg-cpu: Он сообщает нам информацию о блоке процессора.
- Devide: он сообщает нам информацию о блоке устройства. Чтобы быть уверенным, что вы находитесь на хорошем устройстве.
- % util : говорит нам о том, сколько времени устройство хранения выполняло выдающуюся работу (было занято).
- svctm : указывает, насколько быстро ваша подсистема ввода-вывода отвечает на запросы в целом, когда занята. На самом деле, чем меньше вы загружаете свою систему, тем выше svctm.
- await : указывает на скорость выполнения запросов. Это просто среднее.
- avgqu-sz : сообщает, сколько запросов в очереди. Низкий = либо ваша система не будет загружена, либо имеет сериализованный ввод-вывод и не может правильно использовать базовое хранилище. Высокий = ваш программный стек достаточно масштабируем, чтобы быть загруженным должным образом в основе ввода / вывода.
- avgrq-sz : это просто средний размер запроса, который может указывать на тип рабочей нагрузки.
- wsec / s & rsec / s : он сообщает нам количество читаемых и записываемых секторов в секунду. Разделите на 2048, и вы получите мегабайт в секунду.
- r / s & w / s : он сообщает нам запросы на чтение и запись в секунду. Эти цифры являются показателями емкости ввода / вывода, хотя, конечно, в зависимости от того, какое давление оказывается на подсистему ввода / вывода (размер очереди!), Они могут варьироваться.
- rrqm / s & wrqm / s : сообщает, сколько запросов было объединено на уровне блоков.
3) Команда iostat -c: эта команда показывает только статистику процессора. Можно показать статистическую информацию и отчет нашего процессора с параметром -c .
Синтаксис:
Пример:
4) Команда iostat -d: эта команда отображает только отчет об устройстве. Отображать статус использования устройства можно только с помощью опции -d . Будет собираться список информации для каждого подключенного устройства.
Синтаксис:
Пример:
5) Команда iostat -xd: эта команда показывает нам расширенную статистику ввода-вывода только для устройства. Мы можем отображать расширенную статистику с одной стороны, а с другой стороны мы можем отображать расширенную статистику. Это означает, что мы можем отображать расширенную статистику только для устройств с помощью опции -xd как -xd ниже:
Синтаксис:
Пример:
6) Команда iostat -k: эта команда записывает статистику в килобайтах или мегабайтах. По умолчанию iostat измеряет систему ввода-вывода в байтах. Чтобы было проще читать, мы можем преобразовать iostat, чтобы он отображал отчеты в килобайтах или мегабайтах.
Синтаксис:
Пример:
7) Команда iostat -m: используется для создания отчета с мегабайтами.
Синтаксис:
Пример:
8) Команда iostat -k 2 3: эта команда отображает статистику процессора и устройства с задержкой. То же самое с vmstat, поскольку инструмент статистики — лучший способ использовать его с параметром задержки. С задержкой, мы можем видеть, какова тенденция. Вот несколько примеров запуска iostat с задержкой.
Синтаксис:
Пример:
9) Команда iostat -c 2 2: Показать отчет только о процессоре с интервалом в 2 секунды и 2 раза.
Синтаксис:
Пример:
10) iostat -d sda7 sda6 2 2 Команда: Показать отчеты только для устройств sda6 и sda7 с интервалом в 2 секунды и 2 раза.
Источник
Описание iostat Linux
Утилита iostat позволяет проанализировать загруженность системы. Она выводит основные параметры ввода и вывода данных на диск, скорость записи и чтения данных, а также количество записанных или прочитанных данных. Кроме того, утилита выводит параметры загруженности процессора. Её можно использовать для оптимизации работы системы.
В этой статье мы рассмотрим как пользоваться iostat и что означают основные колонки в её выводе.
Описание iostat Linux
Синтаксис iostat очень простой. Вам достаточно выполнить:
$ iostat опции устройство интервал
Параметры устройство и интервал необязательные. Первый указывает по какому устройству показывать статистику, а второй, с каким интервалом обновлять данные. Давайте сначала рассмотрим опции программы, которые могут вам пригодится:
- -с — отобразить только информацию об использовании процессора;
- -d — отобразить только информацию об использовании устройств;
- -h — выводить данные в отчёте в удобном для чтения формате;
- -k — выводить статистику в килобайтах;
- -m — выводить статистику в мегабайтах;
- -o JSON — выводить статистику в формате JSON;
- -p — вывести статистику по устройству и всех его разделам;
- -x — вывести расширенную статистику;
- -y — отображать статистику с момента запуска утилиты, а не системы;
- -z — спрятать информацию о дисках, у которых нет активности.
Использование iostat в Linux
Самый простой пример использования утилиты, это запустить её без параметров. Она выведет отчёт с со средней статистикой с момента включения системы до момента запуска программы:
В первой части отчёта находится информация о загруженности процессора. Тут есть такие колонки:
- %user — процент использования процессора программами, запущенными на уровне пользователя;
- %nice — процент использования процессора программами запущенными тоже в пространстве пользователя, но только с изменённым приоритетом;
- %system — процент использования процессора ядром;
- %iowait — процент времени затраченного на ожидание завершения операций ввода/вывода;
- %steal — процент простоя виртуального процессора, пока гипервизор отдаёт мощность другому виртуальному процессору;
- %idle — процент времени пока процессор не занят ничем.
Если значение параметра %iowait слишком большое, то это может означать, что у вас проблема с производительностью диска и слишком много времени тратится на ожидание завершения ввода/вывода. Для устройств ввода/вывода тоже отображается ряд колонок с информацией. Разберемся что они означают:
- tps — означает количество запросов на чтение или запись к устройству в секунду;
- KB_read/s, MB_read/s — количество килобайт или мегабайт, прочитанных с устройства за секунду;
- KB_wrtn/s, MB_wrtn/s — количество килобайт или мегабайт записанных на устройство в секунду;
- KB_dscd/s, MB_dscd/s — скорость освобождения блоков данных на устройстве, килобайт или мегабайт в секунду;
- KB_read, MB_read — общее количество прочитанных данных с диска с момента загрузки системы;
- KB_wrtn, MB_wrtn — количество записанных данных с момента загрузки системы;
- KB_dscd, MB_dscd — количество освобождённых блоков на диске в результате выполнения операции trim в килобайтах или мегабайтах.
С чтением и записью, я думаю, что всё понятно. Освобождение блоков с данными с помощью операции trim или discard актуально для SSD дисков. Этой операцией файловая система сообщает какие блоки больше хранить физически не нужно и можно использовать для других целей. Утилита отображает с какой скоростью эти блоки освобождаются, а также сколько блоков или мегабайт данных было освобождено. Рассмотрим ещё несколько примеров. Для просмотра данных в удобном формате выполните:
Чтобы посмотреть данные по нужному устройству просто укажите это устройство:
sudo iostat /dev/nvme0n1
Можно посмотреть статистику по каждому разделу устройства, тогда надо воспользоваться опцией -p:
sudo iostat -p /dev/nvme0n1
Чтобы утилита автоматически обновляла данные каждую секунду просто добавьте интервал. Например:
sudo iostat -p /dev/nvme0n1 1
Если вы не хотите чтобы утилита суммировала все данные с момента запуска операционной системы, то можно использовать опцию -y. Но работает она только если задан интервал:
sudo iostat -y -p /dev/nvme0n1 1
Выводы
В этой статье была рассмотрена команда iostat Linux. Она позволяет понять почему зависает ваша система и действительно ли причина этому — жёсткий диск. Мы рассмотрели далеко не все опции утилиты и далеко не все колонки из возможного её вывода. Более подробную информацию вы можете найти выполнив:
Самая свежая и достоверная информация, как правило, заполняется разработчиками и находится на man — страницах.
Источник