Перейти к основному содержимому
Протестировать производительность файлового хранилища
Последнее изменение:

Протестировать производительность файлового хранилища

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

  1. Установите утилиту fio.
  2. Протестируйте производительность.

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

Ожидаемая производительность

HDD БазовоеSSD УниверсальноеSSD Быстрое
Пропускная способность
(чтение, блоки 4 МБ)
40 МБ/с (для NFS)
100 МБ/с (для CIFS)
200 МБ/с300 МБ/с
Пропускная способность
(запись, блоки 4 МБ)
100 МБ/с200 МБ/с500 МБ/с
Количество операций
(чтение, блоки 4 КБ)
320 IOPS7000 IOPS25000 IOPS
Количество операций
(запись, блоки 4 КБ)
120 IOPS4000 IOPS15000 IOPS

Подробнее о типах файлового хранилища.

Установить fio

  1. Подключитесь к серверу.

  2. Установите fio:

    sudo apt update
    sudo apt install fio

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

Выберите тест:

Параметры тестов:

  • 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)