Zavřít
Wprowadź Śledź nas

3S.cz

Sekcja specjalistyczna

JAK WYBRAĆ MACIERZ – część 4

13.11.2015, 14:06

Nasi mili czytelnicy, przede wszystkim dziękujemy wam za rosnące zainteresowanie, to jest dla nas impuls, aby dalej pracować nad naszym cieszącym się niewątpliwym powodzeniem serialem: Jak wybrać macierz.

Nawet w takie dziedzinie jak IT cała gama producentów nie szczędzi marketerami, którzy z pomysłowością współzawodniczą z celem, jak w „kreatywny ” sposób zamaskować obiektywnie wzięte złe właściwości macierzy. Kolejny odcinek naszej cieszącej się powodzeniem serii poświęcimy problematyce „Storage Performance“.             

Nie do zlekceważenia jest fakt, że nawet drobna zmiana w nastawieniu parametrów stress testu macierzy może wywołać różnicę w zmierzonych wartościach wydajności nawet dziesięcio- czy stukrotnie.

 

JAK ZMIERZYĆ WYDAJNOŚĆ MACIERZY?

Można tak uczynić korzystając z któregoś programu testującego, ten stwarza syntetyczne obciążenie macierzy. Do wyboru jest dosyć duża ilość programów, np. IOzone, IOmeter, SQLIO a ci, którzy się poruszają w branży „video entertainment“, będą znali wyjątkowy projekt FIO umożliwiający wygenerować obciążenie typowe dla aplikacji HD-recording.   

Jednak wspólna cechą wszystkich programów jest fakt, że w celu wykonania testu trzeba zdefiniować parametry obciążenia roboczego (workload). A tych może być całe mnóstwo. Odczyt czy zapis, sekwencyjne czy przypadkowe operacje, wielkość bloków, ilość konkurencyjnych streamów i wiele innych. Jak już wspomniałem na wstępie, nawet drobne zmiany parametrów mogą mieć całkowicie inne wpływy do algorytmów macierzy a zmierzone wyniki się mogą diametralnie zmieniać.

Co z tego wynika? Sama informacja, że macierz była w stanie poradzić sobie np. z 50 000 operacji wejścia-wyjścia za sekundę, wcale o niczym nie świadczy.  W ramach określonych warunków testu z tym obciążeniem da sobie radę low-end z Tajwanu (z wielkim szacunkiem, produkuje się tutaj cały szereg dobrych rozwiązań), przy innych parametrach testu będą miały z tym wymaganiem problemy nawet Hi-End modele kilku producentów znanych nazw (a to jeszcze będą sobie musiały pomóc SSD dyskami).                               

Swoją drogą, jeśli chcemy wprowadzić regulamin do porównywania macierzy, odpowiedzią jest standaryzacja warunków testów.  Czynem godnym pochwały jest działanie organizacji Storage Performance Council, która stworzyła tzw. SPC standardy w celu testowania macierzy.

 

STORAGE PERFORMANCE COUNCIL

Strony tej organizacji znajdziecie na www.storageperformance.org. Tutaj przebiega jednolity i uczciwy test wydajności macierzy.

Wiarygodność i duch fair play programu SPC jest napełniony faktem, że zmierzone wyniki muszą zostać zaakceptowane przez wszystkich członków rady SPC, a to są prawie wszyscy producenci macierzy. Wynikiem każdego testu SPC jest elaborat podsumowujący podstawowe fakty o tym, jaka konfiguracja była testowana i jakie osiągnięto wyniki.

Testy są standaryzowane a każdy jest mierzony jednakowo. Test SPC-1 celuje w prędkość transakcji, czyli IOPs. Test SPC-2 celuje w prędkość transferu, czyli przenikalność macierzy, więc MB/s.

W zwykłych aplikacjach centrum danych, również dzięki wirtualizacji serwera jednoznacznie przeważają przypadkowe operacje, w związku z tym ma sens zajmować się zwłaszcza testami SPC-1. Niech mi koledzy z branży video entertainment wybaczą, testami SPC-2 będziemy się zajmować kiedyś w przyszłości.

 

ZATEM JAK DZIAŁA SPC-1 TEST?

Zasada testu opiera się na symulacji typowego funkcjonowania w centrum danych – czyli naśladowanie funkcjonowania systemów bazy danych, danych użytkownika i logowania. Te trzy funkcje są realizowane za pomocą tzw. „ASU Workers“, a to nie jest nic innego jak tylko generator obciążenia danych parametrów. Każdy z ASU Workers pracuje z określoną ilością konkurencyjnych streamów a to tak, aby wypadkowa wszystkich tych obciążeń jak najlepiej korespondowała z rzeczywistością centrum danych.

 

Na wyżej wspomnianych stronach internetowych można znaleźć performance testy dla całej masy producentów. Jednolita metodologia testowania ograniczyła producentom możliwość postawienia sobie warunków testu „na wymiar” a to tak, aby osiągnąć olśniewające, ale w praktyce nierealne wyniki. 

Przestrzeń dla producentów na „triki marketingowe“ była dzięki testom SPC w znacznym stopniu zawężona, ale kilka asów w rękawie zostało. Jest to spowodowane faktem, iż testy SPC powstały jeszcze przed wejściem mnóstwa nowych technologii a nie w pełni reflektują ich specyficzne właściwości.

Na przykład wejście systemów pamięci masowej zbudowanych na architekturze Intel i embedowanym systemie operacyjnym Linux/Unix, dla których jest typowy eksponencjalny postęp wewnętrznych nakładów przy wypełnieniu pojemności w typowy sposób nad 60 %. Albo możliwa niestabilność wydajności SSD spowodowana ich skomplikowanymi algorytmami zapisywania.

W takich to właśnie przypadkach producent usiłuje ograniczyć długość testu lub nie testować na całej dostępnej pojemności a to tak, aby parametry produktu pokazały się w lepszym świetle. Pomimo to o tych trikach napiszemy następnym razem a teraz z powrotem do ocenienia wydajności macierzy. 

 

O CZYM WYPOWIADA TEST SPC-1?

Wyniki testów SPC wypowiadają o potencjale wydajności danej macierzy. Oczywiście pod jednym ważnym warunkiem - a to jest wystarczająca ilość dysków. Dlatego konfiguracje macierzy w testach SPC bywają blisko maksymalnej możliwej ilości dysków. Powiedziano w trochę uproszczony sposób – wydajność całości jest dana wydajnością managerów (kontrolerów) a następnie ilością i wydajnością robotników (dysków). Jednak w praktyce ilości dysków bywają na ułamek od maximum danej macierzy. Potencjał wydajności kontrolerów je później limitowany wydajnością dyskowych zasobów. Kluczem do ustalenia potencjału wydajności jest ocena wszystkich aspektów.

 

NIE CHODZI TYLKO O ILOŚĆ!

Wynikiem testów SPC jest obszerny elaborat, który oprócz kwantytatywnego punktu widzenia (ile macierz osiągnęła IOPs) zajmuje się również następnym często pomijanym aspektem. Chodzi tutaj o jakość usługi albo w trakcie jakich czasów reakcji osiągnęła tę wydajność. Wydajność aplikacji, bazy danych itp. nie zależy tylko od tego, jakie maksimum IOPs jest macierz w stanie osiągnąć, ale przede wszystkim, z jakim czasem reakcji jest zdolna te I/O operacje obsłużyć.             

I tutaj wielu producentów zaczyna się różnić. Przede wszystkim systemy, które są wewnętrznie skomplikowane, np. wcześniej wspomniana macierz definiowana programowo wyzdradzi na siebie fakt, że przy obciążeniu czas reakcji ekstremalnie wzrasta wskutek wysokich wewnętrznych nakładów.

W praktyce panuje utarty zwyczaj, że użyteczne latencje macierzy są do 5 ms. Wszystko, co jest ponad, ma wpływ na aplikacje. Dlatego jest dobre, aby przy ocenie wyników testu SPC wziąć pod uwagę nie tylko osiągniętą ilość IOPs, ale przed wszystkim ilość operacji obsłużonych do 5 ms. Liczne SPC testy wzorcowe (benchmarki) by później mogły się pokazać w innym świetle, dlatego że realna wydajność, w ramach której latencje są jeszcze znośne, by była istotnie mniejsza.

Spójrzmy na przykład SPC benchmarku dla macierzy Hitachi HUS-VM. Chodzi o test konfiguracji z „obrotowymi” dyskami.

Graf pokazuje, że system był w stanie obsłużyć około 181 000 IOPs i wszystkie te operacje były obsłużone grubo poniżej limitu 5 ms. Taka macierz się będzie w centrum danych zachowywać poprawnie i w sposób przewidywalny. Nawiasem mówiąc full-flash konfiguracja HUS-VM osiągnęła 300 000 IOPs, przy czym 100 % operacji było obsłużonych poniżej 1 ms, a to jest wynik, którego normalni producenci systemów w ogóle nie są w stanie osiągnąć.

 

W kolejnym odcinku postaramy się odpowiedzieć na pozornie proste pytanie – Co ma większą wydajność RAID 5 albo RAID 10?

Czekamy na państwa reakcje.