[freebsd] gmirror

krishtaf

Сделал так:
gmirror label -v -b split -s 2048 gm0s1 /dev/ad4s1 /dev/ad6s1
бла бла ....
Хочу проверить:
dd if=/dev/mirror/gm0s1 of=/dev/null bs=128k count=8000
показывает скорость 50 мб/с
при этом gstat показывет что используются оба диска, с каждого где-то по 25 мб/с считывается
делаю:
dd if=/dev/ad4s1 of=/dev/null bs=128k count=8000
показывает те же самые 50 мб/с
проц при эксперименте не был загружен вообще.
1. В чем хуйня ?
2. Кто-нибудь выяснял, какой из алгоритмов(load, prefer, round-robin, split) балансировки лучше ?
3. Как добиться повышение скорости чтения из gm0s1 в двое ?

Julie16

Какие винты? IDE, SATA, SCSI... Контроллер какой? Если внешний, на 33Mhz PCI шине, то многого ты не добьешься. Если это IDE винты, и если они на одном шлейфе, то тоже ничего не добьешься.
3) - никак.

krishtaf

1. винты SATA, подключены через Silicon Image 3114 PCI контроллер
2.
3) - никак.
обоснуй.
чтение ведь идет сразу с двух дисков.

Julie16

1) Ну вот. Тут может быть уже шины не хватает.
2) А вот так. В 2 раза не ускорится. Может быть в 1.9, но никак не в 2 Ускорение в 2 раза означало бы что нет никакого оверхеда от использования софтверного рейда, а он очевидно есть.

krishtaf

1) Ну вот. Тут может быть уже шины не хватает
хватает, у PCI 33Mhz 133 мб/с
2) А вот так. В 2 раза не ускорится. Может быть в 1.9, но никак не в 2 Ускорение в 2 раза означало бы что нет никакого оверхеда от использования софтверного рейда, а он очевидно есть.
ну вот не надо тут все буквально понимать.
под словами "в 2 раза" подразумевается "~ в 2 раза", так все-таки как ?

Julie16

1) Только на этой шине еще много чего сидит. Так что как раз ее может и не хватать. + затраты на протокол обмена.
2) Ну извини

krishtaf

1) Только на этой шине еще много чего сидит. Так что как раз ее может и не хватать. + затраты на протокол обмена.
только контроллер и висит

krishtaf

короче, дядя.
ты говорил, что делал гмиррор.
у тебя какая скорость чтения была ?

Julie16

Скажешь как в bsd померять - скажу.

krishtaf

первое приближение - dd

krishtaf

ну ты где там ?

sergey_m

Мой ответ не претендует на правильность.
Давай подумаем, что происходит при работе dd с gmirrorом. dd последовательно читает блоки данных, и уровень gmirror раскидывает запросы на чтение по винтам. Винты отвечают на своей скорости. На каждый запрос. Последовательно. Результат вполне ожидаемый, во всяком случае для меня.
Для того, что бы сделать реальный benchmark для RAID1 нужно огранизовать параллельный, и желательно случайный доступ.

krishtaf

Для того, что бы сделать реальный benchmark для RAID1 нужно огранизовать параллельный, и желательно случайный доступ.
с этим согласен
dd последовательно читает блоки данных, и уровень gmirror раскидывает запросы на чтение по винтам. Винты отвечают на своей скорости. На каждый запрос. Последовательно.
почему такая схема не даст увеличения скорости в 2 раза ?

sergey_m

> почему такая схема не даст увеличения скорости в 2 раза ?
Потому, что перед тем, как считать блок номер n+1 с винта B программа dd ждёт прочтение блока номер n с винта A.

krishtaf

еще один вопрос относительно режимов работы raid адаптеров:
linear mode == jbod == span == не настраивать ни каких массивов ?

sergey_m

Я не знаю.
Оставить комментарий
Имя или ник:
Комментарий: