Протестировать производительность файлового хранилища
Протестировать производительность файлового хранилища
Для полноценного тестирования производительности файлового хранилища (IOPS на чтение и запись и пропускной способности) используйте утилиту fio
.
Результаты тестирования можно сравнить с ожидаемой производительностью.
Ожидаемая производительность
Подробнее о типах файлового хранилища.
Установить fio
Установите
fio
:sudo apt update
sudo apt install fio
Протестировать производительность
Выберите тест:
- случайная запись блоками 4 КБ — для тестирования IOPS;
- случайное чтение блоками 4 КБ — для тестирования IOPS;
- случайная запись блоками 4 MБ — для тестирования пропускной способности;
- случайное чтение блоками 4 MБ — для тестирования пропускной способности.
Параметры тестов:
blocksize
— размер одного блока, с которым проводится операция чтения или записи;iodepth
— количество потоков;filename
— файл для записи или чтения. В примерах ниже приведены тесты c параметромfilename=/mnt/nfs/test
— для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;size
— общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.
Случайная запись блоками 4 КБ
Запустите тест:
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
В выводе теста посмотрите значение IOPS (IOPS
):
write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets
Случайное чтение блоками 4 КБ
Запустите тест:
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
В выводе теста посмотрите значение IOPS (IOPS
):
read: IOPS=320, BW=1280KiB/s (1311kB/s)(2000MiB/1599899msec)
Случайная запись блоками 4 МБ
Запустите тест:
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
В выводе теста посмотрите значение пропускной способности (BW
):
write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets
Случайное чтение блоками 4 MБ
Запустите тест:
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
В выводе теста посмотрите значение пропускной способности (BW
):
read: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19911msec)