All'inizio di quest'anno abbiamo pubblicato i dati relativi alla memoria persistente Intel Optane DC nella nostra recensione della piattaforma Supermicro SuperServer 1029U-TN10RT . Supermicro è stata una delle prime aziende a supportare la memoria persistente Intel e il sistema dual-processor 2U si è rivelato un ottimo banco di prova per la memoria persistente. Analizzare la velocità della memoria persistente Optane DC con i metodi tradizionali di archiviazione a blocchi è utile, ma il vero valore della memoria persistente emerge nelle applicazioni che possono sfruttare nativamente questo nuovo supporto, posizionando i dati in modo intelligente nella DRAM, nella memoria persistente o nell'archiviazione integrata a seconda delle esigenze. Per comprendere meglio il profilo prestazionale della memoria persistente Optane DC, abbiamo messo alla prova il server Supermicro utilizzando una piattaforma NoSQL leader del settore, Aerospike.

Moduli di memoria persistente Intel Optane DC nel server Supermicro
Cos'è l'Aerospike?
Aerospike fornisce un sistema di gestione di database distribuito, altamente scalabile e non relazionale per carichi di lavoro di lettura/scrittura impegnativi che coinvolgono dati operativi. È stato progettato per garantire tempi di risposta estremamente rapidi e prevedibili per l'accesso a set di dati che comprendono miliardi di record in database da 10 a 100 TB. Aerospike alimenta un'ampia varietà di applicazioni strategiche, tra cui prevenzione delle frodi, pagamenti digitali, motori di raccomandazione, offerte in tempo reale e altro ancora. I clienti di Aerospike includono nomi molto grandi come Adobe, Airtel, FlipKart, Kayak, Nielsen, PayPal e Wayfair.
A seconda del caso d'uso e del set di dati, Aerospike può essere distribuito in varie configurazioni che ottimizzano le risorse di sistema per un caso d'uso. Aerospike può essere lanciato con i dati in memoria, oppure indicizzato in memoria con dati su SSD, oppure indicizzato su SSD con dati su SSD. Recentemente Aerospike ha rilasciato una nuova configurazione che sfrutta la memoria persistente Optane DC di Intel in modalità AppDirect. L'indice viene archiviato in PMEM con i dati su SSD. Questa nuova modalità espande la capacità di Aerospike mantenendo le prestazioni molto vicine all'indice in memoria con i dati su SSD. Non solo questa nuova modalità fornisce latenze inferiori al millisecondo, ma sono possibili anche rapidi riavvii completi di Aerospike senza ricostruzioni dell'indice primario.
Applicando diversi tipi di carichi di lavoro su diverse configurazioni Aerospike, è possibile valutare i vantaggi e le prestazioni derivanti dall'utilizzo della memoria persistente Intel Optane DC su un SuperMicro SuperServer. L'esecuzione e il confronto di benchmark con un indice nella configurazione di memoria/dati su SSD e un indice in PMEM/dati su SSD fornisce le informazioni per fare una scelta informata sull'uso della memoria persistente rispetto alla DRAM. Esiste una configurazione aggiuntiva che può fornire ulteriori informazioni sulle prestazioni per la memoria persistente. Sebbene la funzionalità indice in PMEM e dati in PMEM non sia stata rilasciata, esiste un modo per configurare PMEM sul server per l'esecuzione con l'indice in PMEM ed eseguire una parte di PMEM configurata come dispositivo a blocchi per darti un'idea del possibilità di performance per l'indice in PMEM e i dati in PMEM.
Configurazione NoSQL di Aerospike
Sono stati applicati tre diversi carichi di lavoro a ciascuna delle tre diverse configurazioni. Il benchmark Java Aerospike ha generato un carico di lavoro di lettura/scrittura 50/50, un carico di lavoro di sola lettura e un carico di lavoro di sola scrittura da 4 server client. Ogni prova era composta da più fasi:
- Fase di acquisizione: caricamento dei dati nel database.
- Fase di riscaldamento: esegui un carico di scrittura per due ore per creare uno stato stabile per il database.
- Fase di test: esegui il carico di lavoro effettivo per il test per un'ora.
Prima di eseguire qualsiasi test, sono stati selezionati un set di chiavi e una dimensione dell'oggetto appropriati per i dati. Sebbene Aerospike abbia una vasta gamma di dimensioni degli oggetti, da un paio di byte a un milione di byte, il set di chiavi e la dimensione dell'oggetto sono stati selezionati per esercitare l'hardware del server e dimostrare le prestazioni delle configurazioni PMEM. Oggetti di dimensioni maggiori potrebbero creare un collo di bottiglia nella rete e non dimostrare pienamente la potenza della memoria persistente Optane DC. Pertanto per tutti i test è stata utilizzata una dimensione oggetto di 440 byte.
La dimensione del set di chiavi era limitata dalla quantità di memoria utilizzata per l'indice nella memoria/dati nella configurazione SSD. L'indice nella configurazione della memoria era limitato a un set di dati di 4 miliardi di oggetti. Anche se l'indice in PMEM poteva gestire la capacità di 15.5 miliardi di chiavi, ne sono state utilizzate solo 4 miliardi per un migliore confronto con l'indice nel test di memoria. Le serie finali di test sono state eseguite con indice in PMEM e dati in PMEM. Poiché il server disponeva di un totale di 1.5 TB di PMEM, per questi test sono state utilizzate solo un miliardo di chiavi.
Configurazione hardware
La configurazione hardware include due componenti chiave. Il server database singolo ospita la memoria persistente del PC Intel Optane. I quattro server client generano il carico rispetto al server database.
Server di database
- Telaio – SuperMicro Ultra 1U SYS-1029U-TN10RT
- CPU
- 2 Intel Xeon scalabili 8268 (2.9 GHz, 24 C)
- 2 Intel Xeon scalabili 8280 (2.7 GHz, 28 C)
- Archiviazione: 10 SSD Intel DC P4510 NVMe da 2 TB, 1DWPD
- DRAM: 12 DDR32-4 da 2933 GB
- Memoria persistente: 12 PMM DC Intel Optane DDR128-4 da 2666 GB
- Rete: 100 GbE
- Sistema operativo – Fedora29
Server clienti
- Telaio: Dell R740xd
- CPU: 2 Intel Xeon scalabili 6130
- DRAM – 256 GB
- Rete: 2 x 25 GbE
- Sistema operativo – Ubuntu – 18.04
- Software – Aerospike Enterprise 4.5.1
- Generatore di carico – Benchmark Java Aerospike (client Java Aerospike 4.4.0)
Risultati delle prestazioni Aerospike
Come già accennato, abbiamo eseguito il test in diverse configurazioni di carico di lavoro e in varie posizioni dell'indice e del database. Inoltre, abbiamo utilizzato due diversi set di CPU Intel Xeon Scalable di seconda generazione . Abbiamo utilizzato sia le CPU 8268 che le 8280 nel server di database, con le CPU 8280 che rappresentano la CPU Intel di fascia più alta che supporta la memoria persistente Optane DC. In termini di frequenza di clock, le 8280 offrono un incremento di 12 GHz rispetto alle 8268, ovvero un aumento delle prestazioni dell'8.6%. Sebbene non siano incluse nelle tabelle seguenti, è opportuno sottolineare che, in termini di qualità del servizio, tutti i risultati di latenza per i test sono stati pari o prossimi al 100% inferiori al millisecondo sul server.
Indice in memoria, dati su SSD NVMe
| Attività | Operazioni di throughput Intel 8268 |
Operazioni di throughput Intel 8280 |
|---|---|---|
| Leggi/Scrivi 50/50 | 2,100,000 | 2,298,000 |
| Leggi al 100% | 2,240,000 | 2,720,000 |
| Scrivi al 100% | 1,760,000 | 2,020,000 |
Anche se sappiamo che gli 8280 offrono un miglioramento dell'8.6% nella velocità di clock grezza rispetto agli 8268, vedere come ciò si converte in un miglioramento dell'applicazione è un obiettivo fondamentale. Con Aerospike, con l'indice in memoria e i dati sugli SSD NVMe, abbiamo riscontrato le seguenti modifiche alle voci. Le prestazioni miste di lettura/scrittura 50/50 sono aumentate del 9.4%, quelle di lettura al 100% sono aumentate del 21.4% e quelle di scrittura al 100% sono aumentate del 14.8%.
Indice nella memoria persistente Optane DC, dati sugli SSD NVMe
| Attività | Operazioni di throughput Intel 8268 |
Operazioni di throughput Intel 8280 |
|---|---|---|
| Leggi/Scrivi 50/50 | 2,000,000 | 2,252,000 |
| Leggi al 100% | 2,200,000 | 2,630,000 |
| Scrivi al 100% | 1,740,000 | 1,980,000 |
Come possiamo vedere da questi dati, lo spostamento degli indici dalla DRAM alla memoria persistente ha avuto un impatto minimo sulle prestazioni transazionali. In produzione, tuttavia, ciò significa che, poiché Aerospike può utilizzare la memoria persistente invece della DRAM per gli indici, il ripristino dopo il riavvio di un nodo del database è molto più veloce, poiché un grande pool di DRAM non ha bisogno di essere trasferito sugli SSD per essere ricostruito. C'è anche un risparmio sui costi nei box ad alta densità, poiché i moduli di memoria persistente Optane DC da 128 GB in prova sono notevolmente meno costosi dei DIMM da 128 GB.
Indice e dati sulla memoria persistente Optane DC
| Attività | Operazioni di throughput Intel 8268 |
Operazioni di throughput Intel 8280 |
|---|---|---|
| Leggi/Scrivi 50/50 | 2,600,000 | 2,866,000 |
| Leggi al 100% | 2,810,000 | 3,100,000 |
| Scrivi al 100% | 2,120,000 | 2,210,000 |
Come notato, Aerospike ha annunciato, ma non ha ancora fornito la disponibilità generale, per la possibilità di eseguire sia gli indici che il database sulla memoria persistente Intel Optane DC. Detto questo, abbiamo fatto una demo dell'attuale build di codice che lo consente, che mostra un incremento di circa il 33% o 600,000 operazioni al secondo nel carico di lavoro misto.
Conclusione
La memoria persistente Intel Optane DC è una parte incredibilmente potente della gerarchia dei dati. Inserendosi tra RAM e storage, l'incarnazione della memoria persistente di Intel porta finalmente la tecnologia mainstream. Ma avere semplicemente accesso a una nuova tecnologia di storage non è sufficiente: le applicazioni che possono sfruttare la memoria persistente in modo nativo avranno un enorme vantaggio competitivo. La flessibilità che vediamo con Aerospike dimostra che erano pronti fin dall'inizio con il supporto della modalità diretta delle app (archiviazione a blocchi) per la memoria persistente Optane DC. Inoltre, sono leader nel mondo NoSQL quando si tratta di conservare sia gli indici che i dati sui moduli di memoria persistente. Sebbene quest’ultima sia ancora una visione emergente, i primi risultati sembrano molto promettenti.




Amazon