Опять-снова о производительности ZFS

В процессе борьбы за увеличение количества PCI-e слотов в домашнем NAS, взял я кровные 300 баксов и отнес их в лабаз, где и приобрел:

  • 2x4GB памяти DDR3-1600
  • Процессор i3-2120
  • Материнку Gigabyte GA-Z68MA-D2H-B3 (3 длинных PCIe слота, x16, x8 и x4!)
На общую сумму 8800р или что-то вроде этого.

В сравнении с тем что было (Core2Quad Q9300, 8Gb), общий перформанс вырос не слишком сильно. make -j8 buildworld шел 44 минуты, а теперь идет 37. Это на SSD-диске.

А вот на ZFS (RAIDZ, 5 дисков Seagate 3Tb с гигабайтными пластинами) перформанс выстроился так (результаты кроме первого я уже приводил).

Тестирование путем dd if=/dev/zero of=file bs=1G count=50

  • 437 Mb/sec - Core i3-2120, память DDR3-1600 (8Gb, два канала)
  • 360 Mb/sec - Core i7-920, память DDR3-1333 (12Gb, три канала)
  • 280 Mb/sec - Core2 Quad Q9300, память DDR2-800 (8Gb, сколько каналов не знаю)
При этом, вторая система (i7-920) сильно быстрее всех прочих по горшку и, по идее, не сильно медленнее первой по памяти (потому что три канала, а не два).

В этом тесте я все еще не вижу 100% disk load в systat -vm/iostat -x, но к нему стало ближе. Ну и полоса записи на отдельный диск наконец выросла over 100Mb/sec.

Упирается ли оно в CPU - не могу понять. С одной стороны, на всех 4-х (гипертрединг же) CPU idle time в районе 80%. С другой стороны - как эти проценты считаются на HT мне вовсе неясно, может их там не 80, а 40, а из 60% загрузки ту самую половину (которую уже обсуждали) выжирает ZFS (т.е. ядерный код) и еще процентов 10 - прерывания.

При случае, суну эти же диски в ящик с i7-2600K, но случая придется ждать долго. Вопрос на самом деле важный, может быть имело смысл потратить не $300, а $380 и горшок взять покруче, вроде i5-2400S.

Comments

Там же bsd? А какая версия?

9-STABLE
cvsup-ился пару недель назад.

Он эту материнку понял "из коробки"?

Я просто думаю, на что апгрейдить железку под управлением FreeNAS, там сейчас ядро от FreeBSD 9, а вот "доставить драйвера" практически невозможно.

Ну там реалтековский ethernet (который я сразу выключил) и реалтековское аудио (которое распозналось).
USB (и 2 и 3) распозналось как generic.
Про реалтек рассказывают всякое, я и пробовать не хочу.

Я поискал плату с большим количеством SATA, интеловским ether и тремя длинными слотами, нашел асусовский Maximus Gene, поглядел на ценник и брать не стал. Тем более что у нее только HDMI-выход, у меня мониторы без HDMI, а посмотреть что происходит бывает полезно.

А диски потключаются к спец контроллеру или прямо к материнкам?

Прямо к материнкам.

Но, опять же, я не думаю что тут такая уж большая разница. Как я уже писал, скорость zpool scrub примерно одинаковая. Ну может на новой - на 5-10% быстрее, но не на треть.

про top -SH ты ведь знаешь?

Ну а толку.

Вот как интерпретировать CPU time на процессорах с hyperthreading?

надо интерпретровать не cpu time, а имя wait channel, кмк

и, кстати, возможно надо построить модель (мысленную) системы (с учетом дисков), поскольку в рассылказ пиздят, что линейное чтение с зеркала не должно давать двукратного прироста скорости. мне это не понятно

Я первую фразу вовсе не понял. top -SH ничего похожего на wait channel не показывает

Ну и вижу я 4 zio_write_issue и 8 zio_write_intr_N, в поле STATE у них прочерк.

gstat что показывает?

То же самое что systat -vm

В том смысле, что %busy в районе 80% и ~100-110Mb/sec записи.

ну вот тут http://www.pcstats.com/articleview.cfm?articleid=2634&page=5 врут, что 112MB/sec это и есть среднее для данных дисков.
больше тебе получается непололженно

Не, там Barracuda XT, которые с 750G пластинами. На терабайтных быстрее.

Ну и вообще, должно же быть 100% busy

в смысле для 2Г версии, а не для 3Г?
не, оно конечно быстрее, но это всего 8%.
ну я не знаю как они там этот бизи считают, но явно как-то странно.
на два одинаковых wd в зеркале показывают 100 и 60 при всех остальных одинаковых цифрах.
так что с учетом необходимости сика я бы считал, что цифры соответсвуют максимуму с учетом погрешности эксперимента/измерения

Не, совсем разные диски
Barracuda XT 3Tb - это ST33000651AS
А у меня - ST3000DM001

Согласно анандтеху, вторые заметно быстрее: http://www.anandtech.com/show/5042/seagates-new-barracuda-3tb-st3000dm00...
Не на 8%, а на 15

никак

отрубать надо этот HT, поскольку он придуман ради маркетолохов Intel

Да нет.

Вот прямо вот на практике ощутил от него толк: http://blog.lexa.ru/2012/04/10/o_novykh_tekhnologiyakh.html

тестовый кусок слишком мал - IMHO память тестили ?
так 1333 быстрее :) в 920 еще и не удачный контроллер памяти, в 1155 его сильно переделали.
Вот 2011 сравнить было бы интересно (у меня нет ни одного на 2011 :( )

Нормальный кусок, в разы больше памяти. 100G пишутся с той же скоростью.
Собственно, уже начиная с 3xRAM все стабилизируется.

А 2011 в этот ящик я ставить категорически не буду, одной из задач было с 95-ваттного процессора спуститься на 65-ваттный. Зимой ничего еще, а летом этот ящик, живущий в шкафу, работает на пределе разумного.

Я не против :)
Интересно просто, я в свое время один и тот же 4x500sata набор RAIDZ1 таскал между разными серверами и выявил очень прямую зависимость от памяти. Пара зеонов на ddr1 ecc reg уступала селерону с ddr2-800

Да, мне тоже кажется, что дело в памяти.

Но при этом - понять бы в каком ее измеряемом месте. Потому что именно по памяти этот новый i3 не кажется мне сильно быстрее i7. Вот по кэшу, да, разница может быть очень большой.

IMHO
латентность и скорость
на i3 она шустрее, чем на 920

i3 920
System Bus 5 GT/s 4.8 GT/s
Memory Types DDR3-1066/1333 DDR3-800/1066

По факту оба поддерживают DDR3-1600.

а чем смотрели ?

Э, ну как бы BIOS не врет?

Memtest тайминги памяти показывыает, Макосовский System Profiler, всякие CPU-Z.

Т.е. я вообще не припомню случая, чтобы поставищь значит памяти частоту 1600 и какая-то тулза показала бы что-то не то, что поставил.

Оторвал от семьи, от детей $300! И не стыдно? ;-)

imho жить нонче экономически выгодно над памятью
Ибо 4*8Gb ddr3 четырьмя палками в $250 обходится.

Нет, не стыдно, детям-семье еще осталось.
Что же до памяти, то я и на 8G вижу очень хорошее попадание в ARC, дальше растить большого смысла нет.

С этого ящика раздается кино (и там, понятно, и так всего хватало) и туда-оттуда пишутся бэкапы. Вот для бэкапов важно, 250Mb/sec или 450, но там объемы такие, что и 8 и 32G кэша не видны практически.

А какая нафиг разница как быстро пишутся backup's?! По мне так куда приятнее поставить в сеть какую-нибудь небольшую дисковую коробку с линкусом внутри (типа wd live book duo) и *в ней же* запустить скрипт, чтобы сам тупо backup'ы писал.

Вдобавок такие ящики напрямую подключаются к вумным зомбоящикам. И не шумит ;-)

Большая разница - пока зеркалируется бэкап (с локального массива на удаленный) создавать еще один большой поток IO на этот локальный массив просто нельзя, все заклинит.

И разница вчетверо (на 1G эффективная скорость была в районе 90Mb/sec, а стала сейчас за 350) - это большая разница.

Ну тут вопрос что именно делать. Если машина домашняя и poroduction db на ней нету, то lazy backup вполне приемлимое решение. Например у меня backup домашнего на работу запускается по xscreensaver'у ;-)

Проблема решения со скринсейвером в том, что чем больше я (в предыдущие дни) работал, тем меньше шансов получить актуальное зеркало бэкапов. Т.е. мне оказалось проще грубой силой.

Плюс, у акрониса dual destination устроен именно так, что едет оно сразу. Оно может и неидеально, но конструкция работает (и ресториться с нее получается, много раз уже пробовал), отчего улучшать ее не хочется совсем.

А с грубой силой все просто: зеркалируется 150-200Gb. При 90Mb/sec - это полчаса, при 360Mb/sec - соответственно 7 минут.
Полчаса - приходится терпеть и смотреть, чтобы какой-нибудь тест не запустился на сотне гигабайт фото. А 7 минут - можно просто пойти на кухню и кофе жахнуть.

ночью все прекрасно делается и никто процессу backup не мешается

WS ночью не работает. Так повелось.

Кстати, а какой у тебя акронис и как оно настроено/устроено?

А то я пока живу на Norton Ghost, но начинаю подумывать с него свалить.

PS Мне бэкапить именно что системный диск, образом целиком, с софтом.

(Advanced) Workstation
Бэкапится на dual destination - локальный диск и на самбу. Ханойской башней.
Самбу временами приходится чистить т.к. старые копии не стираются (с локального диска - стирается).

Уже года три так живу и вполне доволен (восстановление работает, проверял!)

Ханойской башней - в смысле, сначала бейзлайн, а потом только изменения?

Ну да, 4 уровня, примерно недельный цикл.

Еще один (внезапно пришедший в голову) вопрос: а оно умеет создавать кастомные загрузочные диски (т.е., докладывать драйвера). А то у меня аппаратный рейд, винда из коробки его не видит, играть в чехарду с "вставьте диск с драйвером" не хочется. Ghost так умел.

Ну и до кучи - умеет ли оно создавать recovery-раздел на самом ЖД, чтобы можно было при загрузке винды сделать восстановление?

Их ресторилка - вообще ресторит из линукса т.е. при восстановлении на ту же машину проблем нет.

Ну и есть Advanced-хрен-знает-что, которая умеет восстановить на другую машину (с другими драйверами), но я так не пробовал.

Recovery на самом ЖД - кажется есть в Home-версии. В корпоративной (workstation) - вроде такого (с мультибутом) - нету. Я гружусь с их сидюка, а собственно бэкапы имею на одном из разделов ЖД вместе с другими файлами

Вопрос в том, откуда их ресторилка, которая из линукса, возьмет драйвера для рейда.

В линуксе этого добра много.

Никакого "Advanced" там нет. Технология замены дров называется "Universal Restore". И да, в некоторых случаях тоже, естественно, требует дрова, но можно юзать CD или что угодно другое.