Nośniki danych: SSD, HDD i inne
Artykuł
Tomasz Kurzak, Poniedziałek, 4 grudnia 2017, 22:00

AMD NVMe RAID0 – testy syntetyczne (Iometer)

Następny zestaw testów przeprowadziliśmy za pomocą programu Iometer. Mierzyliśmy liczbę operacji wejścia-wyjścia wykonywanych w ciągu sekundy (IOPS) przy różnej długości kolejek i średni czas dostępu do danych. Przyjrzeliśmy się także dokładniej opóźnieniom w trakcie operacji na nośnikach.

Wyniki testu Iometer 1.1.0 - IOPS
(Kliknij na nazwę testu w tabelce, żeby otworzyć wykres)
Losowy odczyt 4K Losowy zapis 4K

W testach polegających na pomiarze liczby operacji wejścia-wyjścia wykonywanych w ciągu sekundy podczas losowego odczytu i zapisu małej próbki danych wydajność kształtuje się zdecydowanie inaczej niż na wykresach przedstawionych na poprzedniej stronie. Długość kolejki wydawanych poleceń ma już znaczący wpływ na wydajność wszystkich testowanych podsystemów dyskowych. Tradycyjne SSD, czy to działające w pojedynkę, czy połączone w macierz, najwyższą wydajność osiągają w testach przeprowadzonych z użyciem QD32, co jest typowe dla nośników opartych na pamięci NAND Flash. Niestety, utworzenie macierzy nie zapewnia wyraźnego wzrostu wydajności w porównaniu z osiągami pojedynczego nośnika.

Podobnie zachowują się podsystemy dyskowe wspomagane przez PrimoCache. W losowym odczycie małych próbek danych takie rozwiązania są wyraźnie wydajniejsze od ich tradycyjnych odpowiedników przy kolejkowaniu od QD1 do QD16. Kiedy długość kolejki poleceń wydawanych kontrolerowi sięga QD32, przyspieszane przez PrimoCache podsystemy dyskowe okazują się wolniejsze.

Wynik tego ostatniego testu nadal jest dla nas małą zagadką. Bez względu na ustawienia programu Iometer nie udało nam się przekroczyć bariery 280 000 IOPS. Problemem w tym przypadku z pewnością nie jest pamięć operacyjna, bo benchmark uruchomiony na RAM-dysku bez problemów zwracał wyniki na poziomie 500 000 IOPS. Także tej kwestii będziemy musieli przyjrzeć się dokładniej.

Wyniki testu Iometer – średni czas dostępu
(Kliknij na nazwę testu w tabelce, żeby otworzyć wykres)
Średni czas dostępu - losowy odczyt 4K Średni czas dostępu - losowy zapis 4K

Bardzo ważnym parametrem półprzewodnikowej pamięci masowej są opóźnienia w czasie dostępu do danych. Im są mniejsze, tym operacje wykonywane są szybciej, czyli system operacyjny i oprogramowanie żwawiej reagują na polecenia użytkownika. Jednym z wyników podawanych przez Iometer jest średni czas dostępu. Niestety, nie odzwierciedla on najlepiej opóźnień, bo w czasie testów może się zdarzyć, że w losowych momentach i z niewyjaśnionych przyczyn operacje wykonywane na nośniku zajmą zdecydowanie więcej czasu, niż powinny.

Podczas analizowania wyników widzieliśmy takie anomalie. Zdarzało się, że opóźnienia w trakcie testów sięgały niemal 2 sekund. Nie zdarzało się to często, ale ma to wpływ na średni czas dostępu do danych.

Doskonale widać to na powyższych wykresach w przypadku kolejek o długości QD16 i QD32. Jednak po testach przeprowadzonych z wykorzystaniem kolejek od QD1 do QD16 mamy wystarczająco dużo danych, żeby się pokusić o wyciągnięcie ważnego wniosku. Macierz RAID0 w większości przypadków charakteryzuje się mniejszymi opóźnieniami. Podsystemy dyskowe wspomagane przez PrimoCache wypadły w tym teście jeszcze lepiej, ale jest to zrozumiałe, skoro za bufor służy im pamięć operacyjna.

Żeby lepiej zrozumieć opóźnienia testowanych nośników w dostępie do danych, sprawdziliśmy, jak kształtuje się w trakcie testów czas wykonania 99,9% wszystkich operacji wejścia-wyjścia. Takie ograniczenie wyników pozwoliło nam wyeliminować sytuacje, w których czas wykonania operacji był dłuższy, niż powinien, i w których zarazem anomalia była bardzo rzadka.

Interpretacja poniższych wyników jest bardzo prosta. Im bliżej lewej strony wykresu znajduje się szczyt krzywej, tym więcej operacji wejścia-wyjścia zostało wykonanych w krótkim czasie. Bardzo dobrze widać to na pierwszym wykresie w przypadku macierzy RAID0 wspomaganej przez PrimoCache. Niemal 100% operacji wejścia-wyjścia została wykonanych w czasie poniżej 50 µs, czyli najkrótszym z rejestrowanych przez Iometer. 

Wyniki testu Iometer 1.1.0 – 99,9% operacji wejścia-wyjścia
(Kliknij na nazwę testu w tabelce, żeby otworzyć wykres)
Losowy odczyt 4K QD1 Losowy odczyt 4K QD2
Losowy odczyt 4K QD4 Losowy odczyt 4K QD8
Losowy odczyt 4K QD16 Losowy odczyt 4K QD32

Już na pierwszy rzut oka widać, że wraz z wydłużaniem się kolejki poleceń wydawanych kontrolerowi krzywe przesuwają się w prawą stronę. To oznacza, że wykonywanie operacji wejścia-wyjścia zabiera nośnikom coraz więcej czasu. I nie jest to nic dziwnego, bo tak powinny zachowywać się nośniki wyposażone w kości NAND Flash. Nas jednak najbardziej interesują różnice w opóźnieniach między pojedynczym nośnikiem a macierzą RAID0. Niemal we wszystkich próbach opóźnienia w czasie wykonywania operacji wejścia-wyjścia są mniejsze w przypadku macierzy. Wyjątkiem są testy przeprowadzone z użyciem kolejki o długości QD32, kiedy to pojedynczy SSD i macierz osiągają niemal identyczne wyniki. To oznacza, że nawet jeśli w testach syntetycznych w programie Crystal Disk Mark macierz i pojedynczy SSD osiągały zbliżone prędkości losowego odczytu małych próbek danych, to w faktycznych zastosowaniach w podobnym scenariuszu macierz uporałaby się z zadaniem szybciej.

W tych testach zdecydowanie lepiej wypadły nośniki wspomagane przez PrimoCache, co jednak nie zaskakuje. To zasługa pamięci podręcznej w RAM-ie, który wprowadza zdecydowanie mniejsze opóźnienia niż kości NAND Flash. 

Wyniki testu Iometer 1.1.0 – 99,9% operacji wejścia-wyjścia
(Kliknij na nazwę testu w tabelce, żeby otworzyć wykres)
Losowy zapis 4K QD1 Losowy zapis 4K QD2
Losowy zapis 4K QD4 Losowy zapis 4K QD8
Losowy zapis 4K QD16 Losowy zapis 4K QD32

W czasie analizowania wykresów przedstawiających szybkość losowego zapisu małych próbek danych w oczy rzuca się niezwykła spójność osiągów pojedynczego SSD i macierzy RAID0 wspomaganych przez PrimoCache. Wszystkie krzywe, wyjąwszy wykres dotyczący kolejek o długości QD16, pokrywają się niemal idealnie. Podobnie było w testach pojedynczego SSD i tradycyjnej macierzy przeprowadzonych z wykorzystaniem kolejek o długości QD8 i QD32. Reszta wykresów tylko potwierdza nasze wnioski z poprzedniego akapitu.

Ocena artykułu:
Ocen: 7
Zaloguj się, by móc oceniać
Facebook
Ostatnio komentowane