May 16th, 2010

404

Многопоточный эректильно-функциональный измеритель

Я нашёл-таки в репозитории дебиана нужный мне МЭФИ с иопсами: tiobench.

Насколько он хорош пока не знаю, играюсь на локальной машине..

Вывод "by default" довольно неплох:

Collapse )
Ушёл читать ман.
404

Тест

Для начала я осваиваюсь с tiobench'ем.

имеем: RAID60 (60 hdd, 8 second level devices), делаем на нём ...хм.. файловую систему в 2Тб, для начала ext3).

тест самих FS мы проведём позже. Пока... [заметка для себя: продумать совмещение слайсов рейда и мнения об этом файловой системы].

Итак, примерный тест:

tiobench --dir /mnt --numruns 3 --block 4096 --block 8192 --block 16768 --block 32768 --block 65536

(Алсо, время создания ext3 на 2Тб - вполне себе бенчмарк тоже, кажется...)


... упс, кажется, проблемы...

Collapse )
404

повышение пропускной способности...

Утренний разговор меня натолкнул на мысль: с рейда идёт всего 3 (2?) SAS шины к винтам, таким образом, максимальная пропускная способность интерфейса сильно ограничена.

И я решил (пусть наивно) попробовать сделать свой рейд (стрип) из нескольких рейдов на разных шнурках.

Схема простая: 4 рейда 60 по 12 дисков каждый, объединяются в рейд 0 силами mdadm.


ХОХО! Я это сделал.

Вы не поверите, но оно выдало 820Мб/с линейной скорости чтения, и 600Мб/с линейной скорости записи. [это реальность: 820МБ/с].

Завтра я уточню, сколько каналов используется (вероятнее всего, всё-таки три, а не два). Если так, то товарищам из адаптека нужно будет задать вопрос с пристастием: что ж это такое за ситуация, когда софтовый рейд на 30% обгоняет лежащий под ним (!) хардварный рейд?

... Более того, я подумываю о построении чисто софтового зеркала из нескольких 6к, вместо 60ки...

Собственно, сказано, сделано. 4xRAID 6 по 12 дисков, каждый рейд в своём enclosure.

... Так, линейная скорость чтения - 850Мб/с. Линейная скорость записи 650Мб/с

Практически теоретический предел для чтения для трёх каналов SAS. 850-900=50Мб/с (оверхед? QoS?) Запись (при избыточности 2/12) 650*1.17=760Мб/с, чуть хуже ожидаемого [лимит рейда]?

Вобщем, в поденельник пойду доказывать, что нужно четвёртый enclousure цеплять в два канала, тогда можно будет скорость догнать под теоретический предел в 1200Мб/с (вероятнее всего, будет в районе 1110), заодно, получим банансировку нагрузки: винты дают линейно 110, 110*12=1320, как раз с некоторым запасом на лаги.

[Кстати, мысль: скорость на стрипе из ТРЁХ рейдов (по каналам) должна быть строго аналогичной (а то и выше) 4х каналов].

... Но тут есть ещё одна интересная мысль: RAID60 позволяет в хардварном рейде указать количество 'secondary arrays', если правильно подобрать число....

(ушёл проверять)

Адаптек всё-таки фейл. Пробую уменьшить число рейдов для софтового стрипа...
404

Та у кринку не лизе!


Свадьба в украинском селе. Окончилась. Батьку ложится спать, тут стук в окно.
-"Кто там?"- це я, батьку, твий сынку!
-" А що зробылося? - Та не лизе , батьку! - Як не лиэе? - Та в манду не лизе!- Та иди в сарай ,макни в кринку со сметаною!
прошло пол часа.
Стук в окно.
-"Кто там?"- це я, батьку, твий сынку!
-" А що зробылося? - Та не лизе , батьку! - Як не лиэе? - Та у кринку не лизе!


Теперь о сути вопроса:

device= RAID6 (32 HDD), 27.27Tb

При попытке сделать dd, dd замирает, если его прибить, пишет что-то вроде:

dd of=/dev/sdb of=/dev/null bs=4k
^C0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00944 s, 0.0 kB/s


А в dmesg вот такая строчка:
[  435.140930] sd 0:0:1:0: [sdb] Very big device. Trying to use READ CAPACITY(16).
[  435.140930] sd 0:0:1:0: [sdb] 58572574720 512-byte hardware sectors (29989158 MB)
[  435.210539] sd 0:0:1:0: [sdb] Write Protect is off
[  435.210539] sd 0:0:1:0: [sdb] Mode Sense: 06 00 10 00
[  435.210539] sd 0:0:1:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA


С учётом, что dd всё-таки не заработал, "та у READ CAPACITY (16) не лизе!"
404

iops'ы

Кажется, нашёл FIO. Выглядит интересно. Смотрю на данные.

random-read: (groupid=0, jobs=1): err= 0: pid=7187
  read : io=1024MB, bw=9846KB/s, iops=2461, runt=106496msec
    clat (usec): min=3, max=26901, avg=355.32, stdev=784.15
    bw (KB/s) : min=    0, max=22016, per=109.50%, avg=10781.31, stdev=4013.35
  cpu          : usr=2.90%, sys=7.34%, ctx=264055, majf=0, minf=298252
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued r/w: total=262144/0, short=0/0
     lat (usec): 4=0.01%, 10=0.01%, 100=27.32%, 250=20.79%, 500=43.55%
     lat (usec): 750=3.36%, 1000=0.36%
     lat (msec): 2=2.07%, 4=1.63%, 10=0.88%, 20=0.04%, 50=0.01%

Run status group 0 (all jobs):
   READ: io=1024MB, aggrb=9846KB/s, minb=10082KB/s, maxb=10082KB/s, mint=106496msec, maxt=106496msec

Disk stats (read/write):
  sdb: ios=262086/0, merge=0/0, ticks=91816/0, in_queue=91804, util=72.51%



Итого: голый RAID 60 из 48 винтов даёт нам 2461 иопс на чтение. Следующий тест: четыре RAID6 в софтовом мирроре (те же 48 винтов).
404

(no subject)

Об иопсах

Вижу какой-то конфликт. fio говорит от 2к+ иопсах, а atop при i=1 говорит о примерно 250. Кому верить?
DSK |         sdb | busy     96% | read     236 | write      0 | avio    4 ms |
404

Сипипи

Эх... Давно дело было. Обнаружил, что в spew нет простой опции "ограничить общее число операций теста".

Ковыряю код, дописываю. Надо сказать, HP довольно красиво пишет... И ни слова на хинди внутри!

PS Мой выбор - spew. Эта вещь специально писалась для теста iops'ов и у неё это отлично получается. Я дописываю лишь фичу, которая позволит не точный результат получать, а приблизительный, за счёт меньшего времени теста.