Утилита fio#
Утилита fio используется для нагрузочного тестирования дисковой подсистемы посредством создания потоков или процессов, нагружающих ее операциями ввода/вывода.
Синтаксис fio:
fio <options/parameters> <jobfile>
Где:
<options/parameters>- опции/параметры;<jobfile>- файл задания, содержит описание теста, соответствующего нагрузке ввода-вывода, которую необходимо имитировать.
Часто используемые опции утилиты представлены в таблице ниже.
Опция |
Описание |
|---|---|
|
Проверка и валидация внутренней тактовой частоты процессора |
|
Отображение статистики в сжатом формате, разделенном точкой с запятой |
|
Запись выходных данных в указанный файл |
|
Анализ только опций, без запуска операций ввода-вывода |
Часто используемые параметры заданий утилиты представлены в таблице ниже.
Параметр |
Описание |
|---|---|
|
Размер блока в байтах, используемый для единиц ввода-вывода ( |
|
Использование буферизованного ввода-вывода, если значение равно |
|
Использование небуферизованного ввода-вывода, если значение равно |
|
Принудительный ввод новой строки для каждого пройденного периода времени; если единица измерения не указана, то значение интерпретируется в секундах |
|
Указание имени файла; по умолчанию имя файла основывается на названии задания, номера потока и номера файла |
|
Отображение статистики по группам заданий |
|
Количество устройств ввода-вывода, которые должны быть подключены к файлу задания |
|
Определение типа выполнения задания ввода-вывода в файл, например, |
|
Указание имени задания |
|
Создание указанного количества клонов задания; каждый клон создается как независимый поток или процесс |
|
Включение безопасных проверок (только для чтения), предотвращающих операции записи и обрезки |
|
Ограничение времени выполнения; тест будет выполняться до тех пор, пока не завершится настроенная рабочая нагрузка ввода-вывода или пока не пройдет указанный период времени, в зависимости от того, что произойдет раньше; если единица измерения отсутствует, то значение интерпретируется в секундах |
|
Тип шаблона ввода-вывода; допустимыми значениями могут быть, например, |
|
Общий размер файла ввода-вывода для каждого потока задания |
|
Выполнение задания в течение указанного времени в цикле, даже если файл полностью прочитан или записан, пока не истечет время выполнения |
Примеры использования#
Для выполнения задания тестового случайного чтения введите команду:
fio --filename=path/to/file --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=job_name --eta-newline=1 --readonlyГде:
--filename=path/to/file- путь к файлу, на котором будет выполняться тест;--direct=1- небуферизованный ввод-вывод;--rw=randread- случайное чтение;--bs=4k- размер блока 4 Кб;--ioengine=libaio- асинхронный ввод-вывод;--iodepth=256- очередь ввода-вывода - 256;--runtime=120- время выполнения - 120 секунд;--numjobs=4- выполнение 4 клонов задания одновременно;--name=job_name- имя задания;--eta-newline=1- принудительный ввод новой строки каждую секунду.
Для проведения тестирования с параметрами, указанными в файле задания
path/to/job_file, введите команду:fio path/to/job_file