Рейтинг:0

FIO в 17 раз медленнее на ZFS, чем на необработанном устройстве

флаг in

У меня есть пул ZFS RAIDZ-1 на 4 твердотельных накопителях SATA3 емкостью 3,84 ТБ для предприятий.

zfs создать rpool/fio
zfs устанавливает первичный кеш=нет rpool/fio

fio --ioengine=sync --filename=[X] --direct=1 --rw=read --bs=4K --numjobs=1 --iodepth=1 --runtime=10 --time_based --name= фио

Результаты:

--filename=/dev/sdg:        
  чтение: IOPS = 25,1 тыс., BW = 98,2 МБ/с (103 МБ/с)

--filename=/rpool/fio/testx
  чтение: IOPS=1408, BW=5634 КБ/с (5769 КБ/с)

конфигурация зпула:

НАЗВАНИЕ СВОЙСТВО ЗНАЧЕНИЕ ИСТОЧНИК
файловая система типа rpool/fio -
Создание rpool/fio Чт 18 ноября 11:04 2021 -
rpool/fio используется 30.5G -
rpool/fio доступен 9.69T -
rpool/fio со ссылкой на 30.5G -
коэффициент сжатия rpool/fio 1,05x -
rpool/fio смонтирован да -
квота rpool/fio нет по умолчанию
резервирование rpool/fio нет по умолчанию
rpool/fio размер записи 128K по умолчанию
rpool/fio точка монтирования /rpool/fio по умолчанию
rpool/fio sharenfs отключен по умолчанию
контрольная сумма rpool/fio по умолчанию
rpool/fio сжатие lz4 локально
rpool/fio atime off унаследовано от rpool
устройства rpool/fio по умолчанию
rpool/fio exec по умолчанию
rpool/fio setuid по умолчанию
rpool/fio только для чтения отключено по умолчанию
rpool/fio отключен по умолчанию
rpool/fio snapdir скрытый по умолчанию
rpool/fio aclmode discard по умолчанию
rpool/fio aclinherit ограничен по умолчанию
rpool/fio createtxg 11836 -
rpool/fio может монтироваться по умолчанию
rpool/fio xattr по умолчанию
rpool/fio копирует 1 по умолчанию
rpool/fio версия 5 -
rpool/fio utf8only выключен -
нормализация rpool/fio нет -
rpool/fio чувствителен к регистру -
rpool/fio vscan выключен по умолчанию
rpool/fio nbmand выключен по умолчанию
rpool/fio sharemb отключен по умолчанию
rpool/fio refquota нет по умолчанию
rpool/fio refreservation нет по умолчанию
Руководство rpool/fio 11473612800347485365 -
первичный кеш rpool/fio нет локального
вторичный кеш rpool/fio все по умолчанию
rpool/fio, используемый снимками 0B —
rpool/fio, используемый набором данных 30.5G —
rpool/fio используется детьми 0B -
rpool/fio, используемый рефререзервацией 0B -
rpool/fio logbias задержка по умолчанию
rpool/fio objsetid 9843 -
дедупликация rpool/fio отключена по умолчанию
rpool/fio mlslabel нет по умолчанию
стандарт синхронизации rpool/fio, унаследованный от rpool
rpool/fio dnodesize по умолчанию
rpool/fio refcompressratio 1.05x -
rpool/fio написано 30.5G -
rpool/fio logused 32.0G -
rpool/fio с логической ссылкой 32.0G —
rpool/fio volmode по умолчанию по умолчанию
rpool/fio filesystem_limit нет по умолчанию
rpool/fio snapshot_limit нет по умолчанию
rpool/fio filesystem_count нет по умолчанию
rpool/fio snapshot_count нет по умолчанию
rpool/fio snapdev скрытый по умолчанию
rpool/fio acltype выключен по умолчанию
контекст rpool/fio нет по умолчанию
rpool/fio fscontext нет по умолчанию
rpool/fio defcontext нет по умолчанию
rpool/fio rootcontext нет по умолчанию
rpool/fio relatime отключен по умолчанию
rpool/fio redundant_metadata все по умолчанию
оверлей rpool/fio по умолчанию
Шифрование rpool/fio выключено по умолчанию
rpool/fio keylocation нет по умолчанию
Формат ключа rpool/fio нет по умолчанию
rpool/fio pbkdf2iters 0 по умолчанию
rpool/fio special_small_blocks 0 по умолчанию

Что-то не так с тестом или ZFS? Любые советы / идеи приветствуются! Спасибо.

ОБНОВЛЕНИЕ 1:

Я обновил первоначальный тест до --bs=4K, и история в целом осталась прежней... Действительно ли тестирование на необработанном устройстве действительно?

ОБНОВЛЕНИЕ 2:

Кажется, я получаю другую картину от zpool iostat к фио вывод. я отрегулировал фио test to randion r/w с 64 заданиями, что должно показать тест SSD более «реалистично». Обратите внимание, что у системы нет другой рабочей нагрузки.

На SSD:

fio --ioengine=libaio --filename=/rpool/fio/testx --size=4G --time_based --name=fio --group_reporting --runtime=10 --direct=1 --sync=1 --iodepth =1 --rw=randrw --bs=4K --numjobs=64

чтение: IOPS = 4022, BW = 15,7 МБ/с (16,5 МБ/с)
запись: IOPS=4042, BW=15,8 МБ/с (16,6 МБ/с)


# zpool iostat -вы rpool 5 1
                                                        полоса пропускания операций с емкостью 
пул выделить бесплатно чтение запись чтение запись
--------------------------------------------- -- ----- ----- ----- ----- ----- -----
рпул 216 г 27,7 т 28,1 к 14,5 к 1,17 г 706 м
  raidz1 195 г 13,8 т 13,9 т 7,26 т 595 м 358 м
    ata-INTEL_SSDSC2KB038TZ_BTYI13730BAV3P8EGN-part3 - - 3.60K 1.73K 159M 90.3M
    ata-INTEL_SSDSC2KB038TZ_BTYI13730B9Q3P8EGN-part3 - - 3.65K 1.82K 150M 89.0M
    ata-INTEL_SSDSC2KB038TZ_BTYI13730B9G3P8EGN-part3 - - 3,35K 1,83K 147M 90,0M
    ata-INTEL_SSDSC2KB038TZ_BTYI13730BAT3P8EGN-part3 - - 3,34 КБ 1,89 КБ 139 МП 88,4 МП
  рейдз1 21.3Г 13.9Т 14.2К 7.21К 604М 348М
    сдэ - - 3,39К 1,81К 149М 87,5М
    sdf - - 3.35K 1.90K 139M 86.3M
    сдг - - 3.71К 1.70К 163М 87.8М
    SDH - - 3.69K 1.81K 152M 86.4M
--------------------------------------------- -- ----- ----- ----- ----- ----- -----

На жестком диске:

чтение: IOPS=1382, BW=5531 КБ/с
запись: IOPS=1385, BW=5542 КБ/с

$ zpool iostat -вы рпул 5 1
                                    полоса пропускания операций с емкостью 
пул выделить бесплатно чтение запись чтение запись
-------------------------------- ----- ----- ----- --- -- ----- -----
пул 160G 18.0T 3.07K 2.71K 393M 228M
  зеркало 32,2 г 3,59 т 624 589 78,0 м 40,2 м
    scsi-35000c500de5c67f7-part3 - - 321 295 40.1M 20.4M
    scsi-35000c500de75a863-part3 - - 303 293 37,9 млн 19,7 млн
  зеркало 31,9 г 3,59 т 625 551 78,2 м 49,9 м
    scsi-35000c500de2bd6bb-part3 - - 313 274 39,1 млн 24,2 млн
    scsi-35000c500de5ae5a7-part3 - - 312 277 39.0M 25.7M
  зеркало 32,2 г 3,59 т 648 548 81,1 м 45,9 м
    scsi-35000c500de5ae667-part3 - - 320 279 40.1M 23.0M
    scsi-35000c500de2bd2d3-part3 - - 328 268 41.0M 23.0M
  зеркало 31,6 г 3,59 т 612 536 76,5 м 45,5 м
    scsi-35000c500de5ef20f-part3 - - 301 266 37,7 млн ​​22,7 млн
    scsi-35000c500de5edbfb-part3 - - 310 269 38,9 млн 22,8 млн
  зеркало 32,0 г 3,59 т 629 555 78,7 м 46,5 м
    scsi-35000c500de5c6f7f-part3 - - 318 283 39,8 млн 23,1 млн
    scsi-35000c500de5c6c5f-part3 - - 311 272 38,9 млн 23,4 млн
-------------------------------- ----- ----- ----- --- -- ----- -----

Производительность каждого устройства на жестких дисках выглядит нормально, а твердотельные накопители выглядят примерно в 5 раз быстрее, чем жесткие диски в случайном порядке чтения/записи. Этого следует ожидать? Я ожидал в 10-100 раз быстрее...

Спасибо за внимание!

Nikita Kipriyanov avatar
флаг za
Вы уверены, что хотите использовать механизм ввода/вывода `sync`?
shodanshok avatar
флаг ca
Пересоздайте свой пул с параметром `-o ashift=12`. Кроме того, попробуйте с `recordsize=16K`
simonw avatar
флаг in
Спасибо @shodanshok, ashift равен 12, и установка размера записи на 16 КБ дает те же результаты.
simonw avatar
флаг in
Спасибо @NikitaKipriyanov, те же результаты с libaio.
Romeo Ninov avatar
флаг in
Можно попробовать убрать сжатие пула
simonw avatar
флаг in
Спасибо @RomeoNinov, я пробовал, те же результаты!...
batistuta09 avatar
флаг vn
21k IOPS для 128k блоков не является допустимым результатом для одного твердотельного накопителя SATA. Имеется в виду ок. Пропускная способность 2,6 ГБ/с, что в 5 раз больше, чем у одного порта SATA.
флаг us
Вы не должны использовать RAID с одной четностью, если хотите сохранить свои данные в безопасности.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.