Fio linux как пользоваться

Тест диска с помощью 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

Источник

Читайте также:  Linux browser with javascript

Протестировать производительность дисков

Для полноценного тестирования производительности дисков облачных серверов (IOPS на чтение и запись и пропускной способности) используйте утилиту fio . Для тестирования можно использовать файл-тесты — подготовленные текстовые файлы с настройками тестирования.

Результаты тестирования можно сравнить с лимитами для локальных дисков и сетевых дисков.

Установить fio​

sudo apt update sudo apt install fio 

Подготовить диск​

Не используйте эту команду для дисков, которые содержат какую-либо информацию — команда уничтожает все данные на диске. В примерах ниже приведены тесты с записью на диск с параметром filename=/dev/sdb — запись также уничтожит данные и файловую систему на диске, если они там есть.

Для исключения влияния сервисов и производительности файловой системы на результат теста мы рекомендуем создать пустой сетевой диск и заполнить его данными:

dd if=/dev/urandom of=/dev/sdX bs=4M 

Для тестов вы можете использовать файл, но результат может быть не показателен, особенно если вы используете корневой раздел.

Протестировать производительность​

  • случайная запись блоками 4 КБ — для тестирования IOPS;
  • случайное чтение блоками 4 КБ — для тестирования IOPS;
  • случайная запись блоками 4 MБ — для тестирования пропускной способности;
  • случайное чтение блоками 4 MБ — для тестирования пропускной способности.
  • size — общий размер тестового файла;
  • blocksize — размер одного блока, с которым проводится операция чтения или записи;
  • filename — файл для записи или чтения. В примерах ниже приведены тесты с записью на диск с параметром filename=/dev/sdb — запись также уничтожит данные и файловую систему на диске, если они там есть;
  • iodepth — количество потоков.

Случайная запись блоками 4 КБ​

[writetest] size=2000M blocksize=4k filename=/dev/sdb rw=randwrite direct=1 buffered=0 ioengine=libaio iodepth=32 
write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets 

Случайная запись блоками 4 МБ​

Источник

Оцените статью
Adblock
detector