O ZFS performance

Подтверждается старое правило: чем гуще горшок, тем пуще ZFS

Переставил новый массив из тестовой машины (i7-2.67Ghz) в несколько более медленную (Core2Quad Q9300 @2.5) и сразу вместо 350-360Mbyte/sec на запись получил 250-280.

На скорость диска не могу грешить, zpool scrub в обеих машинах в начале процесса рапортует в районе 500Mb/sec:

 pool: zdata
 state: ONLINE
  scan: scrub in progress since Tue Mar 20 14:40:34 2012
        782G scanned out of 7,84T at 507M/s, 4h4m to go
        0 repaired, 9,74% done

Собственно, не секрет, и недавно обсуждали, и давно тоже: от перехода c С2D 1.86 на C2Q 3.06 наступает счастье.

Ну, значит пора этому C2Q на покой. Никому не нужна материнка (Micro-ATX, 1xPCI, 2xPCIe1x, 1xPCIe 16x)+процессор+8Gb DDR2-памяти? Махнусь на 12Gb DDR3 в фасовке по 4Gb!, уже неактуально.

Comments

В Питере я бы махнулся не глядя... Как раз апгрейд севреру за 2500р -- нефигово.

вот у меня Q8400 с 8гб памяти и я не вижу что бы утилизация его была запредельная
при выполнении dd if=/dev/zero of=file bs=1M count=20000
вижу нагрузку 50-60%
скорость при этом 220Мб/с на запись
но у меня диски 5900rpm
есть у меня конечно комплектик на i7-930, но как-то жаба душит его на NAS пускать...

я тоже не вижу 100% утилизации даже у одного ядра (не понимаю, что у ZFS с мноопоточностью).
А вот эффект - вижу.

Помимо горшка, еще есть memory bandwidth, разница у двух этих систем - вдвое: http://blog.lexa.ru/2011/09/08/opyat_pro_movntps.html

с многопоточностью там очень даже всё зашибись!
вот системка в простое
http://s018.radikal.ru/i522/1203/95/f0cfb1dd8cef.jpg
а вот при генерации 20Гб файла
http://s017.radikal.ru/i419/1203/e8/9a0555e149af.jpg

Ага, да, увидел (top -P).

Только вот у меня system на каждом из ядер выше 50% не поднимается. Да, может быть 70 в одну секунду, но тогда в следующую будет 20, среднее все едино около 50.
Может ли там быть ограничение "больше чем полгоршка не занимать"?

Я завтра или в выходные палюбому попробую i7-920 пересадить в этот NAS, в рамках плановой ротации.

ага, сильно на "полгоршка" похоже
хотя и непонятно для какой цели
930 ставить в NAS - он же собака электричество кружками жрёт
хочется таки сделать экономичную систему
я тут у Tyan-a материнку углядел, аж чуть в слюнях не захлебнулся
мечта лучших NAS-оводов! ;)
http://www.tyan.com/product_SKU_spec.aspx?ProductType=MB&pid=700&SKU=600...

Ну в NAS он будет жрать когда туда льешь (оттуда выливаешь), это не так и много по времени.

А с мамкой - я не понимаю в чем ейный кайф.

интегрированный 8 портовый
Controller LSI SAS2008
Speed 6.0 Gb/s

AST2150 IPMI Feature
AST2150 iKVM Feature

4 гигабитные сетевухи Intel (для дома малоактуально конечно)

(1) PCI-E Gen.2 x16 slot (w/ x8 link)
(1) PCI-E Gen.2 x8 slot (w/ x8 link)
(1) PCI-E Gen.2 x8 slot (x4 link , but SAS SKU W/O )
(2) PCI-E Gen.2 x1 slot2

Не, там или SAS или 4 сетевухи, но не оба сразу.
Какбэ с ATX-размером проблем то нет, матерей с 6-7 слотами полной длины навалом.

и то и другое интегрировано в мать
поглянь на картинки
ага вижу - если SAS то сетевухи только 2

Цена только, я боюсь, как у вертолёта.

$400 вариант с SAS, 300 - без SAS. Довольно адекватно.

zpool status покажь -- raidz ведь небось?

Ну да, raidz:
pool: zdata
state: ONLINE
scan: scrub canceled on Tue Mar 20 15:24:39 2012
config:

NAME STATE READ WRITE CKSUM
zdata ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ada4 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada1 ONLINE 0 0 0
ada5 ONLINE 0 0 0
cache
gpt/zfs-cache ONLINE 0 0 0

(l2arc на ssd, хочу посмотреть есть ли толк от одного)

Интересно, а какое этому факту может быть объяснение? Не, ну что C2D проц не в состоянии прокачать 300MB - бред ведь?

Ну там еще контрольные суммы посчитать, кроме того parity (или как оно у RAID5 называется) блоки.
System честно лежит в районе 50% когда dd if=/dev/zero of=file делаешь, при этом диски не на 100% по загруженности.

С освободившимися дисками я поэкспериментирую на тему stripe (из трех) vs raidz (из четырех)

Судя по всему надо где-то искать ручку, которая ограничение 50% уберет.

Я заменил горшок (+материнку и память), system упала до 25%, скорость выросла до тех самых 350-380.

Сдается мне, что 50% вообще случайность, а ограничение было в районе memory bandwidth (коя у C2D/C2Q конечно весьма так себе)

Погоди, а если процесс уперся в память - разве не 100% загрузки должно получиться?

1. Я плохо знаю, как в FreeBSD считаются эти самые процентики.

2. И не только в FreeBSD, но и в винде. Ну то есть я 100% понимаю и 0%, а что там в промежутке в этой шкале - знаю плохо.

3. В винде - много раз видел, как плохая имплементация OpenCL для CPU (старая AMD-шная, они сейчас ее сильно улучшили) - старается, молотит из всех сил (а там никакого IO, только процессор и память) - а загрузка ядер ну процентов 10-15. Как не складывай, даже на одно полностью загруженное ядро не набегает.

Как такое может быть?

4. Это не говоря о всяких DMA. Запускаешь ея и ждешь. Загрузка скока, ноль?

А органолептически - вот поставил систему где память втрое быстрее (CPU - не настолько быстрее), получил падение загрузки вдвое (по процентам) и рост попугаев на треть. С идеей про упор в bandwidth сходится.

Точно, я сравнивал пару старых xeon на 266 регистровой ddr с core i5 750 - на тех же дисках скорость в разы выше на core i5.

А в денежком эквиваленте чего хотите за мать-проц-память?

Уже ничего, пристроил.

Спасибо что напомнили, сейчас в посте зачеркну.