
Ciao a tutti. Continuiamo a presentarvi il sistema di storage dati Aerodisk VOSTOK, realizzato sulla base del processore russo Elbrus 8C.
In questo articolo analizzeremo (come promesso) uno dei temi più popolari e interessanti legati agli Elbrus, ossia la performance. Ci sono molte speculazioni sulla performance di Elbrus, alcune addirittura opposte. I pessimisti sostengono che la performance di Elbrus sia attualmente "nulla", e che per raggiungere i produttori "top" ci vorranno decenni (cioè, nella realtà attuale - mai). D'altra parte, gli ottimisti dicono che già ora Elbrus 8C mostra buoni risultati, e che nei prossimi due anni, con l'uscita delle nuove versioni dei processori (Elbrus 16C e 32C), potremmo "raggiungere e superare" i principali produttori mondiali di processori.
Noi di Aerodisk siamo persone pratiche, quindi abbiamo scelto la via più semplice e chiara (per noi): testare, registrare i risultati e solo poi trarre delle conclusioni. Abbiamo condotto un numero piuttosto elevato di test e scoperto diverse peculiarità del funzionamento dell'architettura e2k di Elbrus 8C (inclusi anche aspetti positivi) e, naturalmente, confrontato questo con sistemi di storage similari su processori Intel Xeon architettura amd64.
A proposito, parleremo più in dettaglio dei test, dei risultati e dello sviluppo futuro dei sistemi di storage su Elbrus nel nostro prossimo webinar "Oltre IT" il 15.10.2020 alle 15:00. È possibile registrarsi tramite il link qui sotto.
→
Banchina di test
Abbiamo creato due stand. Entrambi gli stand consistono in un server con Linux, collegato tramite switch FC a 16G a due controller di storage, nel quale sono installati 12 dischi SSD SAS da 960 GB (11,5 TB di "capacità grezza" o 5,7 TB di "capacità utile", se utilizziamo RAID-10).
Schematicamente, lo stand appare come segue.

Stand n.1 e2k (Elbrus)
La configurazione hardware è la seguente:
- Server Linux (2xIntel Xeon E5-2603 v4 (6 core, 1,70Ghz), 64 GB DDR4, 2xFC-adapter 16G 2 porte) – 1 pz.
- Switch FC 16 G – 2 pz.
- Sistemadi storage Aerodisk Vostok 2-E12 (2xElbrus 8C (8 core, 1,20Ghz), 32 GB DDR3, 2xFE FC-adaptor 16G 2 porte, 12xSAS SSD 960 GB) — 1 pz
Stand n.2 amd64 (Intel)
Per il confronto, è stata utilizzata una configurazione simile di storage con un processore comparabile per caratteristiche su amd64:
- Server Linux (2xIntel Xeon E5-2603 v4 (6 core, 1,70Ghz), 64 GB DDR4, 2xFC-adapter 16G 2 porte) – 1 pz.
- Switch FC 16 G – 2 pz.
- SCD Aerodisk Engine N2 (2xIntel Xeon E5-2603 v4 (6 core, 1,70Ghz), 32 GB DDR4, 2xFE FC-adaptor 16G 2 porte, 12xSAS SSD 960 GB) — 1 pz
Nota importante: i processori Elbrus 8C utilizzati nel test supportano solo memoria RAM DDR3, è certo "male, ma non a lungo". Elbrus 8CV (al momento non è disponibile da noi, ma lo sarà presto) supporta DDR4.
Metodo di test
Per generare il carico abbiamo utilizzato il programma popolare e collaudato nel tempo Flexible IO (FIO).
Entrambi gli SCD sono stati configurati secondo le nostre raccomandazioni di impostazione, in base ai requisiti di alte prestazioni per l'accesso a blocchi, quindi utilizziamo pool di dischi DDP (Dynamic Disk Pool). Per non distorcere i risultati del test, disabilitiamo la compressione, la deduplicazione e la cache RAM su entrambi gli SCD.
Sono stati creati 8 D-LUN in RAID-10 da 500 GB ciascuno, il volume utile totale è di 4 TB (circa il 70% della capacità utile massima di questa configurazione).
Saranno eseguiti i principali e più popolari scenari di utilizzo degli SCD, in particolare:
i primi due test simulano il funzionamento di un DBMS transazionale. In questo gruppo di test siamo interessati agli IOPS e alla latenza.
1) Lettura casuale piccoli blocchi 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 100%/0%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Full Random
2) Scrittura casuale piccoli blocchi 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Full Random
i secondi due test simulano il funzionamento della parte analitica del DBMS. Anche in questo gruppo di test siamo interessati agli IOPS e alla latenza.
3) Lettura sequenziale piccoli blocchi 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 100%/0%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Sequential
4) Scrittura sequenziale piccoli blocchi 4k
a. Dimensione del blocco = 4k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Sequential
il terzo gruppo di test simula 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 siamo maggiormente interessati a MB/s e anche alla latenza, anziché agli IOPS.
5) Lettura sequenziale grandi blocchi 128k
a. Dimensione del blocco = 128k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Sequential
6) Scrittura sequenziale grandi blocchi 128k
a. Dimensione del blocco = 128k
b. Lettura/scrittura = 0%/100%
c. Numero di operazioni = 8
d. Profondità della coda = 32
e. Caratteristica del carico = Sequential
Ogni test durerà un'ora senza conteggiare il tempo di riscaldamento dell'array di 7 minuti.
Risultati dei test
I risultati dei test sono stati riassunti in due tabelle.
Elbrus 8C (SCD Aerodisk Vostok 2-E12)

Intel Xeon E5-2603 v4 (SCD Aerodisk Engine N2)

I risultati sono stati estremamente interessanti. In entrambi i casi abbiamo ben sfruttato le capacità di elaborazione della SSSD (70-90% di utilizzo), e in questa situazione spiccano chiaramente i pro e i contro di entrambi i processori.
In entrambe le tabelle sono evidenziati in verde i test in cui i processori "si sentono sicuri" e mostrano buoni risultati, mentre in arancione sono evidenziate le situazioni che i processori "non gradiscono".
Parlando di carichi casuali con piccoli blocchi, diciamo che:
- dal punto di vista della lettura casuale, Intel è sicuramente in pole position rispetto a Elbrus, con una differenza di 2 volte;
- dal punto di vista della scrittura casuale è sicuramente un pareggio, entrambi i processori hanno mostrato risultati circa equivalenti e dignitosi.
Con un carico sequenziale di piccoli blocchi, la situazione è diversa:
- sia in lettura che in scrittura, Intel supera significativamente (di 2 volte) Elbrus. Inoltre, se il punteggio IOPS di Elbrus è inferiore rispetto a Intel, appare comunque dignitoso (200-300 mila), ma ci sono evidenti problemi con le latenze (che sono tre volte superiori rispetto a quelle di Intel). La conclusione è che l'attuale versione di Elbrus 8C "non gradisce" carichi sequenziali con piccoli blocchi. C'è chiaramente del lavoro da fare.
Ma con un carico sequenziale di grandi blocchi, la situazione è esattamente opposta:
- entrambi i processori hanno mostrato risultati pressappoco uguali in MB/s, ma c'è un MA…. I valori di latenza di Elbrus sono 10 (dieci, Carl!!!) volte migliori (cioè più bassi) rispetto a quelli di un processore equivalente di Intel (0,4/0,5 ms contro 5,1/6,5 ms). All'inizio abbiamo pensato che fosse un errore, quindi abbiamo ricontrollato i risultati, effettuato un test ripetuto, ma il test ripetuto ha mostrato la stessa situazione. Questo è un serio vantaggio di Elbrus (e dell'architettura e2k in generale) rispetto a Intel (e, nel complesso, dell'architettura amd64). Speriamo che questo successo si sviluppi ulteriormente.
C'è anche un'altra caratteristica interessante di Elbrus, alla quale un lettore attento può prestare attenzione guardando la tabella. Se si guarda alla differenza tra i punteggi di lettura e scrittura di Intel, si può notare che in tutti i test la lettura supera la scrittura in media di circa il 50%+. Questa è la norma a cui tutti (compresi noi) siamo abituati. Se si osserva Elbrus, i punteggi di scrittura sono significativamente più vicini ai punteggi di lettura, con la lettura che supera la scrittura, in genere, di un 10 - 30%, al massimo.
Cosa significa questo? Significa che Elbrus "ama molto" la scrittura, e questo, a sua volta, indica che questo processore sarà molto utile in attività dove la scrittura prevale chiaramente sulla lettura (chi ha detto la legge di Yarovaya?), il che rappresenta anche un indubbio vantaggio dell'architettura e2k, e questo vantaggio deve essere sviluppato.
Risultati e prossimo futuro
I test comparativi dei processori di livello medio Elbrus e Intel per le attività di archiviazione dei dati hanno mostrato risultati sostanzialmente equi e altrettanto validi, mentre ogni processore ha mostrato le proprie interessanti peculiarità.
Intel ha superato nettamente Elbrus nella lettura casuale di piccoli blocchi, nonché nella lettura e scrittura sequenziale di piccoli blocchi.
Nella scrittura casuale di piccoli blocchi, entrambi i processori mostrano risultati equivalenti.
In base ai parametri di latenza, Elbrus appare significativamente migliore rispetto a Intel sotto carico di streaming, cioè nella lettura e scrittura sequenziale di grandi blocchi.
Inoltre, Elbrus, a differenza di Intel, gestisce bene sia i carichi di lettura che quelli di scrittura, mentre per Intel la lettura è sempre significativamente migliore della scrittura.
Sulla base dei risultati ottenuti, si può concludere sull'applicabilità dei sistemi di archiviazione Aerodisk Vostok sul processore Elbrus 8C per le seguenti attività:
- sistemi informativi con predominanza di operazioni di scrittura;
- accesso ai file;
- trasmissioni in diretta;
- videosorveglianza;
- backup;
- contenuti multimediali.
Il team di MCST ha ancora del lavoro da fare, ma i risultati del loro lavoro sono già visibili, il che, naturalmente, non può che rallegrare.
Questi test sono stati eseguiti sul kernel Linux per e2k versione 4.19, al momento attuale il kernel Linux 5.4-e2k è in beta testing (presso MCST, Basalt SPO e anche qui, in Aërodisk), nel quale, oltre a tutto il resto, sono state apportate modifiche significative allo scheduler e molte ottimizzazioni per SSD ad alte prestazioni. Inoltre, per i kernel della serie 5.x, l'azienda «MCST» sta rilasciando un nuovo compilatore LCC versione 1.25. Dai risultati preliminari, su quello stesso processore Elbrus 8C, il nuovo kernel, l'ambiente del kernel, le utilità di sistema e le librerie compilate con il nuovo compilatore, così come il software Aërodisk VOSTOK, promettono un ulteriore significativo aumento delle prestazioni. E tutto questo senza cambiare hardware — con lo stesso processore e a medesime frequenze.
Ci aspettiamo il rilascio della versione Aërodisk VOSTOK basata sul kernel 5.4 verso la fine dell'anno e non appena il lavoro sulla nuova versione sarà completato, aggiorneremo i risultati dei test e li pubblicheremo qui.
Se ora torniamo all'inizio dell'articolo e rispondiamo alla domanda su chi abbia ragione: i pessimisti, che dicono che Elbrus è «scadente» e non raggiungerà mai i principali produttori di processori, o gli ottimisti, che affermano di essere «già quasi al passo e presto supereranno»? Se ci basiamo non su stereotipi e pregiudizi religiosi, ma su test reali, gli ottimisti hanno sicuramente ragione.
Elbrus sta già mostrando buoni risultati se confrontato con i processori amd64 di fascia media. Certo, c'è ancora una lunga strada da percorrere rispetto ai modelli server di alta gamma di Intel o AMD 8, ma non era questo il suo obiettivo, per questo verranno rilasciati processori 16C e 32C. Allora ne parleremo.
Comprendiamo che dopo questo articolo ci saranno ancora più domande su Elbrus, quindi abbiamo deciso di organizzare un altro webinar online «OcolIT», per rispondere a queste domande in diretta.
Questa volta avremo come ospite il vice direttore generale dell'azienda MCST, Konstantin Trushkin. È possibile iscriversi al webinar tramite il link qui sotto.
→
Grazie a tutti, come al solito ci aspettiamo critiche costruttive e domande interessanti.
Fonte: habr.com
