LINUX.ORG.RU
решено ФорумAdmin

slow read / fast write. wtf?

 , ,


2

2

Балуюсь OpenIndiana и ZFS. Наткнулся на непонятную мне вещь: чтение с диска у меня почему-то в 2x раза медленне записи!?

Проверял dd:

zero -> disk: 1048576000 bytes (1.0 GB) copied, 7.36276 s, 142 MB/s
disk -> null: 1048576000 bytes (1.0 GB) copied, 12.7403 s, 82.3 MB/s
disk -> disk: 1048576000 bytes (1.0 GB) copied, 41.2035 s, 25.4 MB/s
zero -> null: 1048576000 bytes (1.0 GB) copied, 0.113213 s, 9.3 GB/s

Перепроверял несколько раз, значения всегда одни и теже.

Под капотом SSD. Сам SSD должен выдовать до ~500Mb/s туда и обратно на SATA-III.

Тестовая шарманка, правда не новая (Core2/ICH7). Т.ч. если предположить SATA-I (1.5 Gbit/s), то запись вроде попадает в параметры.

Но вот с чтением что за бодяга?

Я что-то не понимяю? Кто виноват? Сам SSD, ZFS, bridge или SunOS? Куда копать?

cast riki

UPD: пепел на мою голову, забыл blocksize при тесте с диска в ноль. Новые результаты: slow read / fast write. wtf? (комментарий) (bs=1M)

★★★★★

Последнее исправление: beastie (всего исправлений: 4)

Есть подозрение что оно пишет в кеш, но когда читает, то реально читает. Ну по крайней мере частично.

Тем более что ты пишешь нули и если там компрессия, то ну ты понял, даже маловато что-то

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от beastie

Ну насколько мне известно ZFS - катастрофическии тормозная файловая система. Когда я себе ставил - так и было. Такая же скорость

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)
Ответ на: комментарий от vertexua

Ну вот, а том столько вкусняшек! Собирался себе NAS на ZFS строить. А тут такое... Может всё таки у меня руки кривые?

beastie ★★★★★
() автор топика
Ответ на: комментарий от sdio

FreeBSD — это запасной вариант. Мне для начала захотелось поиграться с «оригиналом». (Если не ошибаюсь, это всё ещё референсная имплементация.)

Да и от солярки таким матёрым энтерпрайзом пахнет. Не всё же на пионерских линуксах сидеть, надо ведь и дальше развиваться. :D

beastie ★★★★★
() автор топика
Ответ на: комментарий от smilessss

типичное решение всех линуксопроблем. Виновато железо!

Xegai ★★
()

Еще ходили легенды что можно разметить диски как-то не с того кластера и всякие WD начинают адово тормозить

vertexua ★★★★★
()
Ответ на: комментарий от vertexua

Дадада, сохнанность, комрессия, дедуплекация, снапшоты, локальные бекапы... именно всё это и хотеть.

Но... это планируется, как замена самбовской файлопомойки на 20T. И оно должно быть быстрым, как минимум на чтение.

Хотел собирать гибрид из HDD и SSD (как l2arc). А тут с чистым SSD уже такое непонятное. :/

beastie ★★★★★
() автор топика
Ответ на: комментарий от vertexua

разметить диски как-то не с того кластера

Выравнивание по секторам? Это имхо не только wd идёт на помощь.

beastie ★★★★★
() автор топика

Проверял dd:

Сейчас проверил свой raidz,
dd if=/zstorage/file.img of=/dev/null
скопировано 21474836480 байт (21 GB), 308,379 c, 69,6 MB/c

Но это фигня какая-то, ибо по гигабитной сетке, с того же пула, сливается со скоростью 100 MB/c.

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)

OpenIndiana is a robust enterprise operating system,

о. а мужики то и не знают.

darkenshvein ★★★★★
()

Про тормознутость ZFS это какие-то древние мифы. Ну и выкини солярку, ZFS на линухе уже давно стабилен как танк и достаточно быстр:

# dd if=/dev/zero of=/zfs/test.bin bs=16M count=1024
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB) copied, 131.979 s, 130 MB/s

# dd of=/dev/null if=/zfs/test.bin bs=16M
1024+0 records in
1024+0 records out
17179869184 bytes (17 GB) copied, 130.269 s, 132 MB/s
Это RAID-Z из 4 винтов 5400 оборотов, причем они перед тем как отдать их ZFSсу были зашифрованы через dm-crypt.

Юзаю его дома на сервачке-хранилке уже года 3 - ни единого разрыва :)

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

fuse? Нет, спасибо, не надо. Поставлю может быть ещё Free на туже железку, посмотрю, как оно там будет.

Но хочется всё таки разобраться. Метаться от одной OS к другой — это не мой стиль.

beastie ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

И о чём этот тест?

dd if=/dev/zero of=/zstorage/test.bin bs=16M count=1024
1024+0 записей получено
1024+0 записей отправлено
скопировано 17179869184 байта (17 GB), 9,16867 c, 1,9 GB/c

dd of=/dev/null if=/zstorage/test.bin bs=16M
1024+0 записей получено
1024+0 записей отправлено
скопировано 17179869184 байта (17 GB), 3,99247 c, 4,3 GB/c

King_Carlo ★★★★★
()
Ответ на: комментарий от beastie

fuse? Нет, спасибо, не надо.

Не fuse, а модуль ядра - zfsonlinux.org

King_Carlo ★★★★★
()
Ответ на: комментарий от blind_oracle

О пчёлах, вестимо.

Понятно, а я грешным делом подумал, что о производительности процессора.

King_Carlo ★★★★★
()
Ответ на: комментарий от beastie

fuse?

Присоединяюсь к ораторам выше - вылезай из криокамеры. Я уже 2 года пользую, а до этого оно еще где-то год точно было более-менее пригодным для тестов.

По ссылке:

The native Linux kernel port of the ZFS filesystem.

Pinkbyte ★★★★★
()

Срачь отменяется, это я дурак (посыпаю голову пеплом) — забыл при тесте с диска в ноль указать blocksize. Grrr...

zero → disk: 1048576000 bytes (1.0 GB) copied, 7.06547 s, 148 MB/s
disk → null: 1048576000 bytes (1.0 GB) copied, 0.700701 s, 1.5 GB/s
disk → disk: 1048576000 bytes (1.0 GB) copied, 12.6238 s, 83.1 MB/s
beastie ★★★★★
() автор топика
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от vertexua

Ну насколько мне известно ZFS - катастрофическии тормозная файловая система. Когда я себе ставил - так и было. Такая же скорость

На линуксе?

snaf ★★★★★
()
Ответ на: комментарий от EvgGad_303

zdb | grep ashift

            ashift: 9

prtvtoc /dev/dsk/c4t0d0s0

* /dev/dsk/c4t0d0s0 partition map
*
* Dimensions:
*     512 bytes/sector
*     126 sectors/track
*     255 tracks/cylinder
*   32130 sectors/cylinder
*   60799 cylinders
*   60797 accessible cylinders
*
* Flags:
*   1: unmountable
*  10: read-only
*
* Unallocated space:
*       First     Sector    Last
*       Sector     Count    Sector 
*           0     32130     32129
*
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00      32130 1953375480 1953407609
       2      5    01          0 1953407610 1953407609
       8      1    01          0     32130     32129

beastie ★★★★★
() автор топика
Ответ на: комментарий от beastie

ashift: 9

Это, вроде как, не правильно для hdd c 4096 байт на сектор.
У меня вот так:

zdb | grep ashift
ashift: 12

Создавал массив так:

zpool create -o ashift=12 zstorage raidz /dev.../dev../

King_Carlo ★★★★★
()
Последнее исправление: King_Carlo (всего исправлений: 1)
Ответ на: комментарий от King_Carlo

У меня SSD. С HDD ещё не пробовал. Специально не настраивал. Т.ч. значение с автомата.

ref: http://zfsonlinux.org/faq.html#HowDoesZFSonLinuxHandlesAdvacedFormatDrives

beastie ★★★★★
() автор топика
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

ashift: 9

вот. для ssd и 4к дисков должно быть 12. пропиши в sd.conf что твой диск 4к, раз он сам не распознаётся или, как уже отписали, при создании указывай.
таблица разделов тоже не выровнена, первый сектор 256 ставь.

EvgGad_303 ★★★★★
()

попробуйте нормальный бенчмарк. бони, иозон.

ipeacocks ★★★★★
()
Ответ на: комментарий от beastie

EvgGad_303, King_Carlo, можно ещё другой вопрос?

Я сходу (и после гугления) не разобрался, как поставить в систему сырцы. Где их можно найти, и как это сделать?

Поясню: мне надо пересобрать ntpd, иначе он спамит в консоль, что не может прибиндится к ipv6 интерфейсу.

ref: https://www.illumos.org/issues/4603

beastie ★★★★★
() автор топика
Ответ на: комментарий от beastie

system/header нужен тебе, ну и gcc и ко разумеется. а вообще посмотри на omnios, мне больше чем oi втыкает. и это, датапул когда создавать будешь, отдай ему весь диск cxtxdx.

EvgGad_303 ★★★★★
()
Последнее исправление: EvgGad_303 (всего исправлений: 1)
Ответ на: комментарий от EvgGad_303

Спасибо, завтра гляну. (Сейчас уже дома.) Omnios тоже гляну.

Приглянулась мне солярка. Настораживает только, что у oi за 3 года практически ниодного релиза не было (если исключить a9).

beastie ★★★★★
() автор топика
Ответ на: комментарий от beastie

то у oi за 3 года практически ниодного релиза не было

есть такое. потому и нравится omnios, что они её сами в проде используют и сами же и пилят. есть 3 ветки - lts, stable и bloody. в bloody пакеты обновляются почти каждую неделю, lts - это что-то типо Ъсолярки, хотя и на stable глобальных косяков не замечал.

EvgGad_303 ★★★★★
()
Последнее исправление: EvgGad_303 (всего исправлений: 1)
Ответ на: комментарий от bhfq

Я уже выше отписался, что это был my fault — забыл bs при тесте.

beastie ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

Это RAID-Z из 4 винтов 5400 оборотов, причем они перед тем как отдать их ZFSсу были зашифрованы через dm-crypt.

Держите наркомана четверо.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от bhfq

Вах Вах, как грубо. Там ценные данные, которые не должны попасть в руки врага.

blind_oracle ★★★★★
()

а сколько оперативы-то имеется?

vxzvxz ★★★
()

вот мои тесты (пул двойное зеркало, аналог raid - 10):

time ( for i in `seq 1 10`; do (dd if=/dev/zero of=$i.txt count=1000 bs=1M ; sync ) done )
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,70612 c, 615 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,81162 c, 579 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,83616 c, 571 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,5839 c, 662 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,87686 c, 559 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,55712 c, 673 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,61719 c, 648 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,61135 c, 651 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,62794 c, 644 MB/c
1000+0 записей считано
1000+0 записей написано
 скопировано 1048576000 байт (1,0 GB), 1,80258 c, 582 MB/c

real	0m38.739s
user	0m0.028s
sys	0m9.073s

даем нагрузочку:

dbench -D . 25
Throughput 152.624 MB/sec  25 clients  25 procs  max_latency=1285.325 ms

hdparm -tT

Timing cached reads:   9150 MB in  2.00 seconds = 4577.39 MB/sec
Timing buffered disk reads: 1922 MB in  3.00 seconds = 640.15 MB/sec

vxzvxz ★★★
()
Ответ на: комментарий от beastie

как поставить в систему сырцы

Я в солярке 0, у меня zfsonlinux.

King_Carlo ★★★★★
()
Ответ на: комментарий от vxzvxz

а сколько оперативы-то имеется?

Тестовая машинка, там только 2 гига.

дедуплекация — не рекомендую

Почему?

beastie ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.