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

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

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

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

  2. Подготовьте диск к тестированию.

  3. Протестируйте производительность.

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

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

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

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

    sudo apt update
    sudo apt install fio

2. Подготовить диск к тестированию

осторожно

Для тестирования не используйте диск, который содержит какую-либо информацию — при подготовке к тестированию все данные на диске будут уничтожены.

Для тестов вы можете использовать отдельный файл на диске, но результат может быть не показателен, особенно если вы используете корневой раздел.

Для исключения влияния сервисов и производительности файловой системы на результат теста мы рекомендуем создать пустой сетевой диск и заполнить его данными.

  1. Создайте пустой диск.

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

  3. Посмотрите название пустого диска:

    lsblk

    В ответе появится список дисков облачного сервера. Скопируйте название пустого диска.

  4. Заполните пустой диск данными:

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

    Укажите <sdX> — название пустого диска, которое вы скопировали на шаге 3.

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

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

Протестировать IOPS

  1. Откройте CLI.

  2. Создайте файл-тест в текстовом редакторе nano:

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

    [writetest]
    size=2000M
    blocksize=4k
    filename=/dev/sdb
    rw=randwrite
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32

    Здесь:

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

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

    fio write.ini

    В выводе теста посмотрите значение IOPS. Пример вывода:

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

Протестировать пропускную способность

  1. Откройте CLI.

  2. Создайте файл-тест в текстовом редакторе nano:

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

    [writetest]
    size=2000M
    blocksize=4M
    filename=/dev/sdb
    rw=randwrite
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32

    Здесь:

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

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

    fio write.ini

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

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