Тест диска с помощью fio.

Примеры тестирования производительности дисковой подсистемы с помощью утилиты fio. Заметка периодически дополняется.

Ставим из репозитория EPEL:

# yum install epel-release
# yum install fio

Простые тесты.

Тест на случайную запись:

# fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=0 --size=512M --numjobs=2 --runtime=240 --group_reporting

Тест на случайное чтение:

# fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting

Тест на случайные чтение и запись:

# fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75

Создание файлов с тестами.

Утилита fio позволяет использовать для тестирования, заранее написанные файл-тесты. Каждый такой тест — это файл с расширением .fio, разделённый внутри на секции, в рамках которых задаются настройки тестирования. Пример такого теста:

# cat test.fio 
[global]
rw=randread
size=256m
directory=/tmp/fio.test
ioengine=libaio
iodepth=4
invalidate=1
direct=1

[bgwriter]
rw=randwrite
iodepth=32

[queryA]
iodepth=1
ioengine=mmap
direct=0
thinktime=3

[queryB]
iodepth=1
ioengine=mmap
direct=0
thinktime=5

[bgupdater]
rw=randrw
iodepth=16
thinktime=40
size=32m

Тесты от Google Cloud.

Подробнее здесь, по ссылке. В примерах ниже для тестирования используется на порядок меньше места (в документации примеры используют 100Гб), для запуска тестов на небольших инстансах.

Запись на диск:

# fio --name=writefile --size=100G --filesize=8G --filename=/dev/disk/by-id/google-local-ssd-0 --bs=1M --nrfiles=1 --direct=1 --sync=0 --randrepeat=0 --rw=write --refill_buffers --end_fsync=1 --iodepth=200 --ioengine=libaio

Случайное чтение:

# fio --time_based --name=benchmark --size=8G --runtime=30 --filename=/dev/disk/by-id/google-local-ssd-0 --ioengine=libaio --randrepeat=0 --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 --numjobs=4 --rw=randread --blocksize=4k --group_reporting

Случайная запись:

# fio --time_based --name=benchmark --size=8G --runtime=30 --filename=/dev/disk/by-id/google-local-ssd-0 --ioengine=libaio --randrepeat=0 --iodepth=128 --direct=1 --invalidate=1 --verify=0 --verify_fatal=0 --numjobs=4 --rw=randwrite --blocksize=4k --group_reporting

@SysadminNotes | https://sysadmin.pm

One thought on “Тест диска с помощью fio.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *