Протестировать производительность файлового хранилища
Это инструкция с примером тестирования производительности файлового хранилища на облачном сервере.
Для полноценного тестирования производительности файлового хранилища (значений пропускной способности и лимитов на чтение и запись в IOPS) используйте утилиту fio
.
Результаты тестирования можно сравнить с ожидаемой производительностью, которая зависит от типа файлового хранилища. Значения можно посмотреть в таблице Лимиты файлового хранилища.
1. Установить утилиту fio
-
Откройте CLI.
-
Установите утилиту
fio
:sudo apt update
sudo apt install fio
2. Протестировать производительность
Можно использовать:
- тестирование лимитов в IOPS — случайная за пись или чтение блоками 4 КБ;
- тестирования пропускной способности — случайная запись или чтение блоками 4 МБ.
Протестировать лимиты в IOPS
Запись
Чтение
-
Запустите тест:
fio \
--name=test1 \
--blocksize=4k \
--rw=randwrite \
--direct=1 \
--buffered=0 \
--ioengine=libaio \
--iodepth=16 \
--loops=1000 \
--runtime=30 \
--filename=/mnt/nfs/test \
--size=99GУкажите:
blocksize
— размер одного блока, с которым проводится операция чтения или записи;iodepth
— количество потоков;filename
— файл для записи или чтения. В примерах ниже приведены тесты c параметромfilename=/mnt/nfs/test
— для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;size
— общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.
-
В выводе теста посмотрите значение лимита на запись в IOPS (
IOPS
):write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets
-
Запустите тест:
fio \
--name=test1 \
--blocksize=4k \
--rw=randread \
--direct=1 \
--buffered=0 \
--ioengine=libaio \
--iodepth=16 \
--loops=1000 \
--runtime=30 \
--filename=/mnt/nfs/test \
--size=99GУкажите:
blocksize
— размер одного блока, с которым проводится операция чтения или записи;iodepth
— количество потоков;filename
— файл для записи или чтения. В примерах ниже приведены тесты c параметромfilename=/mnt/nfs/test
— для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;size
— общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.
-
В выводе теста посмотрите значение лимита на чтение в IOPS (
IOPS
):read: IOPS=320, BW=1280KiB/s (1311kB/s)(2000MiB/1599899msec)
Протестировать пропускную способность
Запись
Чтение
-
Запустите тест:
fio \
--name=test1 \
--blocksize=4M \
--rw=randwrite \
--direct=1 \
--buffered=0 \
--ioengine=libaio \
--iodepth=16 \
--loops=1000 \
--runtime=30 \
--filename=/mnt/nfs/test \
--size=99GУкажите:
blocksize
— размер одного блока, с которым проводится операция чтения или записи;iodepth
— количество потоков;filename
— файл для записи или чтения. В примерах ниже приведены тесты c параметромfilename=/mnt/nfs/test
— для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;size
— общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.
-
В выводе теста посмотрите значение пропускной способности (
BW
):write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets
-
Запустите тест:
fio \
--name=test1 \
--blocksize=4M \
--rw=randread \
--direct=1 \
--buffered=0 \
--ioengine=libaio \
--iodepth=16 \
--loops=1000 \
--runtime=30 \
--filename=/mnt/nfs/test \
--size=99GУкажите:
blocksize
— размер одного блока, с которым проводится операция чтения или записи;iodepth
— количество потоков;filename
— файл для записи или чтения. В примерах ниже приведены тесты c параметромfilename=/mnt/nfs/test
— для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;size
— общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.
-
В выводе теста посмотрите значение пропускной способности (
BW
):read: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19911msec)