No início deste ano, publicamos dados sobre a memória persistente Intel Optane DC em nossa análise da plataforma Supermicro SuperServer 1029U-TN10RT . A Supermicro foi uma das pioneiras no suporte à memória persistente da Intel, e o sistema 2U com dois processadores se mostrou excelente como plataforma de testes para esse tipo de memória. Analisar a velocidade da memória persistente Optane DC da maneira tradicional, como um armazenamento em bloco, é instrutivo, mas o verdadeiro valor da memória persistente se revela em aplicações que podem aproveitar nativamente esse novo meio, alocando dados de forma inteligente em DRAM, memória persistente ou armazenamento integrado, conforme a necessidade da aplicação. Para entender melhor o perfil de desempenho da memória persistente Optane DC, colocamos o servidor Supermicro para trabalhar com uma plataforma NoSQL líder de mercado, o Aerospike.

Módulos de memória persistente Intel Optane DC no servidor Supermicro
O que é Aerospike?
O Aerospike fornece um sistema de gerenciamento de banco de dados distribuído, altamente escalável e não relacional para cargas de trabalho exigentes de leitura/gravação envolvendo dados operacionais. Ele foi projetado para fornecer tempos de resposta extremamente rápidos e previsíveis para acessar conjuntos de dados que abrangem bilhões de registros em bancos de dados de 10 a 100 TB. O Aerospike capacita uma ampla variedade de aplicações estratégicas, incluindo prevenção de fraudes, pagamentos digitais, mecanismos de recomendação, lances em tempo real e muito mais. Os clientes da Aerospike incluem grandes nomes como Adobe, Airtel, FlipKart, Kayak, Nielsen, PayPal e Wayfair.
Dependendo do caso de uso e do conjunto de dados, o Aerospike pode ser implantado em várias configurações que otimizam os recursos do sistema para um caso de uso. O Aerospike pode ser iniciado com dados na memória ou indexado na memória com dados no SSD ou indexado no SSD com dados no SSD. Recentemente, a Aerospike lançou uma nova configuração que aproveita a memória persistente Optane DC da Intel no modo AppDirect. O índice é armazenado no PMEM com os dados no SSD. Este novo modo expande a capacidade do Aerospike, mantendo o desempenho muito próximo ao índice na memória com dados no SSD. Esse novo modo não apenas fornece latências abaixo de milissegundos, mas também é possível reiniciar completamente o Aerospike sem reconstruções de índice primário.
Ao aplicar diferentes tipos de cargas de trabalho em diferentes configurações do Aerospike, é possível avaliar os benefícios e o desempenho da utilização da memória persistente Intel Optane DC em um SuperMicro SuperServer. Executar e comparar benchmarks com um índice em memória/dados na configuração do SSD e um índice em PMEM/dados no SSD fornece as informações para fazer uma escolha informada sobre o uso de memória persistente versus DRAM. Há uma configuração adicional que pode fornecer informações de desempenho adicionais para memória persistente. Embora o recurso índice no PMEM e dados no PMEM não tenha sido liberado, existe uma forma de configurar o PMEM no servidor para rodar com índice no PMEM e rodar uma parte do PMEM configurado como um dispositivo de bloco para dar uma ideia do possibilidades de desempenho para índice em PMEM e dados em PMEM.
Configuração NoSQL do Aerospike
Três cargas de trabalho diferentes foram aplicadas a cada uma das três configurações diferentes. O Aerospike Java Benchmark gerou uma carga de trabalho de leitura/gravação 50/50, uma carga de trabalho somente leitura e uma carga de trabalho somente gravação de 4 servidores clientes. Cada teste consistia em várias fases:
- Fase de ingestão – Carregando dados no banco de dados.
- Fase de aquecimento – execute uma carga de gravação por duas horas para criar um estado estável para o banco de dados.
- Fase de teste – execute a carga de trabalho real para o teste por uma hora.
Antes de executar qualquer teste, um conjunto de chaves e tamanho de objeto apropriados para os dados foram selecionados. Embora o Aerospike tenha uma grande variedade de tamanhos de objeto, de alguns bytes a um milhão de bytes, o conjunto de chaves e o tamanho do objeto foram selecionados para testar o hardware do servidor e demonstrar o desempenho das configurações do PMEM. Tamanhos de objetos maiores podem criar um gargalo de rede e não demonstrar totalmente o poder da memória persistente Optane DC. Portanto, um tamanho de objeto de 440 bytes foi usado para todos os testes.
O tamanho do conjunto de chaves foi limitado pela quantidade de memória usada para o índice na memória/dados na configuração do SSD. O índice na configuração de memória foi limitado a um conjunto de dados de 4 bilhões de objetos. Embora o índice no PMEM pudesse suportar a capacidade de 15.5 bilhões de chaves, apenas 4 bilhões de chaves foram usadas para uma melhor comparação com o índice no teste de memória. Os conjuntos finais de testes foram executados com índice em PMEM e dados em PMEM. Como o servidor tinha um total de 1.5 TB de PMEM, apenas um bilhão de chaves foram usadas para esses testes.
Configuração de hardware
A configuração de hardware inclui dois componentes principais. O único servidor de banco de dados abriga a memória persistente do PC Intel Optane. Os quatro servidores clientes geram a carga no servidor de banco de dados.
Servidor de banco de dados
- Chassi – SuperMicro Ultra 1U SYS-1029U-TN10RT
- CPU
- 2 x Intel Xeon Scalable 8268 (2.9 GHz, 24C)
- 2 x Intel Xeon Scalable 8280 (2.7 GHz, 28C)
- Armazenamento – 10 x SSD Intel DC P4510 2TB NVMe, 1DWPD
- DRAM – 12 x DDR32-4 de 2933 GB
- Memória persistente – 12 x 128 GB DDR4-2666 Intel Optane DC PMMs
- Rede – 100 GbE
- SO – Fedora 29
servidores cliente
- Chassi – Dell R740xd
- CPU – 2 x Intel Xeon escalável 6130
- RAM – 256 GB
- Rede – 2 x 25 GbE
- SO – Ubuntu – 18.04
- Software – Aerospike Enterprise 4.5.1
- Gerador de Carga – Aerospike Java Benchmark (Aerospike Java Client 4.4.0)
Resultados de desempenho do Aerospike
Como mencionado, executamos o teste em diversas configurações de carga de trabalho, bem como em diferentes locais para o índice e o banco de dados. Além disso, utilizamos dois conjuntos diferentes de CPUs Intel Xeon Scalable de segunda geração . Executamos tanto os modelos 8268 quanto os 8280 no servidor de banco de dados, sendo os CPUs 8280 os de melhor desempenho da Intel que suportam a memória persistente Optane DC. Em termos de frequência bruta, os 8280 oferecem um aumento de 12 GHz em relação aos 8268, ou seja, um aumento de 8.6% no desempenho. Embora não esteja nas tabelas abaixo, vale ressaltar que, em termos de qualidade de serviço, todos os resultados de latência dos testes ficaram próximos ou iguais a 100% abaixo de um milissegundo no servidor.
Índice na memória, dados em SSDs NVMe
| Atividade | Operações de taxa de transferência Intel 8268 |
Operações de taxa de transferência Intel 8280 |
|---|---|---|
| Ler/escrever 50/50 | 2,100,000 | 2,298,000 |
| Leia 100% | 2,240,000 | 2,720,000 |
| Escreva 100% | 1,760,000 | 2,020,000 |
Embora saibamos que o 8280 oferece uma melhoria de 8.6% na velocidade de clock bruta em relação ao 8268, ver como isso se converte em melhoria de aplicativo é um objetivo central. Com o Aerospike, com o índice na memória e os dados nos SSDs NVMe, vimos as seguintes alterações nos itens de linha. O desempenho misto de leitura/gravação 50/50 aumentou 9.4%, 100% leu 21.4% e em 100% de gravação o desempenho aumentou 14.8%.
Índice na memória persistente Optane DC, dados em SSDs NVMe
| Atividade | Operações de taxa de transferência Intel 8268 |
Operações de taxa de transferência Intel 8280 |
|---|---|---|
| Ler/escrever 50/50 | 2,000,000 | 2,252,000 |
| Leia 100% | 2,200,000 | 2,630,000 |
| Escreva 100% | 1,740,000 | 1,980,000 |
Como podemos ver nesses dados, mover os índices da DRAM para a memória persistente teve pouco impacto no desempenho transacional. No entanto, na produção, isso significa que, como o Aerospike pode usar memória persistente em vez de DRAM para índices, a restauração após a reinicialização de um nó de banco de dados é muito mais rápida, pois um grande pool de DRAM não precisa ir para SSDs para reconstruir. Há também uma economia de custo em caixas de alta densidade, já que os módulos de memória persistente Optane DC de 128 GB em teste são consideravelmente mais baratos do que os DIMMS de 128 GB.
Índice e dados na memória persistente Optane DC
| Atividade | Operações de taxa de transferência Intel 8268 |
Operações de taxa de transferência Intel 8280 |
|---|---|---|
| Ler/escrever 50/50 | 2,600,000 | 2,866,000 |
| Leia 100% | 2,810,000 | 3,100,000 |
| Escreva 100% | 2,120,000 | 2,210,000 |
Conforme observado, a Aerospike anunciou, mas ainda não forneceu disponibilidade geral para a capacidade de executar os índices e o banco de dados na memória persistente Intel Optane DC. Dito isso, demonstramos a compilação de código atual que permite isso, o que mostra um aumento de aproximadamente 33% ou 600,000 operações por segundo na carga de trabalho mista.
Conclusão
A memória persistente Intel Optane DC é uma parte incrivelmente poderosa da hierarquia de dados. Colocando-se entre a RAM e o armazenamento, a encarnação da memória persistente da Intel finalmente traz o mainstream da tecnologia. Mas apenas ter acesso a uma nova tecnologia de armazenamento não é bom o suficiente, os aplicativos que podem aproveitar a memória persistente nativamente terão uma enorme vantagem competitiva. A flexibilidade que vemos com o Aerospike mostra que eles estavam prontos desde o início com suporte ao modo direto do aplicativo (armazenamento em bloco) para memória persistente Optane DC. Além disso, eles são líderes no mundo NoSQL quando se trata de manter índices e dados nos módulos de memória persistente. Embora o último ainda seja uma visão emergente, os primeiros resultados parecem muito promissores.




Amazon