
Ciao a tutti. Continuiamo a presentarvi il sistema di archiviazione dati Aerodisk VOSTOK, basato sul processore russo Elbrus 8C.
In questo articolo, come promesso, analizzeremo in dettaglio uno degli argomenti più popolari e interessanti legati agli Elbrus, ossia le performance. Ci sono molte speculazioni sul tema delle performance di Elbrus, e sono assolutamente divergenti. I pessimisti affermano che le performance di Elbrus siano attualmente 'nulle', e ci vorranno decenni per raggiungere i produttori 'top' (ovvero, nell'attuale realtà, mai). D'altra parte, gli ottimisti sostengono che già ora Elbrus 8C mostra buoni risultati, e che nei prossimi anni, con l'uscita di nuove versioni dei processori (Elbrus 16C e 32C), saremo in grado di 'raggiungere e superare' i principali produttori mondiali di processori.
In Aerodisk, we are practical people, so we chose the simplest and most understandable (for us) way: to test, record results, and only then draw conclusions. As a result, we conducted a fairly large number of tests and discovered a number of features of the Elbrus 8C e2k architecture (including some pleasant surprises) and, of course, compared this with similar storage systems based on Intel Xeon architecture amd64.
By the way, we will talk in more detail about the tests, results, and future development of storage systems on Elbrus during our next webinar "Around IT" on October 15, 2020, at 15:00. You can register using the link below.
→
Banchi di prova
We created two test setups. Both setups consist of a server with Linux connected through 16G FC switches to two storage controllers, which have 12 SAS SSDs of 960 GB each (11.5 TB of "raw capacity" or 5.7 TB of "usable" capacity when using RAID-10).
The setup looks as follows.

Setup #1 e2k (Elbrus)
The hardware configuration is as follows:
- Linux server (2xIntel Xeon E5-2603 v4 (6 cores, 1.70GHz), 64 GB DDR4, 2x16G FC adapter with 2 ports) – 1 unit.
- 16 G FC switch – 2 units.
- SCHED Aerodisk Vostok 2-E12 (2xElbrus 8C (8 core, 1,20Ghz), 32 GB DDR3, 2xFE FC-adattatore 16G 2 porte, 12xSAS SSD 960 GB) — 1 pz
Banco n. 2 amd64 (Intel)
Per il confronto con una configurazione simile su e2k è stata utilizzata una configurazione SCHED simile con un processore con specifiche analoghe su amd64:
- Linux server (2xIntel Xeon E5-2603 v4 (6 cores, 1.70GHz), 64 GB DDR4, 2x16G FC adapter with 2 ports) – 1 unit.
- 16 G FC switch – 2 units.
- SCHED Aerodisk Engine N2 (2xIntel Xeon E5-2603 v4 (6 core, 1,70Ghz), 32 GB DDR4, 2xFE FC-adattatore 16G 2 porte, 12xSAS SSD 960 GB) — 1 pz
Nota importante: i processori Elbrus 8C utilizzati nel test supportano solo la memoria DDR3, questo è certamente «male, ma non a lungo». Elbrus 8CSV (attualmente non disponibile, ma presto lo sarà) supporta DDR4.
Metodologia di test
Per generare il carico abbiamo utilizzato il programma popolare e collaudato nel tempo Flexible IO (FIO).
Entrambi i SCHED sono stati configurati secondo le nostre stesse raccomandazioni di impostazione, basate sui requisiti di alta prestazione per l'accesso a blocchi, quindi utilizziamo pool di dischi DDP (Dynamic Disk Pool). Per non distorcere i risultati dei test, su entrambi gli SCHED disattiviamo la compressione, la deduplicazione e la cache RAM.
Sono stati creati 8 D-LUN in RAID-10 da 500 GB ciascuno, per un volume utile totale di 4 TB (cioè circa il 70% della potenziale capacità utile di questa configurazione).
Verranno eseguiti i principali e più popolari scenari di utilizzo dello storage, in particolare:
i primi due test emulano il funzionamento di un database transazionale. In questo gruppo di test ci interessano gli IOPS e la latenza.
1) Lettura casuale con piccoli blocchi da 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 100%/0%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Full Random
2) Scrittura casuale con piccoli blocchi da 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Full Random
i secondi due test emulano il funzionamento della parte analitica del database. In questo gruppo di test ci interessano anche gli IOPS e la latenza.
3) Lettura sequenziale con piccoli blocchi da 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 100%/0%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Sequential
4) Scrittura sequenziale con piccoli blocchi da 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Sequential
il terzo gruppo di test emula il funzionamento della lettura in streaming (esempio: trasmissioni online, ripristino di backup) e della scrittura in streaming (esempio: videosorveglianza, registrazione di backup). In questo gruppo di test non ci interessano più gli IOPS, ma i MB/s e anche la latenza.
5) Lettura sequenziale con grandi blocchi da 128k
a. Dimensione del blocco = 128k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Sequential
6) Scrittura sequenziale con grandi blocchi da 128k
a. Dimensione del blocco = 128k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Tipo di carico = Sequential
Ogni test avrà una durata di un'ora, escludendo il tempo necessario per riscaldare il sistema per 7 minuti.
Risultati dei test
I risultati dei test sono riassunti in due tabelle.
Elbrus 8C (Storage Airodisk Est 2-E12)

Intel Xeon E5-2603 v4 (Storage Airodisk Engine N2)

I risultati sono stati estremamente interessanti. In entrambi i casi abbiamo ben sfruttato la potenza di elaborazione della storage (70-90% di utilizzo), e in questa configurazione è evidente il pro e il contro di entrambi i processori.
In entrambe le tabelle, i test in cui i processori "si comportano bene" sono evidenziati in verde, mentre in arancione sono indicate le situazioni che i processori "non gradiscono".
Parlando di carico casuale con piccoli blocchi, si può dire che:
- dal punto di vista della lettura casuale, Intel è sicuramente in vantaggio rispetto all'Elbrus, con una differenza di 2 volte;
- dal punto di vista della scrittura casuale c'è parità, entrambi i processori hanno mostrato risultati simili e soddisfacenti.
Nell'analisi del carico sequenziale con piccoli blocchi, la situazione cambia:
- Sia in lettura che in scrittura, Intel supera nettamente (di 2 volte) Elbrus. Inoltre, se il valore IOPS di Elbrus è inferiore a quello di Intel, si presenta comunque in modo dignitoso (200-300 mila), ma ci sono evidenti problemi di latenza (tre volte superiori rispetto a Intel). In sintesi, l'attuale versione di Elbrus 8C non gradisce affatto i carichi sequenziali con piccoli blocchi. C'è chiaramente del lavoro da fare.
Tuttavia, con carichi sequenziali di grandi blocchi, la situazione è esattamente opposta:
- entrambi i processori hanno mostrato risultati approssimativamente equivalenti in MB/s, ma c'è un MA.... Le latenza di Elbrus sono dieci (dieci, Karl!!!) volte migliori (cioè inferiori) rispetto a un processore equivalente di Intel (0,4/0,5 ms contro 5,1/6,5 ms). All'inizio abbiamo pensato che fosse un glitch, quindi abbiamo ricontrollato i risultati e effettuato un test ripetuto, ma quest'ultimo ha confermato la stessa situazione. Questo è un significativo vantaggio di Elbrus (e dell'architettura e2k in generale) rispetto a Intel (e, di conseguenza, all'architettura amd64). Speriamo che questo successo possa essere ulteriormente sviluppato.
C'è un'altra interessante caratteristica dell'Elbrus che il lettore attento può notare guardando la tabella. Se si osserva la differenza tra le prestazioni di lettura e scrittura di Intel, nei test si vede che la lettura supera la scrittura di circa il 50% in media. Questo è lo standard a cui tutti (noi compresi) siamo abituati. Se guardiamo all'Elbrus, le prestazioni di scrittura sono significativamente più vicine a quelle di lettura, con la lettura che generalmente supera la scrittura solo del 10-30%, non di più.
Cosa significa questo? Significa che l'Elbrus "ama molto" la scrittura, e questo implica che questo processore sarà molto utile in compiti in cui la scrittura è chiaramente prevalente rispetto alla lettura (chi ha parlato della legge Jarovaya?), il che rappresenta anche un indubbio vantaggio dell'architettura e2k, e questo vantaggio deve essere sviluppato.
Conclusioni e futuro prossimo
I test comparativi dei processori di fascia media Elbrus e Intel per compiti di archiviazione hanno mostrato risultati sostanzialmente equivalenti e degni di nota, con ciascun processore che ha evidenziato le proprie caratteristiche interessanti.
Intel ha nettamente superato Elbrus nella lettura casuale di piccoli blocchi e nella lettura e scrittura sequenziale di piccoli blocchi.
Nella scrittura casuale di piccoli blocchi, entrambi i processori mostrano risultati equivalenti.
Per quanto riguarda i tempi di latenza, Elbrus appare significativamente migliore di Intel sotto carico streaming, ovvero nella lettura e scrittura sequenziale di grandi blocchi.
Inoltre, a differenza di Intel, Elbrus gestisce egualmente bene i carichi di lettura e scrittura, mentre per Intel la lettura è sempre notevolmente migliore della scrittura.
Dai risultati ottenuti, si può concludere sull'applicabilità dei sistemi di archiviazione Aerodisk Vostok sul processore Elbrus 8C per le seguenti applicazioni:
- sistemi informativi con prevalenza di operazioni di scrittura;
- accesso ai file;
- trasmissioni in diretta;
- video sorveglianza;
- backup;
- contenuti multimediali.
Il team di MCST ha ancora del lavoro da fare, ma i risultati del loro lavoro sono già visibili, il che è certamente motivo di gioia.
Questi test sono stati condotti sul kernel Linux per e2k versione 4.19. Attualmente, è in fase di beta testing (presso MCST, Basalt SPO e anche da noi, in Aerodisk) il kernel Linux 5.4-e2k, che oltre ad altro ha subito una profonda revisione dello scheduler e molte ottimizzazioni per gli SSD ad alte prestazioni. Inoltre, per i kernel della branch 5.x.x, la compagnia AО «МЦСТ» rilascerà un nuovo compilatore LCC versione 1.25. Secondo i risultati preliminari, sullo stesso processore Elbrus 8C, il nuovo kernel compilato con il nuovo compilatore, l'ambiente del kernel, gli strumenti di sistema e le librerie, insieme al software Aerodisk VOSTOK, permetteranno un ulteriore significativo incremento delle prestazioni. E tutto ciò senza sostituire l'hardware — sullo stesso processore e con le stesse frequenze.
Ci aspettiamo il rilascio della versione Aerodisk VOSTOK basata sul kernel 5.4 verso la fine dell'anno e, appena il lavoro sulla nuova versione sarà completato, aggiorneremo i risultati dei nostri test e li pubblicheremo qui.
Se ora torniamo all'inizio dell'articolo e rispondiamo alla domanda su chi ha ragione: i pessimistici che dicono che Elbrus è "scadente" e non raggiungerà mai i principali produttori di processori, o gli ottimisti che affermano che "siamo quasi arrivati e presto li supereremo"? Se basiamo la nostra opinione non su stereotipi o pregiudizi religiosi, ma su test reali, è chiaro che hanno ragione gli ottimisti.
Elbrus sta già mostrando buoni risultati se paragonato ai processori amd64 di fascia media. Certo, è lontano dai modelli di cima della linea di processori server Intel o AMD e non è mai stata l'intenzione raggiungerli; per questo saranno rilasciati processori 16C e 32C. Allora ne parleremo.
Comprendiamo che dopo quest'articolo le domande su Elbrus aumenteranno, quindi abbiamo deciso di organizzare un altro webinar online "Oltre IT", per rispondere a queste domande in diretta.
Questa volta avremo come ospite il vicepresidente della società MCST, Konstantin Trushkin. È possibile registrarsi al webinar tramite il link qui sotto.
→
Grazie a tutti, come al solito, attendiamo critiche costruttive e domande interessanti.
Fonte: habr.com
