FreeBSD ZFS read speed: они убили кенни!

Вчерашний вечер у меня тоже прошел не скучно.

Я взял уже знакомый вам стенд:

  • i5-2400, 16GB RAM
  • LSI 9211-8i (FW 16.0, IT-mode, без BIOS)
  • 7 дисков WD1003FBYX

И начал делать так:

  1. Скачиваю с ftp.freebsd.org FreeBSD-NN.y-RELEASE-amd64-memstick.img
  2. Пишу его на флешку
  3. Загружаюсь с этой флешки (никаких дополнительных настроек!)
  4. Собственно тестирую:

zpool create -O recordsize=nn ztest raidz2 /dev/gpt/DISK[0-5/6]
zfs create ztest/pool
dd if=/dev/zero of=/ztest/pool/100gfile bs=1m count=100k
dd if=/ztest/pool/100gfile of=/dev/null bs=1m

Ну и записываю результаты в тетрадочку Excel

Были протестированы:

  • FreeBSD 10.1, 10.2, 10.3, 11.0, 12-20161130-r309302
  • raidz2 из 6 и 7 дисков
  • recordsize=128k и =1m (вторая - начиная с 10.2, ибо раньше не поддерживается).

Результаты в таблице:

 

6x HDD, RAIDZ2

7x HDD RAIDZ2

 

Write
MB/s

Read
MB/s

Write
MB/s

Read
MB/s

recordsize=128k

FreeBSD 10.1

439

441

633

599

FreeBSD 10.2

461

438

563

557

FreeBSD 10.3

469

466

563

614

FreeBSD 11.0

503

462

610

618

12.0-20161130

380

189

415

206

recordsize=1m

FreeBSD 10.1

N/A

N/A

N/A

N/A

FreeBSD 10.2

462

531

566

637

FreeBSD 10.3

461

504

557

626

FreeBSD 11.0

507

521

621

659

12.0-20161130

515

203

627

281

Cобственно, о чем вчера вечером и писалось уже в комментариях: в FreeBSD-CURRENT сломано однопоточное чтение (и лечится оно - увеличением vfs.zfs.zfetch.max_distance до очень больших значений. Кроме того, если сравнивать с предыдущими релизами, то сломана еще и запись блоками в 128к

Comments

Там в src/UPDATING специально для вас есть абзац на тему "почему так меееедленнооо?".
Я не утверждаю, что в 12 всё хорошо, но так выполнять тестирование как-то неправильно, могут ведь и в phoronix завербовать.

В соседнем треде уже отвечал и Белоусову уже отвечал и еще отвечу.

мемстик - понятно, он с отладкой (мемстик взял чтобы быть уверенным, что мои настройки никак не влияют). Но до того я тестировал
GENERIC (с отладкой)
GENERIC-NODEBUG (без отладки)
GENERIC-NODEBUG + увеличенный maxphys (потому что были подозрения что драйвер слишко мелко режет)

И абсолютно одна херня.

https://svnweb.freebsd.org/base/head/UPDATING?view=co :

"NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW"

Нет?

Нет.
Вот 11.0/11-STABLE (которые без INVARIANTS): http://blog.lexa.ru/2016/12/06/freebsd_zfs_read_11_stable_tozhe_polomana...

Проблема, похоже, вообще в disk layout при записи т.к. файл записанный кривой версией - читается прямой версией медленно.
А если записать прямой - то хорошо.