Test macierzy Dell powervault md1000 13
Ostatnio dostaliśmy nową zabawkę do testów - nowiutkiego della
powervault md1000. Co to takiego, zapytacie? Otóż jest to całkiem miły "das" (direct attached storage, czyli, upraszczając trochę, po prostu macierz) od Dell'a.
Egzemplarz, który testowaliśmy miał 15 dysków sas, każdy o pojemności 72gb i prędkości obrotowej 15000 rpm.
Macierz ma być używana jako nośnik dla bazy danych, więc zanim zostanie użyta musieliśmy przeprowadzić testy (by wiedzieć co i jak podzielić na poszczególne dyski logiczne).
Podłączyliśmy ją do wolnego serwera (także Dell'a, ale nieużywanego), którego parametry są "całkiem, całkiem" :
Jeśli wolisz wyniki w postaci tabelek:
Znaczenie kolumny name:
(pokazano tu wyniki każdego testu, czyli po 3 wyniki dla każdej z partycji). Jak widać, wyniki są niższe od oczekiwanych. Dodatkowo, analizę utrudnia fakt, iż test macierzy 8xraid10 skończył się jako pierwszy (bo jest najszybsza), 4xraid10 skończył się trochę później, a 2xraid1 trwał i trwał, i trwał:)
Myślę, że wybraliśmy rozwiązanie optymalne przy tej macierzy i kontrolerze, ale tak czy inaczej zastanawiające jest czemu wydajność tak mocno jest powiązana z potęgami dwójki.
- 4 dwurdzeniowe xeon'y (3.4ghz)
- 32gb ram
- 2 wewnętrzne dyski, sas, 72gb, 15000 rpm, 72g zestawione w raid1
- zestawienie nowego raida
- mke2fs -j (ext3)
- zamontowanie partycji z opcjami noatime i nodiratime
- uruchomienie bonnie++ z tymi opcjami:"-u nobody:nobody -f -s 65000,8192 -n 0 -x 3" (8192 gdyż taka jest wielkość strony w postgresie)
- rezultaty dla każdego raida (-x 3!) były uśrednione
- raid 10, czysto sprzętowy, używając 2, 4, 6, 8, 10, 12 i 14 dysków
- raid 10, mieszany sprzętowo/software'owy - sprzęt był użyty do zrobienia 7 oddzielnych dysków logicznych, każdy z użyciem 2 dysków fizycznych spiętych w raid1, ale potem były one składane w jeden dysk logiczny przy pomocy software'owego raida (linux, raid0) w urządzenie na 4, 6, 8, 10, 12 i 14 dyskach fizycznych
Jeśli wolisz wyniki w postaci tabelek:
| name | put_block | put_block_cpu | rewrite | rewrite_cpu | get_block | get_block_cpu | seeks | seeks_cpu |
|---|---|---|---|---|---|---|---|---|
| 2xraid1 | 34820 | 12 | 25105 | 6 | 97459 | 9 | 436 | 1 |
| 4xraid10 | 95427 | 37 | 65661 | 19 | 246490 | 23 | 615 | 1 |
| 6xraid10 | 100367 | 39 | 70955 | 20 | 288188 | 27 | 672 | 1 |
| 8xraid10 | 165980 | 66 | 98887 | 29 | 423983 | 39 | 737 | 1 |
| 10xraid10 | 164195 | 64 | 96039 | 28 | 394442 | 36 | 618 | 1 |
| 12xraid10 | 185671 | 72 | 103271 | 30 | 414942 | 38 | 686 | 1 |
| 14xraid10 | 195349 | 76 | 104087 | 30 | 439088 | 40 | 821 | 2 |
| 2s0@2h1 | 86651 | 32 | 61836 | 18 | 251109 | 24 | 618 | 1 |
| 3s0@2h1 | 110977 | 42 | 79381 | 24 | 356231 | 34 | 708 | 2 |
| 4s0@2h1 | 120232 | 45 | 91988 | 28 | 391041 | 37 | 748 | 2 |
| 5s0@2h1 | 131024 | 50 | 92403 | 28 | 556601 | 55 | 788 | 2 |
| 6s0@2h1 | 123812 | 47 | 93563 | 28 | 482090 | 47 | 778 | 2 |
| 7s0@2h1 | 137513 | 53 | 100083 | 31 | 657221 | 65 | 839 | 2 |
| 2s0@6h10 | 160090 | 61 | 104375 | 32 | 482106 | 46 | 716 | 2 |
| 2s1@2h1 | 44373 | 16 | 25972 | 6 | 99071 | 10 | 651 | 1 |
| 13xraid5 | 222225 | 87 | 113040 | 32 | 392238 | 36 | 806 | 2 |
| 14xraid5 | 222690 | 87 | 114142 | 33 | 398201 | 36 | 809 | 2 |
Znaczenie kolumny name:
- (\d+)xraid(\d+) - $1 dysków w czysto sprzętowym raidzie $2. przykładowo - 6xraid10 oznacza 6 dysków w sprzętowym raidzie 10
- (\d+)s0@2h1 - $1 dysków logicznych (gdzie każdy dysk logiczny, to 2 dyski fizyczne spięte w sprzętowy raid1) połączone w software'owy raid0. przykładowo 5s0@2h1 oznacza 5 dysków logicznych (każdy z 2 napędów, w raid1) połączonych, dając razem raid 10 na 10 dyskach w układzie mieszanym sprzętowo/software'owym
- 2s0@6h10 - 2 dyski logiczne, każdy składający się z 6 dysków fizycznych połączonych w sprzętowy raid10, połączone w software'owy raid 0
- 2s1@2h1 - 2 dyski logiczne, każdy będący 2 dyskowym, sprzętowym, raidem 1, połączone w software'owy raid1. daje to 4 dyskowa macierz o pojemności pojedynczego dysku.
- 1 dysk jako globalny hot-spare
- 2 diskowy raid1 (sprzętowy) na logi postgresa
- 8 dyskowy raid10 (sprzętowy) jako główna przestrzeń (tablespace) bazodanowa
- 4 dyskowy raid10 (sprzętowy) jako dodatkowa przestrzeń bazodanowa
| name | put_block | put_block_cpu | rewrite | rewrite_cpu | get_block | get_block_cpu | seeks | seeks_cpu |
|---|---|---|---|---|---|---|---|---|
| 2xraid1 | 30875 | 12 | 15438 | 5 | 39867 | 5 | 224 | 1 |
| 2xraid1 | 32489 | 14 | 24037 | 7 | 99700 | 9 | 389 | 1 |
| 2xraid1 | 35096 | 13 | 24708 | 6 | 96969 | 9 | 383 | 0 |
| 4xraid10 | 41343 | 18 | 31910 | 11 | 61798 | 8 | 109 | 0 |
| 4xraid10 | 80630 | 34 | 35707 | 12 | 137488 | 18 | 306 | 1 |
| 4xraid10 | 40136 | 17 | 38388 | 12 | 147282 | 16 | 255 | 0 |
| 8xraid10 | 42376 | 18 | 37513 | 13 | 155740 | 19 | 302 | 1 |
| 8xraid10 | 156044 | 65 | 34153 | 11 | 177690 | 22 | 338 | 1 |
| 8xraid10 | 146096 | 61 | 71307 | 25 | 29568 | 3 | 154 | 0 |
(pokazano tu wyniki każdego testu, czyli po 3 wyniki dla każdej z partycji). Jak widać, wyniki są niższe od oczekiwanych. Dodatkowo, analizę utrudnia fakt, iż test macierzy 8xraid10 skończył się jako pierwszy (bo jest najszybsza), 4xraid10 skończył się trochę później, a 2xraid1 trwał i trwał, i trwał:)
Myślę, że wybraliśmy rozwiązanie optymalne przy tej macierzy i kontrolerze, ale tak czy inaczej zastanawiające jest czemu wydajność tak mocno jest powiązana z potęgami dwójki.
