Elbrus kontra Intel. Porównanie wydajności systemów przechowywania danych Aerodisk Vostok i Engine

Elbrus kontra Intel. Porównanie wydajności systemów przechowywania danych Aerodisk Vostok i Engine

Cześć wszystkim. W dalszym ciągu przedstawiamy Państwu system przechowywania danych Aerodisk VOSTOK, oparty na rosyjskim procesorze Elbrus 8C.

W tym artykule (zgodnie z obietnicą) szczegółowo przeanalizujemy jeden z najpopularniejszych i ciekawszych tematów związanych z Elbrusem, a mianowicie produktywność. Spekulacji na temat występu Elbrusa jest sporo i to absolutnie polarnych. Pesymiści twierdzą, że produktywność Elbrusa jest obecnie „zerowa”, a dogonienie „topowych” producentów zajmie dziesięciolecia (czyli w obecnej rzeczywistości nigdy). Z drugiej strony optymiści twierdzą, że Elbrus 8C już wykazuje dobre wyniki, a w ciągu najbliższych kilku lat, wraz z wypuszczeniem nowych wersji procesorów (Elbrus 16C i 32C), będziemy w stanie „dogonić i wyprzedzić” wiodących na świecie producentów procesorów.

W Aerodisku jesteśmy ludźmi praktycznymi, dlatego wybraliśmy najprostszą i najbardziej zrozumiałą dla nas drogę: przetestuj, zapisz wyniki i dopiero wtedy wyciągnij wnioski. W rezultacie przeprowadziliśmy dość dużą liczbę testów i odkryliśmy wiele cech operacyjnych architektury Elbrus 8C e2k (w tym przyjemnych) i oczywiście porównaliśmy to z podobnymi systemami pamięci masowej na procesorach o architekturze Intel Xeon amd64.

Przy okazji, szerzej o testach, wynikach i przyszłym rozwoju systemów magazynowania na Elbrusie porozmawiamy podczas naszego kolejnego webinaru „OkoloIT”, który odbędzie się 15.10.2020 października 15 r. o godzinie 00:XNUMX. Rejestracji można dokonać korzystając z poniższego linku.

Rejestracja na seminarium internetowe

Stanowisko badawcze

Stworzyliśmy dwa stoiska. Obydwa stanowiska składają się z serwera z systemem Linux, połączonego za pomocą przełączników 16G FC z dwoma kontrolerami pamięci masowej, w których zainstalowanych jest 12 dysków SAS SSD 960 GB (11,5 TB „pojemności surowej” lub 5,7 TB pojemności „użytecznej”, jeśli korzystamy z RAID -10).

Schematycznie stojak wygląda tak.

Elbrus kontra Intel. Porównanie wydajności systemów przechowywania danych Aerodisk Vostok i Engine

Stoisko nr 1 e2k (Elbrus)

Konfiguracja sprzętu wygląda następująco:

  • Serwer Linux (2xIntel Xeon E5-2603 v4 (6 rdzeni, 1,70 Ghz), 64 GB DDR4, 2xFC adapter 16G 2 porty) – 1 szt.
  • Przełącznik FC 16 G – 2 szt.
  • System przechowywania danych Aerodisk Vostok 2-E12 (2xElbrus 8C (8 rdzeni, 1,20 Ghz), 32 GB DDR3, 2xFE FC-adapter 16G 2 porty, 12xSAS SSD 960 GB) - 1 szt.

Podstawka nr 2 amd64 (Intel)

Dla porównania z podobną konfiguracją na e2k zastosowaliśmy podobną konfigurację pamięci z procesorem o charakterystyce podobnej do amd64:

  • Serwer Linux (2xIntel Xeon E5-2603 v4 (6 rdzeni, 1,70 Ghz), 64 GB DDR4, 2xFC adapter 16G 2 porty) – 1 szt.
  • Przełącznik FC 16 G – 2 szt.
  • System przechowywania danych Aerodisk Engine N2 (2xIntel Xeon E5-2603 v4 (6 rdzeni, 1,70 Ghz), 32 GB DDR4, 2xFE FC-adapter 16G 2 porty, 12xSAS SSD 960 GB) - 1 szt.

Ważna uwaga: użyte w teście procesory Elbrus 8C obsługują tylko pamięć RAM typu DDR3, co jest oczywiście „złe, ale nie na długo”. Elbrus 8SV (nie mamy go jeszcze w magazynie, ale wkrótce będziemy mieć) obsługuje DDR4.

Metodologia testów

Do wygenerowania obciążenia wykorzystaliśmy popularny i sprawdzony program Elastic IO (FIO).

Obydwa systemy pamięci masowej są skonfigurowane zgodnie z naszymi zaleceniami konfiguracyjnymi, opartymi na wymaganiach dotyczących wysokiej wydajności w zakresie dostępu blokowego, dlatego korzystamy z pul dyskowych DDP (Dynamic Disk Pool). Aby nie zniekształcić wyników testu, wyłączamy kompresję, deduplikację i pamięć podręczną RAM w obu systemach pamięci masowej.

Utworzono 8 jednostek D-LUN w układzie RAID-10 po 500 GB każda, o łącznej pojemności użytkowej 4 TB (tj. około 70% możliwej pojemności użytkowej tej konfiguracji).

Realizowane będą podstawowe i popularne scenariusze wykorzystania systemów magazynowania, w szczególności:

pierwsze dwa testy emulują działanie transakcyjnego systemu DBMS. W tej grupie testów interesują nas IOPS i opóźnienia.

1) Losowy odczyt w małych blokach 4k
A. Rozmiar bloku = 4 tys
B. Odczyt/zapis = 100%/0%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = Pełny losowy

2) Losowe nagrywanie w małych blokach 4k
A. Rozmiar bloku = 4 tys
B. Odczyt/zapis = 0%/100%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = Pełny losowy

dwa drugie testy emulują działanie części analitycznej SZBD. W tej grupie testów interesują nas również IOPS i opóźnienia.

3) Odczyt sekwencyjny w małych blokach 4k
A. Rozmiar bloku = 4 tys
B. Odczyt/zapis = 100%/0%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = sekwencyjny

4) Nagrywanie sekwencyjne w małych blokach 4k
A. Rozmiar bloku = 4 tys
B. Odczyt/zapis = 0%/100%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = sekwencyjny

Trzecia grupa testów emuluje pracę odczytu strumieniowego (przykład: transmisje online, przywracanie kopii zapasowych) i nagrywania strumieniowego (przykład: monitoring wideo, nagrywanie kopii zapasowych). W tej grupie testów nie interesują nas już IOPS, ale MB/s i także opóźnienia.

5) Odczyt sekwencyjny w dużych blokach po 128 tys
A. Rozmiar bloku = 128 tys
B. Odczyt/zapis = 0%/100%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = sekwencyjny

6) Nagrywanie sekwencyjne w dużych blokach po 128 tys
A. Rozmiar bloku = 128 tys
B. Odczyt/zapis = 0%/100%
C. Liczba prac = 8
D. Głębokość kolejki = 32
mi. Załaduj znak = sekwencyjny

Każdy test będzie trwał jedną godzinę, z wyłączeniem czasu nagrzewania macierzy wynoszącego 7 minut.

Wyniki testu

Wyniki testu podsumowano w dwóch tabelach.

Elbrus 8S (SHD Aerodisk Vostok 2-E12)

Elbrus kontra Intel. Porównanie wydajności systemów przechowywania danych Aerodisk Vostok i Engine

Intel Xeon E5-2603 v4 (system pamięci masowej Aerodisk Engine N2)

Elbrus kontra Intel. Porównanie wydajności systemów przechowywania danych Aerodisk Vostok i Engine

Wyniki okazały się niezwykle interesujące. W obu przypadkach dobrze wykorzystaliśmy moc obliczeniową systemu Storage (wykorzystanie 70-90%) i w tej sytuacji wady i zalety obu procesorów są wyraźnie widoczne.

W obu tabelach na zielono zaznaczono testy, w których procesorzy „czują się pewnie” i wykazują dobre wyniki, a na pomarańczowo zaznaczono sytuacje, których „nie lubią” procesorzy.

Jeśli mówimy o losowym obciążeniu w małych blokach, to:

  • z punktu widzenia losowego odczytu Intel z pewnością wyprzedza Elbrusa, różnica jest 2-krotna;
  • z punktu widzenia nagrywania losowego to zdecydowanie remis, oba procesory pokazały w przybliżeniu równe i przyzwoite wyniki.

Przy obciążeniu sekwencyjnym w małych blokach obraz jest inny:

  • zarówno w czytaniu, jak i pisaniu Intel znacznie (2 razy) wyprzedza Elbrus. Jednocześnie, jeśli Elbrus ma wskaźnik IOPS niższy od Intela, ale wygląda przyzwoicie (200-300 tys.), to oczywistym problemem są opóźnienia (są trzykrotnie wyższe niż u Intela). Podsumowując, aktualna wersja Elbrusa 8C naprawdę „nie lubi” obciążeń sekwencyjnych w małych blokach. Jasne jest, że jest nad czym pracować.

Ale przy sekwencyjnym ładowaniu dużymi blokami obraz jest dokładnie odwrotny:

  • oba procesory wykazały w przybliżeniu równe wyniki w MB/s, ale jest jedno ALE.... Wydajność Elbrusa w zakresie opóźnień jest 10 (dziesięć, Karl!!!) razy lepsza (tj. niższa) niż w przypadku podobnego procesora Intela (0,4/0,5 ms w porównaniu z 5,1/6,5 ms). Na początku myśleliśmy, że to usterka, więc sprawdziliśmy wyniki ponownie, przeprowadziliśmy ponowny test, ale ponowny test pokazał ten sam obraz. To poważna przewaga Elbrusa (i ogólnie architektury e2k) nad Intelem (i odpowiednio architekturą amd64). Miejmy nadzieję, że ten sukces będzie dalej rozwijany.

Elbrus ma jeszcze jedną ciekawą cechę, na którą uważny czytelnik może zwrócić uwagę, patrząc na tabelę. Jeśli spojrzeć na różnicę między wydajnością odczytu i zapisu Intela, to we wszystkich testach odczyt wyprzedza zapis średnio o około 50% +. To norma, do której wszyscy (w tym my) są przyzwyczajeni. Jeśli spojrzysz na Elbrus, wskaźniki zapisu są znacznie bliższe wskaźnikom czytania, czytanie wyprzedza pisanie z reguły o 10–30%, nie więcej.

Co to znaczy? Fakt, że Elbrus „naprawdę kocha” pisanie, a to z kolei sugeruje, że procesor ten będzie bardzo przydatny w zadaniach, w których pisanie wyraźnie przeważa nad czytaniem (kto powiedział prawo Yarovaya?), co jest także niewątpliwą zaletą architektury e2k, oraz tę przewagę należy rozwijać.

Wnioski i najbliższa przyszłość

Testy porównawcze procesorów średniej klasy Elbrus i Intel do zadań przechowywania danych wykazały w przybliżeniu równe i równie godne wyniki, podczas gdy każdy procesor pokazał swoje własne interesujące funkcje.

Intel znacznie przewyższał Elbrusa w losowym odczycie w małych blokach, a także w sekwencyjnym odczycie i zapisie w małych blokach.

Podczas zapisu losowego w małych blokach oba procesory wykazują równe wyniki.

Pod względem opóźnień Elbrus wygląda znacznie lepiej niż Intel w obciążeniu strumieniowym, tj. w sekwencyjnym czytaniu i pisaniu dużymi blokami.

Poza tym Elbrus w odróżnieniu od Intela radzi sobie równie dobrze zarówno z obciążeniami odczytu, jak i zapisu, natomiast przy Intelu czytanie jest zawsze dużo lepsze niż pisanie.
Na podstawie uzyskanych wyników można wyciągnąć wniosek o przydatności systemów przechowywania danych Aerodisk Vostok na procesorze Elbrus 8C w następujących zadaniach:

  • systemy informatyczne z przewagą operacji zapisu;
  • dostęp do plików;
  • transmisje online;
  • telewizja przemysłowa;
  • kopia zapasowa;
  • zawartość mediów.

Zespół MCST ma jeszcze nad czym pracować, ale już widać efekt ich pracy, z czego oczywiście nie można się nie cieszyć.

Testy te zostały przeprowadzone na jądrze Linuksa dla e2k w wersji 4.19, obecnie w testach beta (w MCST, w Basalt SPO, a także tutaj w Aerodisku) znajduje się jądro Linuksa 5.4-e2k, w którym m.in. został poważnie przeprojektowany harmonogram i wiele optymalizacji dla szybkich dysków półprzewodnikowych. Ponadto, specjalnie dla jąder gałęzi 5.xx, firma MCST JSC wydaje nowy kompilator LCC w wersji 1.25. Według wstępnych wyników, na tym samym procesorze Elbrus 8C, nowe jądro skompilowane z nowym kompilatorem, środowiskiem jądra, narzędziami systemowymi i bibliotekami oraz w rzeczywistości oprogramowaniem Aerodisk VOSTOK pozwoli na jeszcze bardziej znaczący wzrost wydajności. I to bez wymiany sprzętu - na tym samym procesorze i przy tych samych częstotliwościach.

Pod koniec roku spodziewamy się wydania wersji Aerodisk VOSTOK opartej na jądrze 5.4, a gdy tylko prace nad nową wersją zakończą się, zaktualizujemy wyniki testów i opublikujemy je również tutaj.

Jeśli teraz wrócimy do początku artykułu i odpowiemy na pytanie, kto ma rację: pesymiści, którzy twierdzą, że Elbrus to „nic” i nigdy nie dogonią czołowych producentów procesorów, czy optymiści, którzy twierdzą, że „już prawie dogonili w górę i wkrótce wyprzedzę”? Jeśli nie będziemy opierać się na stereotypach i uprzedzeniach religijnych, ale na prawdziwych testach, to optymiści z pewnością mają rację.

Elbrus już teraz wykazuje dobre wyniki w porównaniu z procesorami amd64 średniej półki. Elbrus 8-ke jest oczywiście daleki od topowych modeli procesorów serwerowych Intela czy AMD, ale nie był tam skierowany; w tym celu zostaną wypuszczone procesory 16C i 32C. Potem porozmawiamy.

Rozumiemy, że po tym artykule pytań dotyczących Elbrusa będzie jeszcze więcej, dlatego postanowiliśmy zorganizować kolejne webinarium online „OkoloIT”, aby na żywo odpowiedzieć na te pytania.

Tym razem naszym gościem będzie Zastępca Dyrektora Generalnego firmy MCST Konstantin Trushkin. Na webinar możesz zarejestrować się korzystając z poniższego linku.

Rejestracja na seminarium internetowe

Dziękuję wszystkim, jak zawsze czekamy na konstruktywną krytykę i ciekawe pytania.

Źródło: www.habr.com

Dodaj komentarz