🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.os.linux.sprzet
8 messages
8 total messages Started by ein Sat, 22 Jan 2011 12:47
Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74074
Author: ein
Date: Sat, 22 Jan 2011 12:47
20 lines
1550 bytes
Cześć,

czy wie ktoś może czy w programowym RAIDzie 1 w Linuksie
zaimplementowany jest duplexing lub czasami też nazywany splitting?

Oczywiście w systemie wielowątkowym.
W sktócie chodzi mi o to, czy kernel potrafi w RAID 1 wykorzystać
obecność dwóch dysków przy odczycie sekwencyjnym?

Bo, albo nie ma tego w kernelu, albo nie potrafię tego sprawdzić.

/dev/md0: # tu siędzą dwa dyski
 Timing cached reads:   4996 MB in  2.00 seconds = 2498.79 MB/sec
 Timing buffered disk reads:  324 MB in  3.01 seconds = 107.78 MB/sec

/dev/sda: # a to jeden z nich
 Timing cached reads:   5242 MB in  2.00 seconds = 2621.41 MB/sec
 Timing buffered disk reads:  336 MB in  3.01 seconds = 111.59 MB/sec

Pozdrawiam.
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74075
Author: Teo
Date: Sun, 23 Jan 2011 18:14
6 lines
1182 bytes
On 1/22/11 1:47 PM, ein wrote:
> Oczywiście w systemie wielowątkowym.
> W sktócie chodzi mi o to, czy kernel potrafi w RAID 1 wykorzystać
> obecność dwóch dysków przy odczycie sekwencyjnym?

Potrafi, dyski muszą być na dwóch różnych kontrolerach.
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74076
Author: ein
Date: Mon, 24 Jan 2011 00:15
9 lines
1250 bytes
On 01/23/2011 07:14 PM, Teo wrote:
> On 1/22/11 1:47 PM, ein wrote:
>> Oczywiście w systemie wielowątkowym.
>> W sktócie chodzi mi o to, czy kernel potrafi w RAID 1 wykorzystać
>> obecność dwóch dysków przy odczycie sekwencyjnym?
> 
> Potrafi, dyski muszą być na dwóch różnych kontrolerach.

Bo ?
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74077
Author: Tomasz Chmielewski
Date: Mon, 24 Jan 2011 11:03
37 lines
2027 bytes
On 22.01.2011 13:47, ein wrote:
> Cześć,
>
> czy wie ktoś może czy w programowym RAIDzie 1 w Linuksie
> zaimplementowany jest duplexing lub czasami też nazywany splitting?
>
> Oczywiście w systemie wielowątkowym.
> W sktócie chodzi mi o to, czy kernel potrafi w RAID 1 wykorzystać
> obecność dwóch dysków przy odczycie sekwencyjnym?
>
> Bo, albo nie ma tego w kernelu, albo nie potrafię tego sprawdzić.
>
> /dev/md0: # tu siędzą dwa dyski
>   Timing cached reads:   4996 MB in  2.00 seconds = 2498.79 MB/sec
>   Timing buffered disk reads:  324 MB in  3.01 seconds = 107.78 MB/sec
>
> /dev/sda: # a to jeden z nich
>   Timing cached reads:   5242 MB in  2.00 seconds = 2621.41 MB/sec
>   Timing buffered disk reads:  336 MB in  3.01 seconds = 111.59 MB/sec

ZTCW, to nie ma takiej funkcjonalnosci, z uzasadnieniem, ze wcale nie 
byloby wydajniej.

Wynika to mniej wiecej z tego, ze odczytanie bloku + przeskoczenie 
glowica o pare blokow dalej + czytanie kolenych blokow, by skoczyc 
glowica dalej jest niewiele szybsze od czytania sekwencyjnego z jednego 
dysku.

Choc przy dyskach SSD nie bedzie to juz aktualne.


BTW, duplexing wcale nie oznacza tego, co opisales.


-- 
Tomasz Chmielewski
http://wpkg.org
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74078
Author: Mariusz Kruk
Date: Mon, 24 Jan 2011 11:10
13 lines
1353 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "Tomasz Chmielewski"
>Wynika to mniej wiecej z tego, ze odczytanie bloku + przeskoczenie 
>glowica o pare blokow dalej + czytanie kolenych blokow, by skoczyc 
>glowica dalej jest niewiele szybsze od czytania sekwencyjnego z jednego 
>dysku.

Ech... przypominają się czasy przeplotu sektorów na dyskietkach... ;-)

-- 
\------------------------/ 
|  Kruk@epsilon.eu.org   | 
| http://epsilon.eu.org/ | 
/------------------------\ 
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74079
Author: ein
Date: Tue, 25 Jan 2011 22:34
100 lines
4786 bytes
On 01/24/2011 12:03 PM, Tomasz Chmielewski wrote:
> On 22.01.2011 13:47, ein wrote:
>> czy wie ktoś może czy w programowym RAIDzie 1 w Linuksie
>> zaimplementowany jest duplexing lub czasami też nazywany splitting?
>>
>> Oczywiście w systemie wielowątkowym.
>> W sktócie chodzi mi o to, czy kernel potrafi w RAID 1 wykorzystać
>> obecność dwóch dysków przy odczycie sekwencyjnym?
>>
>> Bo, albo nie ma tego w kernelu, albo nie potrafię tego sprawdzić.
>>
>> /dev/md0: # tu siędzą dwa dyski
>>   Timing cached reads:   4996 MB in  2.00 seconds = 2498.79 MB/sec
>>   Timing buffered disk reads:  324 MB in  3.01 seconds = 107.78 MB/sec
>>
>> /dev/sda: # a to jeden z nich
>>   Timing cached reads:   5242 MB in  2.00 seconds = 2621.41 MB/sec
>>   Timing buffered disk reads:  336 MB in  3.01 seconds = 111.59 MB/sec
> 
> ZTCW, to nie ma takiej funkcjonalnosci, z uzasadnieniem, ze wcale nie 
> byloby wydajniej.
> 
> Wynika to mniej wiecej z tego, ze odczytanie bloku + przeskoczenie 
> glowica o pare blokow dalej + czytanie kolenych blokow, by skoczyc 
> glowica dalej jest niewiele szybsze od czytania sekwencyjnego z jednego 
> dysku.

OK, ale w przypadku jednego dysku, natomiast jeżeli mamy RAID 1 to te
same dane mamy na obu dyskach, nie musimy koniecznie czytać jednego
sektora, a następnego z drugiego dysku. Możemy ich przeczytać powiedzmy
tysiąc i wrzucić do RAMu lub cache dysku, a równocześnie następny tysiąc
z drugiego dysku itd.

Z tego co zdążyłem wyczytać możliwe jest, aby prędkość odczytu z
macierzy RAID 1, była mniejsza, ale porównywalna z RAID 0.

> [...]
> BTW, duplexing wcale nie oznacza tego, co opisales.

Być może, ponieważ starałem się zorientować w temacie i ktoś to tak na
angielskojęzycznych stronach nazwał.

Więc pytanie ciągle aktualne - dlaczego do osiągnięcia takiej
funkcjonalności potrzebny jest drugi kontroler?

Zrobiłem sobie taki test, polegający na równoczesnym odczycie
sekwencyjnym z 4 dysków:
root@linux:~# dd if=/dev/sda of=/dev/null bs=4096 count=100M &
[1] 3645
root@linux:~# dd if=/dev/sdb of=/dev/null bs=4096 count=100M &
[2] 3646
root@linux:~# dd if=/dev/sdc of=/dev/null bs=4096 count=100M &
[3] 3647
root@linux:~# dd if=/dev/sdd of=/dev/null bs=4096 count=100M &
[4] 3648
root@linux:~# fg
dd if=/dev/sdd of=/dev/null bs=4096 count=100M
^C321501+0 records in
321500+0 records out
1316864000 bytes (1.3 GB) copied, 12.6725 s, 104 MB/s

root@linux:~# fg
dd if=/dev/sdc of=/dev/null bs=4096 count=100M
^C344510+0 records in
344509+0 records out
1411108864 bytes (1.4 GB) copied, 13.3357 s, 106 MB/s

root@linux:~# fg
dd if=/dev/sdb of=/dev/null bs=4096 count=100M
^C1589010+0 records in
1589009+0 records out
6508580864 bytes (6.5 GB) copied, 21.7032 s, 100 MB/s

root@linux:~# fg
dd if=/dev/sda of=/dev/null bs=4096 count=100M
^C740797+0 records in
740796+0 records out
3034300416 bytes (3.0 GB) copied, 28.3051 s, 107 MB/s
############ Koniec ##############

Czyli kontroler potrafi łyknąć trochę danych. Równocześnie z kilku
dysków. Z prędkością bliską lub równą maksymalnej prędkości odczytu:

/dev/sda:
 Timing cached reads:   13328 MB in  2.00 seconds = 6670.04 MB/sec
 Timing buffered disk reads:  314 MB in  3.01 seconds = 104.36 MB/sec

/dev/sdb:
 Timing cached reads:   13896 MB in  2.00 seconds = 6955.25 MB/sec
 Timing buffered disk reads:  336 MB in  3.01 seconds = 111.78 MB/sec

/dev/sdc:
 Timing cached reads:   13154 MB in  2.00 seconds = 6584.38 MB/sec
 Timing buffered disk reads:  310 MB in  3.02 seconds = 102.82 MB/sec

/dev/sdd:
 Timing cached reads:   13128 MB in  2.00 seconds = 6570.30 MB/sec
 Timing buffered disk reads:  298 MB in  3.00 seconds =  99.20 MB/sec

PS. Dzięki za zainteresowanie.
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74080
Author: ein
Date: Tue, 25 Jan 2011 23:09
64 lines
3068 bytes
On 01/25/2011 11:34 PM, ein wrote:
> [...]
> Więc pytanie ciągle aktualne - dlaczego do osiągnięcia takiej
> funkcjonalności potrzebny jest drugi kontroler?

Chyba doszedłem.

Testowałem prędkość odczyty z macierzy RAID 1.

root@linux:~# time dd if=/dev/sda of=/dev/null bs=4096 count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 36.4362 s, 118 MB/s

root@linux:~# time dd if=/dev/sdb of=/dev/null bs=4096 count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 36.4235 s, 118 MB/s

root@linux:~# time dd if=/dev/md1 of=/dev/null bs=4096 count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 36.4297 s, 118 MB/s

Wniosek: prędkość odczytu z macierzy jest podobny do odczytu z jednego
dysku.

/dev/sda:
 Timing cached reads:   6656 MB in  2.00 seconds = 3330.00 MB/sec
 Timing buffered disk reads:  336 MB in  3.02 seconds = 111.43 MB/sec

/dev/sdb:
 Timing cached reads:   7250 MB in  2.00 seconds = 3627.04 MB/sec
 Timing buffered disk reads:  338 MB in  3.01 seconds = 112.41 MB/sec

/dev/md0:
 Timing cached reads:   7356 MB in  2.00 seconds = 3680.59 MB/sec
 Timing buffered disk reads:  334 MB in  3.01 seconds = 111.07 MB/sec


###################################################

Tutaj na dwóch konsolkach równocześnie* uruchomiłem odczyt dwóch różnych
części macierzy.

root@linux:~# time dd if=/dev/md1 of=/dev/null bs=4096 count=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 40.2113 s, 107 MB/s

root@linux:~# time dd if=/dev/md1 of=/dev/null bs=4096 count=1M skip=1M
1048576+0 records in
1048576+0 records out
4294967296 bytes (4.3 GB) copied, 43.9138 s, 97.8 MB/s

Wniosek: Działa! Dla wielu odczytów sekwencyjnych.

*równocześnie - 0,5-1[s] trwało zanim przełączyłem się między okienkami
aby uruchomić drugie równoległe kopiowanie.

PS. Polecam wątek na:
http://www.tomshardware.co.uk/forum/250390-14-does-raid-increase-read-speed

Pozdrawiam.
Re: Programowy RAID1 (mdadm), a wydajność sekwencyjnego odczytu.
#74081
Author: Tomasz Chmielewski
Date: Wed, 26 Jan 2011 09:11
44 lines
2584 bytes
On 25.01.2011 23:34, ein wrote:

> OK, ale w przypadku jednego dysku, natomiast jeżeli mamy RAID 1 to te
> same dane mamy na obu dyskach, nie musimy koniecznie czytać jednego
> sektora, a następnego z drugiego dysku. Możemy ich przeczytać powiedzmy
> tysiąc i wrzucić do RAMu lub cache dysku, a równocześnie następny tysiąc
> z drugiego dysku itd.

Owszew, z tym, ze wtedy bawimy sie zgadywanie, ile tych sektorow 
przeczytac, jak sie to ma do RAMu, co zrobic, gdy pamieci zaczyna nagle 
brakowac, i nie da sie alokowac nowych stron - robi sie skomplikowanie.

RAID-1 w Linuksie jest typowo stosowany przy wielu odczytach 
jednoczesnie; liniowy, ciagly odczyt jednego i tylko jednego pliku to 
jakis margines marginesow zastosowan, wiec nie dziwie sie, ze nikomu nie 
chcialo sie przysiasc.

Jesli naprawde to jest to, co musisz uzywac (dwa dyski, jak najszybszy 
liniowy odczyt jednego pliku), mozesz poeksperymentowac z linuksowym 
RAID-10 (tak, da sie na dwoch dyskach) i layoutami, jakie oferuje.


> Z tego co zdążyłem wyczytać możliwe jest, aby prędkość odczytu z
> macierzy RAID 1, była mniejsza, ale porównywalna z RAID 0.

Jak miec tysiac atletow, i dac im tysiac kotletow, to daloby sie zrobic 
i predkosc identyczna co RAID-0.
Ale jeszcze musi byc ktos, komu bedzie chcialo sie to zrobic ;)


>> BTW, duplexing wcale nie oznacza tego, co opisales.
>
> Być może, ponieważ starałem się zorientować w temacie i ktoś to tak na
> angielskojęzycznych stronach nazwał.
>
> Więc pytanie ciągle aktualne - dlaczego do osiągnięcia takiej
> funkcjonalności potrzebny jest drugi kontroler?

Z tym drugim kontrolerem to ktos najwyrazniej chcial cie oklamac.


-- 
Tomasz Chmielewski
http://wpkg.org
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads