dadv: (Default)
Choose your future ([personal profile] dadv) wrote2010-10-22 08:46 pm
Entry tags:

Новая игрушка


# usbconfig | tail -1
ugen4.4: <Ext HDD 1021 Western Digital> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
# dmesg | egrep '^da0|Western'
ugen4.4: <Western Digital> at usbus4
umass0: <Western Digital Ext HDD 1021, class 0/0, rev 2.00/20.02, addr 4> on usbus4
da0 at umass-sim0 bus 0 scbus1 target 0 lun 0
da0: <WD Ext HDD 1021 2002> Fixed Direct Access SCSI-4 device
da0: 40.000MB/s transfers
da0: 1907727MB (3907024896 512 byte sectors: 255H 63S/T 243201C)

Отличие коммерческих двух терабайт от настоящих - 184.9 гигабайта (настоящих).

# dd if=/dev/da0 bs=8m of=/dev/null count=100
100+0 records in
100+0 records out
838860800 bytes transferred in 24.654196 secs (34025072 bytes/sec)

# dd of=/dev/da0 bs=8m if=/dev/zero count=100
100+0 records in
100+0 records out
838860800 bytes transferred in 31.245817 secs (26847139 bytes/sec)

Чтение - 32MB/s с небольшим, запись 25.6MB/s. 53% и 42.7% от "теоретического максимума" в 60MB/s по USB 2.0 соответственно, и это в начале диска.

foreground fsck по такой заполненной файловой системе будет длиться вечность, background fsck попытается сделать snapshot и умрет, gjournal при массированной записи уменьшит скорость в два? в три раза? (записать в журнал, прочитать с журнала, записасть на раздел) SUJ в восьмерке нету и что-то не похоже, чтобы собиралось стать. Для ZFS надо больше 2G памяти и amd64, иначе нет смысла.

Всё плохо :-)

Update: http://dadv.livejournal.com/117561.html?thread=229945#t229945

[identity profile] dmarck.livejournal.com 2010-10-22 02:12 pm (UTC)(link)
SUJ for stable/8 вроде как был в виде external patch:

http://groups.google.com/group/mailing.freebsd.stable/msg/b8bc0ed4d72b7cb0

[identity profile] dadv.livejournal.com 2010-10-22 04:59 pm (UTC)(link)
http://lists.freebsd.org/pipermail/freebsd-current/2010-January/014811.html

You must disable softupdates on all filesystems
before rebooting with the SUJ kernel. It is presently not backwards compatible with softupdates without journaling but I will fix that soon.

Оно уже fixed или всё ещё надо отключать softupdates? Я не собираюсь делать это на живых fs :-)

[identity profile] dmarck.livejournal.com 2010-10-22 05:01 pm (UTC)(link)
На живых-то и не надо -- при newfs, или ты уже туда тера портола полезного понаписал? ;-P

Upd: Но спокойствия ради у Андрица я б спросил отдельно.
Edited 2010-10-22 17:02 (UTC)

[identity profile] dadv.livejournal.com 2010-10-22 05:50 pm (UTC)(link)
Не написал. Anyway, после прикладывания patch -N < suj-stable8-r208287-1.diff к сегодняшней RELENG_8 не собирается ядро. Копаться самому не хочется, мне вообще SUJ очень нравятся идеологически, но мне очень не нравится жить с таким крупным патчем.

[identity profile] karpion.livejournal.com 2010-10-22 10:10 pm (UTC)(link)
(записать в журнал, прочитать с журнала, записасть на раздел)
А зачем читать с журнала? IMHO, аписи в журнал копятся пока влезают в буфер в памяти, потом приём операций записи приостанавливается, и записи переносятся в раздел.

dd if=/dev/da0 bs=8m of=/dev/null count=100
Интересно, а как зависит скорость от bs?

[identity profile] dadv.livejournal.com 2010-10-23 08:38 am (UTC)(link)
> аписи в журнал копятся пока влезают в буфер в памяти, потом приём операций записи приостанавливается, и записи переносятся в раздел

Ну, значит только в два раза падение скорости, на USB очень существенно. На SATA я с этим не парюсь, ага.

> Интересно, а как зависит скорость от bs?

Оно всё равно там шинкуется по максимальному размеру блока в шине, если делать мельче чем 64K, будет падать ещё.

[identity profile] dadv.livejournal.com 2010-10-24 02:52 pm (UTC)(link)
> Интересно, а как зависит скорость от bs?

Блоками по 1k - 2.5MB/s

# dd if=/dev/zero bs=1k of=/dev/da0 count=100000
79625+0 records in
79624+0 records out
81534976 bytes transferred in 30.477443 secs (2675256 bytes/sec)

Блоками по 4k - 7.4MB/s

# dd if=/dev/zero bs=4k of=/dev/da0 count=50000
50000+0 records in
50000+0 records out
204800000 bytes transferred in 26.115226 secs (7842168 bytes/sec)

Блоками по 16k - 17.5KB/s

# dd if=/dev/zero bs=16k of=/dev/da0 count=50000
50000+0 records in
50000+0 records out
819200000 bytes transferred in 44.433939 secs (18436358 bytes/sec)

Блоками по 32k - 22.5MB/s

# dd if=/dev/zero bs=32k of=/dev/da0 count=20000
20000+0 records in
20000+0 records out
655360000 bytes transferred in 27.681572 secs (23674956 bytes/sec)

Блоками по 64k - 25.8MB/s

# dd if=/dev/zero bs=64k of=/dev/da0 count=10000
10000+0 records in
10000+0 records out
655360000 bytes transferred in 24.131636 secs (27157711 bytes/sec)


Для 128K скорость уже не растет.

Но я читал, что размер фрагмента FS в нынешней FreeBSD делать больше, чем размер страницы памяти на процессорной архитектуре чревато фрагментацией KVA и паникой в перспективе. С этой точки зрения для i386 получаем максимальный размер фрагмента 4K, а размер блока рекомендуется делать в 8 раз больше, то есть 32K, а не 64K. То есть, входящая закачка на 180Mbps загрузит UFS/32K на этом диске полностью :-) Даже без gjournal.

На самом деле у меня интерфейс 100M на железке будет и не страшно.

[identity profile] blacklion.livejournal.com 2010-10-24 10:11 am (UTC)(link)
Чтение - 32MB/s с небольшим, запись 25.6MB/s. 53% и 42.7% от "теоретического максимума" в 60MB/s по USB 2.0 соответственно, и это в начале диска.
Больше 32Mb/s я не видел ни в одном тесте ни одного USB2.0 накопителя ever, так что тут всё в порядке. 25.6 на запись маловато, да :)

[identity profile] dadv.livejournal.com 2010-10-24 02:53 pm (UTC)(link)
http://dadv.livejournal.com/117561.html?thread=229945#t229945

[identity profile] blacklion.livejournal.com 2010-10-24 03:04 pm (UTC)(link)
Я к тому, что на проценты ссылаться не очень важно :)