Протестировать производительность дисков
Linux
Windows
Для полноценного тестирования производительности дисков облачных серверов (IOPS на чтение и запись и пропускной способности) используйте утилиту fio
. Для тестирования можно использовать файл-тесты — подготовленные текстовые файлы с настройками тестирования.
Результаты тестирования можно сравнить с лимитами для сетевых дисков и локальных дисков.
1. Установить утилиту fio
-
Установите утилиту
fio
:sudo apt update
sudo apt install fio
2. Подготовить диск к тестированию
Для тестирования не используйте диск, который содержит какую-либо информацию — при подготовке к тестированию все данные на диске будут уничтожены.
Для тестов вы можете использовать отдельный файл на диске, но результат может быть не показателен, особенно если вы используете корневой раздел.
Для ис ключения влияния сервисов и производительности файловой системы на результат теста мы рекомендуем создать пустой сетевой диск и заполнить его данными.
-
Посмотрите название пустого диска:
lsblk
В ответе появится список дисков облачного сервера. Скопируйте название пустого диска.
-
Заполните пустой диск данными:
dd if=/dev/urandom of=/dev/<sdX> bs=4M
Укажите
<sdX>
— название пустого диска, которое вы скопировали на шаге 3.
3. Протестировать производительность
Можно использовать:
- тестирование IOPS — случайная запись или чтение блоками 4 КБ;
- тестирования пропускной способности — случайная запись или чтение блоками 4 МБ.
Протестировать IOPS
Запись
Чтение
-
Откройте CLI.
-
Создайте файл-тест в текстовом редакторе
nano
:nano write.ini
-
Добавьте в файл-тест содержимое:
[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
— количество потоков.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Запустите тест:
fio write.ini
В выводе теста посмотрите значение IOPS. Пример вывода:
write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets
-
Откройте CLI.
-
Создайте файл-тест в текстовом редакторе
nano
:nano read.ini
-
Добавьте в файл-тест содержимое:
[readtest]
size=2000M
blocksize=4k
filename=/dev/sdb
rw=randread
direct=1
buffered=0
ioengine=libaio
iodepth=32Здесь:
size
— общий размер файла для тестирования;blocksize
— размер одного блока данных для тестирования;filename
— путь к файлу, который будет использоваться для тестирования. В примере выше приведен тест с записью на диск с параметромfilename=/dev/sdb
;iodepth
— количество потоков.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Запустите тест:
fio read.ini
В выводе теста посмотрите значение IOPS. Пример вывода:
read: IOPS=320, BW=1280KiB/s (1311kB/s)(2000MiB/1599899msec)
Протестировать пропускную способность
Запись
Чтение
-
Откройте CLI.
-
Создайте файл-тест в текстовом редакторе
nano
:nano write.ini
-
Добавьте в файл содержимое:
[writetest]
size=2000M
blocksize=4M
filename=/dev/sdb
rw=write
direct=1
buffered=0
ioengine=libaio
iodepth=32Здесь:
size
— общий размер тестового файла;blocksize
— размер одного блока, с которым проводится операция чтения или записи;filename
— файл для записи или чтения. В примерах ниже приведены тесты с записью на диск с параметромfilename=/dev/sdb
— запись также уничтожит данные и файловую систему на диске, если они там есть;iodepth
— количество потоков.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Запустите тест:
fio write.ini
В выводе теста посмотрите значение пропускной способности (BW). Пример вывода:
write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets
-
Откройте CLI.
-
Создайте файл теста в текстовом редакторе
nano
:nano read.ini
-
Добавьте в файл содержимое:
[readtest]
size=2000M
blocksize=4M
filename=/dev/sdb
rw=read
direct=1
buffered=0
ioengine=libaio
iodepth=32Здесь:
size
— общий размер тестового файла;blocksize
— размер одного блока, с которым проводится операция чтения или записи;filename
— файл для записи или чтения. В примерах ниже приведены тесты с записью на диск с параметромfilename=/dev/sdb
— запись также уничтожит данные и файловую систему на диске, если они там есть;iodepth
— количество потоков.
-
Выйдите из текстового редактора
nano
с сохранием изменений: нажмите Ctrl+Х, а затем Y+Enter. -
Запустите тест:
fio read.ini
В выводе теста посмотрите значение пропускной способности (BW). Пример вывода:
read: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19911msec)
Для полноценного тестирования производительности дисков облачных серверов (IOPS на чтение и запись и пропускной способности) используйте утилиту CrystalDiskMark. Мы рекомендуем проводить тестирование на дополнительном диске облачного сервера.
Результаты тестирования можно сравнить с лимитами для сетевых дисков и локальных дисков.
1. Установить утилиту CrystalDiskMark
-
Скачайте CrystalDiskMark.
-
Запустите установщик.
-
Выполните шаги по установке утилиты.
2. Протестировать производительность
Перед проведением тестирования завершите процессы сторонних приложений или перезагрузитесь в безопасный режим. Мы рекомендуем проводить тестирование на дополнительном диске.
Можно использовать:
- тестирование IOPS — случайная запись и чтение блоками 4 КБ;
- тестирования пропускной способности — случайная запись и чтение блоками 4 МБ.
Протести ровать IOPS
-
Запустите CrystalDiskMark.
-
Перейдите в Profile.
-
Выберите Demo.
-
Перейдите в Settings → Settings.
-
В блоке Profile:Demo:
5.1. В столбце Type выберите тип тестирования — RND. Этот тип тестирования отвечает за произвольное чтение и запись.
5.2. В столбце Block Size выберите размер блока для тестирования — 4KiB.
5.3. В столбце Queues выберите глубину очереди запросов для тестирования — 32.
5.4. В столбце Threads выберите количество потоков загрузки — 1.
-
Нажмите OK.
-
В единицах измерения выберите IOPS.
-
Нажмите ALL. Запустится тестирование IOPS диска.
-
В выводе теста посмотрите значение IOPS на чтение и запись. Пример вывода:
Read 325 IOPS
Write 121 IOPS
Протестировать пропускную способность
-
Запустите CrystalDiskMark.
-
Перейдите в Profile.
-
Выберите Demo.
-
Перейдите в Settings → Settings.
-
В блоке Profile:Demo:
5.1. В столбце Type выберите тип тестирования — SEQ. Этот тип тестирования отвечает за последовательное чтение и запись.
5.2. В столбце Block Size выберите размер блока для тестирования — 4MiB.
5.3. В столбце Queues выберите глубину очереди запросов для тестирования — 32.
5.4. В столбце Threads выберите количество потоков загрузки — 1.
-
Нажмите OK.
-
В единицах измерения выберите MB/s.
-
Нажмите ALL. Запустится тестирование пропускной способности диска.
-
В выводе теста посмотрите значение пропускной способности на чтение и запись. Пример вывода:
Read 106.5 MB/s
Write 95.6 MB/s