Перейти к основному содержимому
Протестировать работу диска

Протестировать работу диска

При тестировании диска ты проверяешь фактические значения его характеристик — количество операций ввода и вывода (IOPS), производительность.

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

Для тестирования используется утилита fio. С fio можно использовать файл-тесты — подготовленные текстовые файлы с настройками тестирования.

  1. Установи утилиту fio.
  2. Подготовь диск к тестированию.
  3. Выбери тест.

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

Выполни команды:

sudo apt update
sudo apt install fio

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

осторожно

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

  1. Создай новый сетевой диск.

  2. Запиши на диск данные для тестирования:

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

Протестировать диск

Выбери нужный тест или выполни все тесты с любом порядке:

  • случайная запись блоками 4 КБ — тестирование количества операций ввода (W IOPS);
  • случайное чтение блоками 4 КБ — тестирование количества операций вывода (R IOPS);
  • случайная запись блоками 4 MБ — тестирование пропускной способности;
  • случайное чтение блоками 4 MБ — тестирование пропускной способности.

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

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

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

  1. Создай тест:

    nano write.ini
  2. Добавь в файл содержимое:

    [writetest]
    size=2000M
    blocksize=4k
    filename=/dev/sdb
    rw=randwrite
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32
  3. Запусти тест:

    fio write.ini
  1. В выводе теста посмотри значение IOPS:

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

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

  1. Создай тест:

    nano write.ini
  2. Добавь в файл содержимое:

    [writetest]
    size=2000M
    blocksize=4M
    filename=/dev/sdb
    rw=randwrite
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32
  3. Запусти тест:

    fio write.ini
  4. В выводе теста посмотри значение пропускной способности (BW):

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

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

  1. Создай тест:

    nano read.ini
  2. Добавь в файл содержимое:

    [readtest]
    size=2000M
    blocksize=4k
    filename=/dev/sdb
    rw=randread
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32
  3. Запусти тест:

    fio read.ini
  4. В выводе теста посмотри значение IOPS:

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

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

  1. Создай тест:

    nano read.ini
  2. Добавь в файл содержимое:

    [readtest]
    size=2000M
    blocksize=4M
    filename=/dev/sdb
    rw=randread
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32
  3. Запусти тест:

    fio read.ini
  4. В выводе теста посмотри значение пропускной способности (BW):

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