Iostat
iostat — утилита мониторинга состояния системы, предназначенная для сбора и отображения статистики ввода-вывода устройств хранения данных в операционных системах. Часто используется для выявления проблем с производительностью устройств хранения, включая локальные диски или сетевые диски, доступ к которым осуществляется через такие сетевые файловые системы, как NFS. Также может выводить статистику ввода-вывода терминалов (TTY)[1], а также некоторые базовые сведения о загрузке процессора.
Общие сведения
| iostat | |
|---|---|
| Тип | Команда |
| Разработчик | AT&T Bell Laboratories |
| Операционные системы | Unix и Unix-подобные операционные системы |
| Первый выпуск | январь 1979 |
Синтаксис и доступность
Команда iostat -x выводит таблицу, в которой каждая строка содержит числовые данные для одного устройства. В первом столбце указан идентификатор устройства, в последующих — различные показатели активности. Среди них: среднее время обслуживания (svc_t, включает не только время в очереди, но и время поиска и передачи[2]), средний процент занятости устройства (%b — доля времени, когда устройство используется), а также процент времени, когда очередь запросов не пуста (%w — доля времени, когда запросы к устройству ещё не выполнены)[1].
Рекомендуется запускать iostat с указанием интервала в секундах (например, iostat -x 30), чтобы наблюдать динамику во времени, иначе показатели будут усреднены за всё время работы с последней перезагрузки системы[2].
Утилита iostat доступна в большинстве Unix-подобных операционных систем, в том числе в FreeBSD, macOS (в составе пакета com.apple.pkg.Core), Linux (пакет sysstat), Solaris. Синтаксис и вывод команды iostat могут незначительно отличаться в различных системах[3].
Вывод команды
По данным Sun Microsystems, высокие значения в полях wait и svc_t могут свидетельствовать о низкой пропускной способности подсистемы ввода-вывода и перегрузке системы I/O-операциями. Стабильно высокие значения в полях kr/s, kw/s, %w и %b также могут указывать на узкое место в подсистеме ввода-вывода[1].
В версиях Solaris до Solaris 7 команда iostat могла выводить некорректные данные в поле wait на многопроцессорных системах. Это связано с тем, что iostat могла ошибочно учитывать состояние ожидания ввода-вывода одного процессора как ожидание на всех процессорах в системе[2].
Также рекомендуется не учитывать высокие значения svc_t для дисков с очень низкой активностью (менее 5 %), поскольку процесс fsflush может увеличивать среднее время обслуживания при синхронизации данных на диске с содержимым памяти[2].
iostat не выводит информацию о логических разделах на каждом диске, если используется менеджер томов; для получения такой информации следует использовать команду vxstat[1]. В то же время в Linux LVM каждый логический том отображается как отдельное устройство через device mapper, и для него выводится собственная статистика iostat.
Примечания
- ↑ 1 2 3 4 Solaris System Performance Management. — D.2. — Sun Microsystems Enterprise Services, 2002. — P. 2–10.
- ↑ 1 2 3 4 Cromar, Scott Solaris Troubleshooting Handbook (11 октября 2008). Дата обращения: 22 июня 2024. Архивировано 19 апреля 2009 года.
- ↑ Burleson, Donald K. Oracle9i UNIX administration handbook. — McGraw-Hill, 2002. — P. 320. — ISBN 978-0072223040.