Это 3-я часть тестирования мини-ПК SZBOX 5800H, предыдущая по ссылке. Также этот обзор можно назвать: CrystalDiskMark vs fio.
Предварительно укажем на некоторые факты:
мы взяли бюджетный SSD на контроллере SM2263XT, подробнее про SSD говорили ранее
одна из целей - подобрать утилиту тестирования скорости SSD под Линукс, чтобы в ней можно было задать схожие с CrystalDiskMark параметры
в тестировании использовалась portable-версия CrystalDiskMark
установлено, что некоторые графические утилиты под Линукс являются обёрткой для fio. Пример KDiskMark
Весь процесс можно разделить на 4 части:
1) установка WIN10 и Debian12 на один SSD
2) тестирование на CrystalDiskMark
Часть 1 в этом обзоре не будет разбираться детально, в Сети много статей на эту тему. Вот пример расширенной установки Debian на диск с Windows. Самые важные моменты, когда Windows уже установлена на SSD:
выбрать раздел "basic data NTFS" с Windows и уменьшить его, чтобы на освободившемся месте создать новый раздел и установить Debian
установить Grub для мульти загрузки
Для части 2 устанавливаем portable версию CrystalDiskMark и запускаем с параметрами по умолчанию, результат:
Кстати, параметры тестирования легко настраиваются:
В части 3 после установки
определим шаблоны тестирования по аналогии с настройками CrystalDiskMark выше:
1.1 Read Sequential=1MiB Queues=8 Threads=1 | 2.1 Write Sequential=1MiB Queues=8 Threads=1
1.2 Read Sequential=1MiB Queues=1 Threads=1 | 2.2 Write Sequential=1MiB Queues=1 Threads=1
1.3 Read Random=4KiB Queues=32 Threads=1 | 2.3 Write Random=4KiB Queues=32 Threads=1
1.4 Read Random=4KiB Queues=1 Threads=1 | 2.4 Write Random=4KiB Queues=1 Threads=1
Ниже небольшая шпаргалка по ключам fio:
Также приведём список 8ми шаблонов fio для записи результатов в файл после каждого теста:
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=1_1 --bs=1m --iodepth=8 --rw=read > 1_1_read.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=2_1 --bs=1m --iodepth=8 --rw=write > 2_1_write.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=1_2 --bs=1m --iodepth=1 --rw=read > 1_2_read.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=2_2 --bs=1m --iodepth=1 --rw=write > 2_2_write.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=1_3 --bs=4k --iodepth=32 --rw=randread > 1_3_read.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=2_3 --bs=4k --iodepth=32 --rw=randwrite > 2_3_write.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=1_4 --bs=4k --iodepth=1 --rw=randread > 1_4_read.txt; rm -f /mnt/fio_test_file
fio --loops=5 --size=1000m --filename=/mnt/fio_test_file --stonewall --ioengine=libaio --direct=1 --name=2_4 --bs=4k --iodepth=1 --rw=randwrite > 2_4_write.txt; rm -f /mnt/fio_test_file
Часть 4 - результаты. Приведём результаты тестов fio (результаты под Windows на скрине Части 2):
1.1 2527MB/s | 2.1 1882MB/s
1.2 2137MB/s | 2.2 1847MB/s
1.3 824MB/s | 2.3 787MB/s
1.4 46.1MB/s | 2.4 157MB/s
Итог: замеры скорости SSD утилитами CrystalDiskMark и fio практически идентичны. Разница в несколько MB/s (или даже в 10-20 MB/s) допускается даже в пределах одного эксперимента. Выше результаты только на тестах х.3 для fio под Debian. Тут можно предположить следующее: либо повезло в лучшую сторону, либо более совершенная реализация драйвера под Линукс. Также можно предположить, что реализация глубины очереди iodepth (количества потоков ввода/вывода) под Линукс работает эффективнее в случаях синхронного чтения/записи.
Еще примеры использования fio можно посмотреть, например, по ссылке.