Для запроса статистики ввода/вывода по пулу или определенным виртуальным устройствам используется команда zpool iostat. Подобно команде iostat, она выводит статический снимок всех операций ввода/вывода, выполненных вплоть до настоящего момента, а также актуальную статистику по каждому указанному интервалу. Отображается следующая статистика:
Объем данных, сохраненных в настоящее время в пуле или устройстве. Этот показатель незначительно отличается от объема пространства, доступного для фактических файловых систем, за счет внутренних особенностей реализации.
Для получения дополнительной информации о различиях между пространством пула и пространством набора данных см. Учет пространства ZFS.
Объем пространства, доступного в пуле или устройстве. Как и в статистике по показателю used, этот объем незначительно отличается от объема пространства, доступного для наборов данных.
Количество операций чтения для пула или устройства, включая запросы метаданных.
Количество операций записи для пула или устройства.
Пропускная способность для всех операций чтения (включая метаданные), выраженная в единицах в секунду.
Пропускная способность для всех операций записи, выраженная в единицах в секунду.
Если параметры не указаны, команда zpool iostat выводит полную статистику с момента начальной загрузки для всех пулов в системе. Пример:
# zpool iostat capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- tank 100G 20.0G 1.2M 102K 1.2M 3.45K dozer 12.3G 67.7G 132K 15.2K 32.1K 1.20K |
Поскольку эта статистика суммируется с момента начальной загрузки, при низком уровне активности пула полоса пропускания может быть определена как относительно свободная. Указание конкретного интервала позволяет получить более точные данные по текущему использованию полосы пропускания. Пример:
# zpool iostat tank 2 capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- tank 100G 20.0G 1.2M 102K 1.2M 3.45K tank 100G 20.0G 134 0 1.34K 0 tank 100G 20.0G 94 342 1.06K 4.1M |
В этом примере отображается статистика использования только для пула tank, обновляемая каждые две секунды до нажатия Ctrl+C. Также можно указать дополнительный параметр count, завершающий выполнение команды после определенного количества итераций. Например, команда zpool iostat 2 3 выводит сводку через каждые две секунды в рамках трех итераций, в общей сложности в течение шести секунд. При наличии только одного пула статистика отображается в последовательных строках. При наличии нескольких пулов каждая итерация визуально выделяется дополнительной пунктирной линией.
Помимо статистики ввода/вывода по всему пулу, команда zpool iostat позволяет просмотреть статистику по определенным виртуальным устройствам. Эта команда может использоваться для выявления медленно работающих устройств или просто для контроля данных ввода/вывода, генерируемых ZFS. Для запроса полной структуры виртуального устройства с полной статистикой ввода/вывода используется команда zpool iostat -v. Пример:
# zpool iostat -v capacity operations bandwidth tank used avail read write read write ---------- ----- ----- ----- ----- ----- ----- mirror 20.4G 59.6G 0 22 0 6.00K c1t0d0 - - 1 295 11.2K 148K c1t1d0 - - 1 299 11.2K 148K ---------- ----- ----- ----- ----- ----- ----- total 24.5K 149M 0 22 0 6.00K |
При просмотре статистики ввода/вывода по отдельным виртуальным устройствам обратите внимание на две важных особенности:
Во-первых, использование пространства отображается только для виртуальных устройств верхнего уровня. Способ распределения пространства между зеркальными виртуальными устройствами и виртуальными устройствами RAID-Z зависит от реализации и не может быть выражен как единый показатель.
Во-вторых, показатели не всегда должны суммироваться так, как это можно было бы предположить. В частности, число операций для устройств RAID-Z и зеркальных устройств различается. Это различие особенно заметно после создания пула, поскольку значительное количество операций ввода/вывода выполняется непосредственно на дисках в рамках процедуры создания пула, и эти операции не учитываются на уровне зеркала. Через некоторое время эти показатели постепенно выравниваются, несмотря на то, что неисправные, не отвечающие или автономные (в автономном режиме) устройства могут также повлиять на этот баланс.
Тот же набор параметров (интервал и количество) используется при исследовании статистики виртуальных устройств.