iostat ( статистика ввода / вывода ) — это инструмент мониторинга компьютерной системы , используемый для сбора и отображения статистики ввода и вывода данных операционной системы . Он часто используется для выявления проблем с производительностью устройств хранения, включая локальные диски или удаленные диски, доступ к которым осуществляется через сетевые файловые системы, такие как NFS . Его также можно использовать для предоставления информации о входе и выходе терминала (TTY), [1] , а также включает некоторую базовую информацию о процессоре.
iostat -x
отображает выходные данные, где каждая строка (строка) содержит числовые данные для одного устройства. В первом столбце указано имя устройства, а в последующих столбцах отображается различная статистика для этого устройства. Столбцы включают среднее время обслуживания ( svc_t , которое включает не только время нахождения запроса в очереди обслуживания, но также время поиска и время передачи [2] ), средний процент занятости ( %b , по сути, долю времени, в течение которой устройство используется) и процент времени, в течение которого очередь не пуста ( %w , что означает долю времени, в течение которой запросы от устройства еще не были выполнены). [1]
Лучше всего запускать iostat
, указав интервал времени в секундах (например iostat -x 30
), чтобы увидеть результаты с течением времени. Это связано с тем, что в противном случае выходные данные будут отражать значения за весь период времени с момента последней перезагрузки системы . [2]
Этот iostat
инструмент доступен в большинстве Unix и Unix-подобных операционных системах, таких как FreeBSD , macOS ( пакет com.apple.pkg.Core ), Linux ( пакет sysstat ) и Solaris . Синтаксис и вывод iostat
часто немного различаются между ними. [3]
Компания Sun Microsystems заявила, что высокие значения в полях wait и svc_t указывают на недостаточную общую пропускную способность системы, что указывает на то, что «система перегружена операциями ввода-вывода ». Постоянно высокие значения в полях kr/s , kw/s , %w и %b также указывают на «возможное узкое место ввода-вывода». [1]
В версиях Solaris до Solaris 7 iostat может выдавать вводящую в заблуждение информацию в поле ожидания в многопроцессорных системах. Это связано с тем, что iostat может неправильно интерпретировать нахождение одного процессора в состоянии ожидания ввода-вывода, как означающее, что все процессоры в системе вынуждены ждать. [2]
Высокие значения в поле svc_t также желательно не учитывать для дисков с очень низкими показателями активности (менее 5%). Это связано с тем, что процесс fsflush может увеличить среднее время обслуживания при синхронизации данных на диске с тем, что находится в памяти. [2]
iostat не отображает информацию об отдельных томах на каждом диске, если используется диспетчер томов . Вместо этого для отображения этой информации можно использовать команду vxstat . [1] Напротив, при использовании Linux LVM в качестве менеджера томов iostat отображает информацию о томе индивидуально, поскольку каждый логический том имеет свое собственное устройство сопоставления устройств (dm).