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

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

к сведению

Это инструкция с примером тестирования производительности файлового хранилища на облачном сервере.

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

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

Результаты тестирования можно сравнить с ожидаемой производительностью, которая зависит от типа файлового хранилища. Значения можно посмотреть в таблице Лимиты файлового хранилища.

1. Установить утилиту fio

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

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

    sudo apt update
    sudo apt install fio

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

Можно использовать тесты:

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

  • blocksize — размер одного блока, с которым проводится операция чтения или записи;
  • iodepth — количество потоков;
  • filename — файл для записи или чтения. В примерах ниже приведены тесты c параметром filename=/mnt/nfs/test — для тестирования создастся отдельный файл в директории с примонтированным файловым хранилищем;
  • size — общий размер тестового файла. Для получения релевантных результатов мы рекомендуем выполнять тестирование на файловом хранилище размером больше 100 ГБ.

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

  1. Запустите тест:

    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
  2. В выводе теста посмотрите значение лимита на запись в IOPS (IOPS):

    write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets

Случайное чтение блоками 4 КБ

  1. Запустите тест:

    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
  2. В выводе теста посмотрите значение лимита на чтение в IOPS (IOPS):

    read: IOPS=320, BW=1280KiB/s (1311kB/s)(2000MiB/1599899msec)

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

  1. Запустите тест:

    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
  2. В выводе теста посмотрите значение пропускной способности (BW):

    write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets

Случайное чтение блоками 4 MБ

  1. Запустите тест:

    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
  2. В выводе теста посмотрите значение пропускной способности (BW):

    read: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19911msec)