
Здравейте на всички. Продължаваме да ви запознаваме със системата за съхранение на данни Аеродиск ВОСТОК, изградена на базата на руския процесор Елбрус 8C.
В тази статия ние (както обещахме) подробно ще разгледаме една от най-популярните и интересни теми, свързани с Елбрусите, а именно – производителността. Относно производителността на Елбрус има достатъчно спекулации, и то абсолютно противоположни. Песимистите казват, че производителността на Елбрус в момента е "никаква" и че за да навакса "топовите" производители ще са нужни десетилетия (т.е. в условията на настоящата реалност — никога). От друга страна, оптимистите казват, че вече сега Елбрус 8C показва добри резултати, а през следващите два-три години с излизането на новите версии на процесорите (Елбрус 16C и 32C) ще можем да "догонваме и задминаем" водещите световни производители на процесори.
Ние в Аеродиск сме практични хора, затова поехме по най-простия и разбираем (за нас) път: да тестваме, да фиксираме резултатите и едва след това да правим изводи. В резултат проведохме доста на брой тестове и открихме редица особености при работата на архитектурата e2k на Елбрус 8С (включително и приятни) и, разбира се, сравнении с аналогични СХД на процесори Intel Xeon с архитектура amd64.
Между другото, по-подробно за тестовете, резултатите и бъдещото развитие на СХД на Елбрусите ще поговорим на нашия следващ уебинар "ОколоИТ" на 15.10.2020 в 15:00. Можете да се регистрирате по линка по-долу.
→
Тестов стенд
Създадохме две инсталации. И двете инсталации се състоят от сървър с Linux, свързан чрез 16G FC комутатори към два контролера на СХД, в които са инсталирани 12 SAS SSD с капацитет 960 ГБ (11,5 ТБ "ирационален капацитет" или 5,7 ТБ "полезен" капацитет, ако използваме RAID-10).
Схематично инсталацията изглежда по следния начин.

Инсталация №1 e2k (Елбрус)
Конфигурацията на оборудването е следната:
- Linux сървър (2xIntel Xeon E5-2603 v4 (6 ядра, 1,70GHz), 64 GB DDR4, 2xFC адаптер 16G 2 порта) – 1 брой.
- FC комутатор 16 G – 2 броя.
- СХД Аэродиск Восток 2-Е12 (2xЕлбрус 8С (8 ядра, 1,20GHz), 32 GB DDR3, 2xFE FC-адаптер 16G 2 порта, 12xSAS SSD 960 GB) – 1 брой.
Инсталация №2 amd64 (Intel)
За сравнение с аналогичната конфигурация на e2k беше използвана подобна конфигурация на СХД с подобен процесор по характеристики на amd64:
- Linux сървър (2xIntel Xeon E5-2603 v4 (6 ядра, 1,70GHz), 64 GB DDR4, 2xFC адаптер 16G 2 порта) – 1 брой.
- FC комутатор 16 G – 2 броя.
- СХД Aerodisk Engine N2 (2xIntel Xeon E5-2603 v4 (6 ядра, 1,70GHz), 32 GB DDR4, 2xFE FC-адаптер 16G 2 порта, 12xSAS SSD 960 GB) – 1 брой.
Важно да се отбележи, че използваните в теста процесори Елбрус 8С поддържат оперативна памет само DDR3, което е, разбира се, "неприятно, но не за дълго". Елбрус 8СВ (в наличност все още нямаме, но скоро ще бъде) поддържа DDR4.
Методология на тестването
За генериране на натоварване използвахме популярната и изпитана програма Flexible IO (FIO).
И двете СХД са конфигурирани според нашите собствени препоръки за настройка, вземайки предвид изискванията за висока производителност при блочно достъпване, затова използваме дискови пулове DDP (Dynamic Disk Pool). За да не изкривим резултатите от тестовете, на двете СХД деактивираме компресията, дедупликацията и RAM-кеша.
Създадени са 8 D-LUN-а в RAID-10 по 500 ГБ всеки, общият полезен обем е 4 TB (т.е. около 70% от възможния полезен капацитет на тази конфигурация).
Ще се изпълнят основни и популярни сценарии на използване на СХД, а именно:
първите два теста имитират работата на транзакционна база данни. В тази група тестове ни интересуват IOPS и латентността.
1) Случайно четене с малки блокове 4k
a. Размер на блока = 4k
b. Четене/запис = 100%/0%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Full Random
2) Случайно записване с малки блокове 4k
a. Размер на блока = 4k
b. Четене/запис = 0%/100%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Full Random
вторите два теста имитират работата на аналитичната част на базата данни. В тази група тестове също ни интересуват IOPS и латентността.
3) Последователно четене с малки блокове 4k
a. Размер на блока = 4k
b. Четене/запис = 100%/0%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Sequential
4) Последователно записване с малки блокове 4k
a. Размер на блока = 4k
b. Четене/запис = 0%/100%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Sequential
третата група тестове имитира работа с поточно четене (пример – онлайн стрийминг, възстановяване на резервни копия) и поточно записване (пример – видеонаблюдение, запис на резервни копия). В тази група тестове ни интересуват не IOPS, а MB/s и също латентността.
5) Последователно четене с големи блокове 128k
a. Размер на блока = 128k
b. Четене/запис = 0%/100%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Sequential
6) Последователно записване с големи блокове 128k
a. Размер на блока = 128k
b. Четене/запис = 0%/100%
c. Брой операции = 8
d. Дълбочина на опашката = 32
e. Характер на натоварването = Sequential
Всеки тест ще продължи един час, без да се взима предвид времето за загряване на масива от 7 минути.
Резултати от тестовете
Резултатите от тестовете са обобщени в две таблици.
Елбрус 8С (СХД Аеродиск Изток 2-Е12)

Intel Xeon E5-2603 v4 (СХД Аеродиск Engine N2)

Резултатите се оказаха изключително интересни. В двата случая добре използвахме процесорната мощ на СХД (70-90% натовареност), и при такова разпределение ясно се забелязват плюсовете и минусите на двата процесора.
В двете таблици тестов, процесорите, които "работят уверено", са обозначени с зелено, а ситуациите, които те "не предпочитат", са обозначени с оранжево.
Ако говорим за случайно натоварване с малки блокове, то:
- от гледна точка на случайно четене Intel определено е напред, разликата е 2 пъти;
- от гледна точка на случайна запись, резултатите са равни, и двата процесора показаха примерно равни и задоволителни резултати.
При последователно натоварване с малки блокове картината е различна:
- както при четене, така и при запис Intel съществено (с 2 пъти) изпреварва Елбрус. Докато Елбрус има по-нисък IOPS от Intel, но резултатите му са достойни (200-300 хиляди), закъсненията са сериозен проблем (те са три пъти по-високи от тези на Intel). Изводът е, че текущата версия на Елбрус 8С "не обича" последователни натоварвания с малки блокове. Явно има за какво да се работи.
А при последователно натоварване с големи блокове, картината е точно противоположна:
- и двата процесора показаха приблизително равен резултат в MB/s, но има едно НО…. Показателите за закъснения на Елбрус са 10 (десет, Карл!!!) пъти по-добри (т.е. по-ниски) от тези на аналогичния процесор от Intel (0,4/0,5 ms срещу 5,1/6,5 ms). Спочетно си помислихме, че това е грешка, затова повторихме тестовете, но повторното тестване показа същата картина. Това е сериозно предимство на Елбрус (и архитектурата e2k като цяло) пред Intel (и, съответно, архитектурата amd64). Надяваме се, че този успех ще получи допълнително развитие.
Има още една интересна особеност на Елбрус, на която внимателният читател може да обърне внимание, като разгледа таблицата. Ако погледнем разликата в показателите за четене и запис на Intel, в всички тестове четенето е напред с около 50%+. Това е нормата, с която всички (включително и ние) сме свикнали. Ако погледнем Елбрус, показателите за запис са значително по-близо до показателите за четене, четенето обикновено изпреварва записа с 10 – 30%, но не повече.
Какво означава това? Че Елбрус "много обича" записите, а това, от своя страна, показва, че този процесор ще бъде особено полезен в задачи, където записът явно преобладава над четенето (кой каза закона на Ярова?), което също е неоспоримо предимство на архитектурата e2k, и това предимство трябва да бъде развивано.
Изводи и близко бъдеще
Сравнителните тестове между процесорите Елбрус и Intel в задачи за съхранение на данни показаха приблизително равни и достойни резултати, като всеки процесор прояви свои интересни особености.
Intel значително надмина Елбрус в случайно четене на малки блокове, както и в последователно четене и запис на малки блокове.
При случайно записване на малки блокове и двата процесора показват равни резултати.
По показателите на забавяне Елбрус изглежда значително по-добре от Intel в потокова натовареност, т.е. в последователно четене и запис на големи блокове.
Освен това, в противовес на Intel, Елбрус успешно се справя както с натоварванията за четене, така и с натоварванията за запис, докато при Intel четенето винаги е значително по-добро от записването.
Изхождайки от получените резултати, можем да направим извода за приложимостта на системите за съхранение на данни Аеродиск Восток на процесора Елбрус 8С в следните задачи:
- информационни системи с преобладание на операции по запис;
- файлов достъп;
- онлайн предаване;
- видео наблюдение;
- резервно копиране;
- медийно съдържание.
Екипът на МЦСТ все още има работа, но резултатите от тяхната работа вече са видими, което, разбира се, е радващо.
Тестовете бяха проведени на Linux ядрото за e2k версия 4.19, в момента в бета тестване (в МЦСТ, в Базальт СПО, а също и при нас, в Аэродиск) е ядро Linux 5.4-e2k, в което, освен всичко друго, е сериозно преработено планировчика и много оптимизации за бързи твердотелни устройства. Специално за ядерната версия 5.х.х, АО «МЦСТ» издава нов компилатор LCC версия 1.25. Според предварителните резултати, на същия процесор Елбрус 8С, новосъбраното ядро с новия компилатор, средата на ядрото, системните утилити и библиотеки, а също и софтуера Аэродиск ВОСТОК, ще позволят да се постигне още по-значителен ръст на производителността. И това без смяна на оборудването — на същия процесор и с същите честоти.
Очакваме излизането на версия Аэродиск ВОСТОК на базата на ядро 5.4 по-близо до края на годината, и веднага щом работата по новата версия бъде завършена, ще актуализираме резултатите от тестовете и също ще ги публикуваме тук.
Ако сега се върнем в началото на статията и отговорим на въпроса, кой е прав: песимистите, които казват, че Елбрус е „нещо“ и никога няма да настигне водещите производители на процесори, или все пак оптимистите, които твърдят, че „вече почти са настигнали и скоро ще задминат“? Ако се изхожда не от стереотипи и религиозни предразсъдъци, а от реални тестове, то категорично прави са оптимистите.
Елбрус вече показва добри резултати, когато се сравнява с amd64 процесори от средния клас. До върховите модели на сървърни процесори Intel или AMD 8-ка Елбруса, разбира се, има още далеч, но той и не е целял това, за целта ще бъдат пуснати процесори 16С и 32С. Тогава ще поговорим.
Разбираме, че след тази статия въпросите за Елбрус ще станат още повече, затова решихме да организираме още един онлайн уебинар „ОколоИТ“, за да отговорим на тези въпроси на живо.
Този път гостът ни ще бъде заместник генерялният директор на компанията МЦСТ, Константин Трушкин. Записването за уебинара може да стане по линка по-долу.
→
Благодарим на всички, както обикновено очакваме конструктивна критика и интересни въпроси.
Източник: habr.com
