Страница 1 из 1

gmirror

Добавлено: 2008-11-06 14:56:46
fxp
ad0

Код: Выделить всё

diskinfo -ctv ad0
Transfer rates:
        outside:       102400 kbytes in   0.928828 sec =   110246 kbytes/sec
        middle:        102400 kbytes in   1.063225 sec =    96311 kbytes/sec
        inside:        102400 kbytes in   1.867590 sec =    54830 kbytes/sec
and gm0

Код: Выделить всё

diskinfo -ctv /dev/mirror/gm0
Transfer rates:
        outside:       102400 kbytes in   1.703981 sec =    60095 kbytes/sec
        middle:        102400 kbytes in   1.799062 sec =    56919 kbytes/sec
        inside:        102400 kbytes in   2.149057 sec =    47649 kbytes/sec
gm0 - 3 диска в round-robin.

Прикольно, gstat показывает:

Код: Выделить всё

 L(q)  ops/s    r/s   kBps   ms/r    w/s   kBps   ms/w   %busy Name
    0    142    142  18038    2.1      0      0    0.0   29.7| ad0
    0      0      0      0    0.0      0      0    0.0    0.0| DEV/ad0/ad0
    0      0      0      0    0.0      0      0    0.0    0.0| acd0
    0      0      0      0    0.0      0      0    0.0    0.0| MIRROR/gm0/ad0
    0    425    425  54225    2.1      0      0    0.0   89.1| mirror/gm0
    0      0      0      0    0.0      0      0    0.0    0.0| DEV/acd0/acd0
    0      0      0      0    0.0      0      0    0.0    0.0| MBR/ad0/ad0
    0      0      0      0    0.0      0      0    0.0    0.0| ad0s1
    0      0      0      0    0.0      0      0    0.0    0.0| DEV/mirror/gm0/mirror/gm0
    0      0      0      0    0.0      0      0    0.0    0.0| VFS/ffs.mirror/gm0s1a/mirror/gm0s1a
    0      0      0      0    0.0      0      0    0.0    0.0| SWAP/swap/mirror/gm0s1b
    0      0      0      0    0.0      0      0    0.0    0.0| MBR/mirror/gm0/mirror/gm0
    0    425    425  54225    2.1      0      0    0.0   89.8| mirror/gm0s1
    0    142    142  18038    2.1      0      0    0.0   29.2| ad1
    0      0      0      0    0.0      0      0    0.0    0.0| DEV/ad0s1/ad0s1
    0      0      0      0    0.0      0      0    0.0    0.0| VFS/ffs.mirror/gm0s1d/mirror/gm0s1d
    0      0      0      0    0.0      0      0    0.0    0.0| MIRROR/gm0/ad1
    0    142    142  18148    2.0      0      0    0.0   28.8| ad2
    0      0      0      0    0.0      0      0    0.0    0.0| DEV/mirror/gm0s1/mirror/gm0s1
    0      0      0      0    0.0      0      0    0.0    0.0| BSD/mirror/gm0s1/mirror/gm0s1
    0    425    425  54225    2.1      0      0    0.0   90.8| mirror/gm0s1a
Тоесть нагрузку делит поровну между хардами, и каждый на 20 мб\сек или 30% всего нагружен...
Как-то ну совсем не логично.

Re: gmirror

Добавлено: 2008-11-06 16:57:25
hizel
а не быстрее использовать стандартный алгоритм split в этом случае

Re: gmirror

Добавлено: 2008-11-06 17:20:58
fxp
ок, я немного перефразирую, но для этого конечно немного теории.

RAID-1 по своей природе подразумевает значительное увеличение скорости чтения с ФС.
На приведенных мною тестах этого не происходит, round-robin заявлен как наиболее производительный алгоритм.

Господа использующие gmirror, повторите пожалуйста тесты:
diskinfo -ctv ad0 И diskinfo -ctv /dev/mirror/gm0
мне жутко интересно это мой баг, или общий)

p.s.
я к стати незнаю как diskinfo тестит, поэтому просто копировал большой файл в /dev/null что бы понять что он именно читает медленно. типа "time cp 1000Mb_file /dev/null" и дальше уже реальную скорость чтения можно считать.

Re: gmirror

Добавлено: 2008-11-06 17:34:34
hizel
хм у меня примерно такаяже зависимость
gm0

Код: Выделить всё

Transfer rates:
        outside:       102400 kbytes in   1.717773 sec =    59612 kbytes/sec
        middle:        102400 kbytes in   1.838310 sec =    55703 kbytes/sec
        inside:        102400 kbytes in   3.174826 sec =    32254 kbytes/sec
ad4

Код: Выделить всё

Transfer rates:
        outside:       102400 kbytes in   1.292204 sec =    79244 kbytes/sec
        middle:        102400 kbytes in   1.669863 sec =    61322 kbytes/sec
        inside:        102400 kbytes in   2.525124 sec =    40552 kbytes/sec
попозже попробую bonnie потестить

Re: gmirror

Добавлено: 2008-11-06 18:03:00
hizel
чОрт мне сейчас зеркало не сломать :/
хотя вот dd при двух параллельных запросах на чтении выигрывает gm0 в два раза

Код: Выделить всё

user@host /usr/ports >sudo dd if=/dev/mirror/gm0 of=/dev/null bs=1024k count=1024 &
[2] 5500
user@host /usr/ports >1024+0 records in
1024+0 records out
1073741824 bytes transferred in 63.446473 secs (16923586 bytes/sec)
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 63.622378 secs (16876795 bytes/sec)

[2]    Done                          sudo dd if=/dev/mirror/gm0 of=/dev/null bs=1024k count=1024
[1]  + Done                          sudo dd if=/dev/mirror/gm0 of=/dev/null bs=1024k count=1024
user@host /usr/ports >sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024 &
[1] 7497
user@host /usr/ports >sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024 &
[2] 7498
user@host /usr/ports >1024+0 records in
1024+0 records out
1073741824 bytes transferred in 122.228647 secs (8784699 bytes/sec)
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 122.262028 secs (8782300 bytes/sec)

[2]    Done                          sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024
[1]  + Done                          sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024
user@host /usr/ports >sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024 &
[1] 11301
user@host /usr/ports >sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024 &
[2] 11309
user@host /usr/ports >1024+0 records in
1024+0 records out
1073741824 bytes transferred in 118.295267 secs (9076794 bytes/sec)
1024+0 records in
1024+0 records out
1073741824 bytes transferred in 118.255959 secs (9079812 bytes/sec)
sudo dd if=/dev/mirror/gm0 of=/dev/null bs=1024k count=1024 &
[3] 14374
[2]    Done                          sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024
[1]  + Done                          sudo dd if=/dev/ad4 of=/dev/null bs=1024k count=1024
методика кончено топорная


забавные баги в man gmirror
Documentation for sysctls kern.geom.mirror.* is missing
в описании 6.1 Альфа
The GEOM_MIRROR and GEOM_RAID3 classes now use parallel I/O request for synchronization to improve the performance. New sysctl variables kern.geom.mirror.sync_requests and kern.geom.raid3.sync_requests define how many parallel I/O requests should be used. Also, sysctl variables kern.geom.mirror.reqs_per_sync, kern.geom.mirror.syncs_per_sec, kern.geom.raid3.reqs_per_sync, and kern.geom.raid3.syncs_per_sec are deprecated and have been removed.
такое ощущение, что gmirror выигрывает именно на параллельных запросах

Re: gmirror

Добавлено: 2008-11-07 9:37:44
fxp
Это само собой, на чем ещё кроме паралельных запросов оно может выигрывать... но сервак уже отправлен на "поле боя" и эксперименты на нем я ставить не буду, а больше ничего подходящего под рукой нету.

Re: gmirror

Добавлено: 2008-11-10 10:52:48
fxp
Неверю что тема больше никому не нужна) Вроде gmirror достаточно популярное решение, неужели всем пох что производительность не поднимается а падает ?

Re: gmirror

Добавлено: 2008-11-10 11:08:57
Alex Keda
fxp писал(а):Неверю что тема больше никому не нужна) Вроде gmirror достаточно популярное решение, неужели всем пох что производительность не поднимается а падает ?
наджность != производительность
я его юзаю из-за надёжности.
и на производительность - покласть.