artykuły

AMD NVMe RAID0 – test

Wiele hałasu o nic?

19
4 grudnia 2017, 22:00 Tomasz Kurzak

Podsumowanie

AMD NVMe RAID to technika, która nie jest przeznaczona dla wszystkich. Z pewnością znajdzie swoich amatorów, ale dla większości z nas koszt platformy składającej się z dwóch lub więcej najwydajniejszych SSD będzie zbyt wysoki, żeby uzasadnić zakup. Sprawdzi się ona najlepiej tam, gdzie najważniejsza jest wydajność w czasie sekwencyjnych operacji na dużych plikach. Dla przeciętnych pochłaniaczy bitów ważniejsze są prędkości losowego odczytu i zapisu małych porcji danych, bo to właśnie takie operacje są najczęściej wykonywane przez systemy operacyjne i zdecydowaną większość programów.

Inaczej to wygląda z punktu widzenia kogoś, kto zawodowo zajmuje się obróbką zdjęć lub materiałów wideo. W takich zastosowaniach macierz RAID0 będzie wydajniejsza od pojedynczego SSD. Pozostanie pytanie, czy wzrost wydajności o niemal 66% w testach syntetycznych w pełni się przełoży na rzeczywiste wykorzystanie macierzy RAID0. Na nie odpowiemy w dalszych artykułach poświęconych tej technice.

Ci, dla których pojedynczy nośnik jest za wolny i którzy raczej byliby skłonni przeznaczyć niemałą kwotę na RAID0 z SSD NVMe, pewnie zaczynają kalkulować, ile będzie kosztowała przesiadka na płytę główną z chipsetem X399 (sprawdź ceny tych płyt) oraz zakup procesora Threadripper i dodatkowych nośników. Być może jednak przed udaniem się do sklepu warto będzie przetestować narzędzie PrimoCache. Jeżeli pamięć operacyjna w komputerze nie jest w pełni wykorzystywana, użycie jej części jako pamięci podręcznej dla SSD może zapewnić więcej korzyści niż macierz RAID0. Zaletami PrimoCache jest to, że działa w różnych systemach operacyjnych, nie ma ograniczeń co do liczby przyspieszanych nośników, współpracuje z każdą płytą główną i każdym procesorem. Niestety, nasze testy pokazały, że program bywa nieprzewidywalny, więc przed jego zakupem warto sprawdzić w działaniu wersję testową, by się przekonać, czy przyspieszy wykonywane na co dzień operacje.

AMD NVMe RAID oraz technika VROC Intela to z pewnością krok w dobrą stronę. W przeciwieństwie do starszych rozwiązań, dostępnych między innymi na płytach głównych z chipsetem Z270, nie są ograniczone przez maksymalną przepustowość DMI, wynoszącą 3,93 GB/s, co ogranicza wydajność macierzy RAID0 zbudowanych z najwydajniejszych SSD NVMe. Utworzenie podsystemu dyskowego o zawrotnych prędkościach sekwencyjnego odczytu i zapisu danych niewątpliwie zapewni w niektórych zastosowaniach ogromne przyspieszenie.

Pamiętajmy również, że RAID to nie tylko poziom 0, czyli striping, ale także 1, czyli mirroring, 10, czyli połączenie obu tych technik, i kilka innych. Korzystanie z RAID0 zawsze się wiąże ze zwiększeniem prawdopodobieństwa utraty danych, bo awaria jednego nośnika sprawi, że wszystkie pliki przechowywane w macierzy zostaną utracone. RAID10 jest świetnym, choć kosztownym, rozwiązaniem tego problemu, bo nie tylko pozwala korzystać z wysokich prędkości odczytu i zapisu danych, ale też automatycznie duplikuje dane i pozwala je odtworzyć w razie awarii nośnika. Także RAID1, którego zadaniem jest wyłącznie zabezpieczenie danych przed utratą, może być dla wielu ciekawym rozwiązaniem, ale w takim przypadku nie trzeba kupować nowego komputera, bo ograniczenia przepustowości DMI nie będą miały wpływu na wydajność takich macierzy.

To nie jest nasz ostatni artykuł o AMD NVMe RAID. Zaczęliśmy już prace nad następnym. Jeżeli chcielibyście, żebyśmy sprawdzili coś jeszcze, dajcie nam znać w komentarzach. Najciekawsze sugestie na pewno uwzględnimy.

Samsung 960 Pro 512 GB M.2 NVMe
Zalety
  • bardzo wysoka wydajność
  • 5 lat gwarancji
Wady
  • wysoka cena
Do testów dostarczył:Samsung
Cena w dniu publikacji (z VAT):ok. 1270 zł
Strona:
pwilZobacz profil
Poziom ostrzeżenia: 0%
pwil2018.01.16, 21:46
p_lider @ 2017.12.04 23:16  Post: 1112155
Do redakcji: Jak dla mnie najciekawszym testem byłoby włożenie przynajmniej 4 lub 6 dysków tego typu w macierz RAID0 i porównanie wydajności takiej macierzy bezpośrednio z wydajnością pamięci RAM (czyli RamDrive'em).
Z chęcią zobaczyłbym jak duże byłyby różnice w poszczególnych testach.
Wyniki takiego testu mogłyby posłużyć jako estymacja jak mógłby taki zestaw PC sprawdzić się jako ekstremalny serwer bazy danych (na przykład SQL Server).


W serwerach bazodanowych wrzuca się tyle RAMu, żeby rzadko dotykać dysków. Na dyski leci zapis liniowy do logów i zapis zmian w bazie. Co więcej często wrzuca się kilkukrotnie większą ilość RAMu, niż same dane, by przetwarzać je równolegle w pamięci bez blokowania.
p_liderZobacz profil
Poziom ostrzeżenia: 0%
p_lider2017.12.05, 22:58
mbrzostek @ 2017.12.05 14:49  Post: 1112301
p_lider @ 2017.12.04 23:16  Post: 1112155
połowę dysków należałoby podłączyć do linii PCIe wychodzących z jednego zeppelinu, a drugą połowę do linii PCIe wychodzących z drugiego zeppelinu, aby uzyskać maksymalną przepustowość.

To ciekawe zagadnienie – jeśli chcemy zapełnić danymi całą pulę pamięci, to najlepiej będzie ustawić maszynę w tryb NUMA i podłączyć tak jak mówisz. Ale jeśli chcemy pobrać z macierzy tyle danych, ile mieści się w połowie pamięci, to może lepiej będzie podłączyć wszystkie SSD-ki do jednego jądra, a może nawet ustawić wtedy tryb UMA?

Podłączenie macierzy po równo na obu zeppelinach maksymalizuje przepustowość przesyłu danych (potwierdziło to kilku już ludzi w internecine, w tym popularny Linus), ale możliwe, że negatywnie wpływa na opóźnienia. Podłączenie macierzy tylko do jednego zeppelina najprawdopodobniej będize miało skutek odwrotny, czyli zmniejszenie przepustowości, ale polepszenie opóźnień. Warto przetestować czy tak jest faktycznie.

Swoją drogą nie brałem pod uwagę trybu działania pamięciu UMA/NUMA. To ciekawy aspekt i moim zdaniem też wart przetestowania :)
MarucinsZobacz profil
Poziom ostrzeżenia: 0%
Marucins2017.12.05, 17:50
-2#17
To w końcu reklama dysku czy kontrolera i nowej funkcji od AMD?
Gdzie realne testy?
mat9vZobacz profil
Poziom ostrzeżenia: 0%
mat9v2017.12.05, 17:06
-2#16
Chciałbym poprosić o następujący test:
1. przygotować RAM dysk o pojemności 40GB+ zamiast PrimoCache
2. przenieść na niego typowy folder Windows i uzupełnić jakimiś danymi do pełna, może być katalog 'temp' ;)
3. skopiować dane na dysk SSD i zmierzyć czas
4. skopiować dane na macierz i zmierzyć czas
5. wyczyścić RAM dysk i po kilku minutach (żeby dyski SSD przepisały dane do MLC) + restart systemu żeby cache Windows opróżnić, przeprowadzić test odczytu danych z dysku do RAM dysku
6. z ciekawości można zrobić jakieś 40GB+ archiwum i taki sam test z nim żeby sprawdzić sekwencyjny zapis i odczyt danych w praktyce a nie to co pokazują programy testujące
7. ewentualnie mniejsze paczki danych (30GB) uzupełnione na przykład 8GB buforem PrimoCache
Atak_SnajperaZobacz profil
Poziom ostrzeżenia: 0%
Atak_Snajpera2017.12.05, 16:03
-2#15
Pytanie. Po co wam PrmoCache skoro Windows i tak buforuje dynamicznie dane w pamięci ram?

Za pomocą tego narzędzia możecie podejrzeć jakie dane sobie aktualnie siedzą w pamięci RAM
https://docs.microsoft.com/en-us/sysintern...ownloads/rammap
mbrzostekZobacz profil
Poziom ostrzeżenia: 0%
Moderatormbrzostek2017.12.05, 14:49
p_lider @ 2017.12.04 23:16  Post: 1112155
połowę dysków należałoby podłączyć do linii PCIe wychodzących z jednego zeppelinu, a drugą połowę do linii PCIe wychodzących z drugiego zeppelinu, aby uzyskać maksymalną przepustowość.

To ciekawe zagadnienie – jeśli chcemy zapełnić danymi całą pulę pamięci, to najlepiej będzie ustawić maszynę w tryb NUMA i podłączyć tak jak mówisz. Ale jeśli chcemy pobrać z macierzy tyle danych, ile mieści się w połowie pamięci, to może lepiej będzie podłączyć wszystkie SSD-ki do jednego jądra, a może nawet ustawić wtedy tryb UMA?
mbrzostekZobacz profil
Poziom ostrzeżenia: 0%
Moderatormbrzostek2017.12.05, 14:45
_ivanov_ @ 2017.12.05 13:33  Post: 1112272

Nie trzeba nic sprawdzać - Linus dostał info od ASUSa.
https://abload.de/img/threadripperdieszenitxcawr.png

Nieprawda! Wystarczy zajrzeć tutaj: http://pclab.pl/art75202-5.html żeby się przekonać, że jest tak:
roomunhoZobacz profil
Poziom ostrzeżenia: 0%
Autor publikacjiroomunho2017.12.05, 14:01
VSS @ 2017.12.05 13:52  Post: 1112278
a na intelu nie da sie postawić RAID0 z NVMe ?? , ciekawe bylo by porownanie wlasnie miedzy TR a takim odpowiednikiem Intela


Teoretycznie da się, pisaliśmy o tym we wstępie. Technika nazywa się VROC. Niestety nadal oficjalnie niedostępny jest sterownik, więc nie mogliśmy sprawdzić, jak takie rozwiązanie sprawdza się na platformie Intela.
VSS2017.12.05, 13:52
a na intelu nie da sie postawić RAID0 z NVMe ?? , ciekawe bylo by porownanie wlasnie miedzy TR a takim odpowiednikiem Intela
_ivanov_Zobacz profil
Poziom ostrzeżenia: 0%
_ivanov_2017.12.05, 13:33
p_lider @ 2017.12.04 23:16  Post: 1112155

Do tego celu należy sprawdzić na płycie głównej jak (w sensie do których slotów) rozlokowane są linie PCIe.

Nie trzeba nic sprawdzać - Linus dostał info od ASUSa.
https://abload.de/img/threadripperdieszenitxcawr.png
Funkcja komentowania została wyłączona. Do dyskusji zapraszamy na forum.
7