
Bonjour à tous. Nous continuons à vous présenter le système de stockage de données Аэродиск ВОСТОК, basé sur le processeur russe Эльбрус 8C.
Dans cet article, nous allons examiner en détail l'un des sujets les plus populaires et les plus intéressants liés aux Éльбрусы, à savoir la performance. De nombreuses spéculations existent sur la performance des Éльбрусы, et elles sont parfois diamétralement opposées. Les pessimistes affirment que la performance de l'Éльбрус est actuellement « inexistante », et qu'il faudra des décennies pour rattraper les « leaders » du secteur (c'est-à-dire qu'avec la situation actuelle, cela ne se produira jamais). D'un autre côté, les optimistes soutiennent que l'Éльбрус 8C présente déjà de bons résultats, et que dans les prochaines années, avec les nouvelles versions de processeurs (Эльбрус 16С et 32С), nous pourrons « rattraper et dépasser » les principaux fabricants mondiaux de processeurs.
Chez Аэродиск, nous sommes des gens pratiques, nous avons donc adopté la méthode la plus simple et la plus compréhensible (pour nous) : tester, enregistrer les résultats et ne tirer des conclusions qu'après. En fin de compte, nous avons réalisé un grand nombre de tests et découvert plusieurs particularités du fonctionnement de l'Éльбрус 8С de l'architecture e2k (y compris quelques agréables), et bien sûr, nous avons comparé cela à des systèmes de stockage similaires basés sur des processeurs Intel Xeon de l'architecture amd64.
D'ailleurs, nous aborderons plus en détail les tests, les résultats et l'avenir des systèmes de stockage basés sur les Éльбрусы lors de notre prochain webinaire "ОколоИТ" le 15.10.2020 à 15h00. Vous pouvez vous inscrire via le lien ci-dessous.
→
Stand de test
Nous avons créé deux bancs d'essai. Les deux bancs d'essai sont composés d'un serveur tournant sous Linux, connecté via des commutateurs FC 16G à deux contrôleurs de système de stockage, lesquels contiennent 12 disques SSD SAS de 960 Go (11,5 To de capacité brute ou 5,7 To de capacité utile, si nous utilisons RAID-10).
Schématiquement, le banc d'essai ressemble à ceci.

Banc d'essai n°1 e2k (Эльбрус)
La configuration du matériel est la suivante :
- Serveur Linux (2xIntel Xeon E5-2603 v4 (6 cœurs, 1,70 GHz), 64 Go DDR4, 2xFC-adaptateur 16G 2 ports) – 1 unité.
- Commutateur FC 16 G – 2 unités.
- Système de stockage Аэродиск Восток 2-Э12 (2xЭльбрус 8С (8 cœurs, 1,20 GHz), 32 Go DDR3, 2xFE FC-adaptor 16G 2 ports, 12xSAS SSD 960 Go) – 1 unité.
Banc d'essai n°2 amd64 (Intel)
Pour la comparaison avec la configuration similaire sur e2k, une configuration de système de stockage similaire utilisant un processeur aux caractéristiques semblables basé sur amd64 a été utilisée :
- Serveur Linux (2xIntel Xeon E5-2603 v4 (6 cœurs, 1,70 GHz), 64 Go DDR4, 2xFC-adaptateur 16G 2 ports) – 1 unité.
- Commutateur FC 16 G – 2 unités.
- Système de stockage Aerodisk Engine N2 (2xIntel Xeon E5-2603 v4 (6 cœurs, 1,70 GHz), 32 Go DDR4, 2xFE FC-adaptateur 16G 2 ports, 12xSAS SSD 960 Go) – 1 unité.
Remarque importante : les processeurs Elbrus 8C utilisés dans le test ne supportent que la mémoire vive DDR3, ce qui est certes « mauvais, mais temporaire ». L'Elbrus 8SV (qui n'est pas encore en stock chez nous, mais le sera bientôt) prend en charge la DDR4.
Méthodologie de test
Pour générer la charge, nous avons utilisé un programme populaire et éprouvé, Flexible IO (FIO).
Les deux systèmes de stockage sont configurés selon nos propres recommandations, en fonction des exigences de haute performance en accès bloc, c'est pourquoi nous utilisons des pools de disques DDP (Dynamic Disk Pool). Afin de ne pas fausser les résultats des tests, nous désactivons la compression, la déduplication et le cache RAM sur les deux systèmes.
Huit D-LUN ont été créés en RAID-10 de 500 Go chacun, le volume utile total est de 4 To (soit environ 70 % de la capacité utile maximale de cette configuration).
Les principaux et populaires scénarios d'utilisation des systèmes de stockage seront exécutés, en particulier :
Les deux premiers tests simulent le fonctionnement d'un SGBD transactionnel. Dans ce groupe de tests, nous nous intéressons aux IOPS et à la latence.
1) Lecture aléatoire de petits blocs de 4k
a. Taille du bloc = 4k
b. Lecture/écriture = 100 % / 0 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Full Random
2) Écriture aléatoire de petits blocs de 4k
a. Taille du bloc = 4k
b. Lecture/écriture = 0 % / 100 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Full Random
Les deux derniers tests simulent le fonctionnement de la partie analytique d'un SGBD. Dans ce groupe de tests, nous nous intéressons également aux IOPS et à la latence.
3) Lecture séquentielle de petits blocs de 4k
a. Taille du bloc = 4k
b. Lecture/écriture = 100 % / 0 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Sequential
4) Écriture séquentielle de petits blocs de 4k
a. Taille du bloc = 4k
b. Lecture/écriture = 0 % / 100 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Sequential
Le troisième groupe de tests simule le fonctionnement de la lecture en continu (par exemple, les diffusions en direct, la restauration de sauvegardes) et de l'écriture en continu (par exemple, la vidéosurveillance, l'enregistrement de sauvegardes). Dans ce groupe de tests, nous nous intéressons non pas aux IOPS, mais aux MB/s et également à la latence.
5) Lecture séquentielle de grands blocs de 128k
a. Taille du bloc = 128k
b. Lecture/écriture = 0 % / 100 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Sequential
6) Écriture séquentielle de grands blocs de 128k
a. Taille du bloc = 128k
b. Lecture/écriture = 0 % / 100 %
c. Nombre de travaux = 8
d. Profondeur de la file d'attente = 32
e. Caractère de la charge = Sequential
Chaque test durera une heure sans tenir compte du temps de préchauffage du tableau de 7 minutes.
Résultats des tests
Les résultats des tests sont résumés dans deux tableaux.
Elbrus 8C (Système de stockage Aerodisk Est 2-E12)

Intel Xeon E5-2603 v4 (Système de stockage Aerodisk Engine N2)

Les résultats sont extrêmement intéressants. Dans les deux cas, nous avons bien utilisé les capacités de traitement des systèmes de stockage (70-90 % d'utilisation), et dans cette configuration, les avantages et inconvénients des deux processeurs sautent aux yeux.
Dans les deux tableaux, les tests où les processeurs se « sentent à l'aise » et affichent de bons résultats sont en vert, tandis que les situations que les processeurs « n'apprécient pas » sont en orange.
En ce qui concerne la charge aléatoire par petits blocs, on peut dire que :
- du point de vue de la lecture aléatoire, Intel est sans aucun doute en tête, avec une différence de 2 fois ;
- du point de vue de l'écriture aléatoire, c'est clairement égal, les deux processeurs ont montré des résultats à peu près équivalents et dignes.
Dans la charge séquentielle par petits blocs, la situation est différente :
- tant en lecture qu'en écriture, Intel dépasse nettement (de 2 fois) Elbrus. Toutefois, bien qu'Elbrus ait un score IOPS inférieur à celui d'Intel, il est respectable (200-300 mille), les latences posent un problème évident (elles sont trois fois plus élevées que celles d'Intel). En conclusion, la version actuelle d'Elbrus 8S « n'apprécie vraiment pas » les charges séquentielles par petits blocs. Il y a clairement du travail à faire.
En revanche, dans la charge séquentielle par gros blocs, la situation est exactement opposée :
- les deux processeurs ont montré des résultats à peu près équivalents en MB/s, mais il y a un MAIS…. Les taux de latence d'Elbrus sont 10 (dix, Carl !!!) fois meilleurs (c'est-à-dire plus bas) que ceux du processeur Intel équivalent (0,4/0,5 ms contre 5,1/6,5 ms). Au départ, nous avons pensé que c'était un bug, donc nous avons vérifié les résultats, effectué un test répété, mais le test répété a montré le même résultat. C'est un avantage sérieux d'Elbrus (et de l'architecture e2k en général) par rapport à Intel (et, par conséquent, à l'architecture amd64). Espérons que ce succès se développera davantage.
Il y a une autre caractéristique intéressante d'Elbrus à laquelle le lecteur attentif peut prêter attention en regardant le tableau. Si l'on examine la différence entre les taux de lecture et d'écriture d'Intel, on constate que dans tous les tests, la lecture dépasse l'écriture d'environ 50 % en moyenne. C'est la norme à laquelle tout le monde (y compris nous) est habitué. En revanche, pour Elbrus, les taux d'écriture sont beaucoup plus proches des taux de lecture, la lecture dépasse l'écriture, généralement de 10 à 30 %, pas plus.
Que cela signifie-t-il ? Cela signifie qu'Elbrus « apprécie beaucoup » l'écriture, ce qui, à son tour, indique que ce processeur sera très utile dans des tâches où l'écriture l'emporte clairement sur la lecture (qui a dit la loi Yarovaya ?), ce qui est également un avantage indéniable de l'architecture e2k, et cet avantage doit être développé.
Conclusions et avenir proche
Les tests comparatifs des processeurs de niveau intermédiaire Elbrus et Intel pour les tâches de stockage de données ont montré des résultats à peu près équivalents et tout aussi dignes, chaque processeur ayant montré ses caractéristiques intéressantes.
Intel a largement dépassé Elbrus en lecture aléatoire de petits blocs, ainsi qu'en lecture et écriture séquentielles de petits blocs.
En écriture aléatoire de petits blocs, les deux processeurs affichent des résultats équivalents.
En termes de latence, Elbrus semble nettement supérieur à Intel sous charge en continu, c'est-à-dire en lecture et écriture séquentielles de grands blocs.
De plus, contrairement à Intel, Elbrus gère également bien les charges de lecture et d'écriture, tandis qu'Intel excelle toujours en lecture par rapport à l'écriture.
Sur la base des résultats obtenus, on peut conclure que les systèmes de stockage de données Aérodisk Vostok sur le processeur Elbrus 8C sont applicables dans les tâches suivantes :
- systèmes d'information avec prédominance des opérations d'écriture ;
- accès aux fichiers ;
- diffusions en direct ;
- vidéosurveillance ;
- sauvegarde ;
- contenu multimédia.
L'équipe de MCST a encore du travail devant elle, mais les résultats de leur travail sont déjà visibles, ce qui est bien sûr réjouissant.
Ces tests ont été effectués sur le noyau Linux pour e2k version 4.19. Actuellement, un noyau Linux 5.4-e2k est en phase de bêta-test (chez MCST, dans Basalt SPU, ainsi que chez nous, à Aerodisque), où, entre autres, le planificateur a été sérieusement retravaillé et de nombreuses optimisations ont été effectuées pour les disques SSD rapides. De plus, spécialement pour les noyaux de la branche 5.x, la SA « MCST » publie un nouveau compilateur LCC version 1.25. D'après des résultats préliminaires, sur le même processeur Elbrus 8C, le nouveau noyau, l'environnement de noyau, les utilitaires système et les bibliothèques assemblés avec le nouveau compilateur, ainsi que le logiciel Aerodisk VOSTOK, devraient permettre d'obtenir un gain de performance encore plus significatif. Et cela sans changer le matériel — sur le même processeur et avec les mêmes fréquences.
Nous attendons la sortie de la version Aerodisk VOSTOK basée sur le noyau 5.4 d'ici la fin de l'année. Dès que le travail sur la nouvelle version sera terminé, nous mettrons à jour les résultats des tests et les publierons également ici.
Si nous revenons au début de l'article et répondons à la question de qui a raison : les pessimistes qui disent qu'Elbrus « ne vaut rien » et ne rattrapera jamais les principaux fabricants de processeurs, ou les optimistes qui affirment qu'« ils sont déjà presque en train de rattraper et vont bientôt surpasser » ? Si l'on se base non pas sur des stéréotypes et des préjugés religieux, mais sur des tests réels, alors ce sont sans aucun doute les optimistes qui ont raison.
Elbrus montre déjà de bons résultats comparés aux processeurs amd64 de milieu de gamme. Bien qu'il soit encore loin des modèles de processeurs serveur haut de gamme Intel ou AMD, il n'est pas destiné à cela ; pour cela, des processeurs 16C et 32C seront lancés. Alors nous en reparlerons.
Nous comprenons qu'après cet article, les questions sur Elbrus vont encore augmenter. C'est pourquoi nous avons décidé d'organiser un autre webinaire en ligne « ProcheIT » pour répondre à ces questions en direct.
Cette fois, nous aurons comme invité le directeur général adjoint de la société MCST, Konstantin Trushkin. Vous pouvez vous inscrire au webinaire via le lien ci-dessous.
→
Merci à tous, comme d'habitude, nous attendons des critiques constructives et des questions intéressantes.
Source : habr.com
