Описание iostat Linux

Утилита iostat позволяет проанализировать загруженность системы. Она выводит основные параметры ввода и вывода данных на диск, скорость записи и чтения данных, а также количество записанных или прочитанных данных. Кроме того, утилита выводит параметры загруженности процессора. Её можно использовать для оптимизации работы системы.

В этой статье мы рассмотрим как пользоваться iostat и что означают основные колонки в её выводе.

Описание iostat Linux

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

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

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

  • - отобразить только информацию об использовании процессора;
  • -d - отобразить только информацию об использовании устройств;
  • -h - выводить данные в отчёте в удобном для чтения формате;
  • -k - выводить статистику в килобайтах;
  • -m - выводить статистику в мегабайтах;
  • -o JSON - выводить статистику в формате JSON;
  • -p - вывести статистику по устройству и всех его разделам;
  • -x - вывести расширенную статистику;
  • -y - отображать статистику с момента запуска утилиты, а не системы;
  • -z - спрятать информацию о дисках, у которых нет активности.

Использование iostat в Linux

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

sudo iostat

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

  • %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 -h

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

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 iostat

Самая свежая и достоверная информация, как правило, заполняется разработчиками и находится на man - страницах.

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: