NCache Benchmarks de desempenho

2 milhões de operações/seg

(Conjunto de 5 nós)

Resultados de desempenho de checkout de NCache em ambientes distribuídos. Esses testes foram realizados em ambiente Amazon AWS.

Em nossos benchmarks mais recentes, demonstramos com sucesso que NCache pode escalar linearmente e atingir 2 milhões de transações por segundo com apenas um cluster de cache de 5 servidores. NCache oferece esse desempenho com latência abaixo de microssegundos. A escalabilidade é linear, o que significa que, se você adicionar mais servidores de cache, NCache proporcionará maior rendimento de transação.

NCache Gráficos de referência

NCache Gráficos de referência
See NCache desempenho à medida que adicionamos servidores de cache ao cluster.

Assista ao vídeo de benchmarking real para que você possa ver como esses benchmarks foram feitos.

Neste vídeo vamos falar sobre NCache números de benchmarking de desempenho. NCache é extremamente rápido e escalável Cache distribuído na memória sistema para o seu .NET e .NET Core aplicativos e hoje atingiremos 2 milhões de operações por segundo e, ao mesmo tempo, manteremos menos de 3 microssegundos de latência por operação, com apenas 5 NCache Servidores.

NCache é linearmente escalável além desse ponto, o que significa que você pode adicionar quantos servidores precisar e, embora adicione mais servidores, obterá mais capacidade de tratamento de solicitações, fora do seu Cluster de cache e isso também de forma linear.

Configuração de referência

Vamos revisar nossa configuração de benchmark. Estou usando 'AWS m4. 10xlarge' Servidores para meu teste. eu tenho cinco desses NCache Servidores, nos quais tenho meu Cluster de Cache configurado e tenho 15 Servidores Clientes, de onde executaria minhas aplicações e conectaria a este cluster de cache.

Configuração de referência
Configuração de referência

Estou usando o Windows Server 2016 como sistema operacional, Data Center Edition de 64 bits. NCache versão é 5.0 Enterprise e estou usando NCache Cache Particionado, como uma topologia de cache.

Topologia de cache

É o diagrama de arquitetura desta topologia, onde temos dados totalmente distribuídos em partições, em todos os Servidores de Cache e Clientes conectados a todos os Servidores para requisições de Leitura e Gravação. Eles também utilizam totalmente todos os servidores ao mesmo tempo. Não temos a replicação ativada para esta topologia, mas existem outras topologias, como Cache de réplica particionada, que também vem equipado com suporte para replicação.

Topologia de cache
Topologia de cache

Configuração do ambiente de referência

Eu tenho Pipelining Habilitado. Esse é um novo recurso em NCache versão 5.0. Funciona de tal forma que, no lado do cliente, acumula todas as solicitações que estão acontecendo em tempo de execução e aplica essas solicitações de uma só vez no lado do servidor e o acúmulo é feito em Microssegundos. Portanto, é muito otimizado e é uma configuração ou configuração muito recomendada quando você tem altos requisitos de carga transacional.

Configuração do ambiente de referência
Configuração do ambiente de referência

No que diz respeito às configurações de carga, estamos usando 1 milhão de itens no total, que serão adicionados ao cache e, você sabe, simularão a carga de solicitação de leitura e gravação com uma proporção de 80% de leituras e 20% de gravações em o cache. E temos uma matriz de bytes de 100 cada, como item individual no Cache. Eu tenho 4 GB de tamanho de cache por servidor e temos um total de 30 instâncias de aplicativos, que vão se conectar ao cache.

População de dados

Então, sem atrasos, vou começar com 'Data Population' de 1 milhão de itens no meu Cluster de cache. Agora, este é o nosso ambiente de demonstração. temos 5 NCache servidores, como discutido anteriormente. No momento não há atividade mas vou simular uma aplicação cliente que vai conectar e adicionar 1 milhão de itens no cache.

População de dados
População de dados

Então, eu executei o aplicativo e você veria 1 cliente sendo conectado em todos os servidores de cache e temos atividade no contador de adições por segundo em todos os servidores. O tamanho do cache está aumentando e o contador de contagem também está aumentando e as solicitações por segundo são um número total de solicitações por segundo. E pronto, 1 milhão de itens já foram adicionados no cluster de cache. Agora eu posso, sabe, começar com a carga de solicitação de leitura e gravação, e se eu mostrar rapidamente os detalhes do monitoramento, você pode ver um aumento na CPU, na memória, adições por segundo e solicitações por segundo e também no contador de contagem e o tamanho do cache também aumentou.

Criar carga transacional

Agora vou executar o aplicativo para construir alguma carga transacional neste cluster de cache, com 80% de operação de leituras e 20% de gravação. Então, vamos fazer isso rapidamente. E você começaria a ver atividade em todos os servidores de cache nos contadores PerfMon.

1 milhão de solicitações/segundo

Você pode ver o número de contadores de clientes mostrando cerca de 10 clientes, você sabe, instâncias conectadas a cada NCache servidor, com atividade em buscas, bem como em atualizações por segundo, e o contador de solicitações por segundo é algo entre 180,000 e 190,000 solicitações por segundo. E, como temos 5 NCache servidores, que estão trabalhando em paralelo, então, acumular essas solicitações nos traz, você sabe, 1 milhão de solicitações por segundo por esse cluster de cache, e você pode ver bastante consistente distribuição de dados.

1 milhão de solicitações/segundo
1 milhão de solicitações/segundo

As estatísticas de monitoramento da Web são bastante saudáveis, com, você sabe, memória do sistema e CPU, muito baixas, com buscas por segundo e solicitações por segundo, mostrando 200,000 solicitações por segundo, cerca de 150,000 buscas por segundo. As atualizações são 50,000 atualizações por segundo. E a média de microssegundos por operação de cache é pouco menos de 10 microssegundos por operação. E essa é a melhor coisa sobre este cluster de cache, onde ele está na memória e garante que você tenha baixa latência e alta taxa de transferência do seu NCache Cluster de cache.

Nosso estágio um está concluído, onde alcançamos com sucesso 1 milhão de operações por segundo em nosso cluster de cache. Eu tenho uma captura de tela para referência, onde temos 200,000 solicitações por segundo por cada NCache Servidor e temos 5 desses NCache Servidores, mantendo menos de 10 microssegundos por latência operacional de cache também.

1 milhão de solicitações/segundo alcançado
1 milhão de solicitações/segundo alcançado

Portanto, é muito rápido por operação, e temos uma combinação bastante consistente de buscas e atualizações por segundo, para exibir um cenário de aplicação da vida real e, ao mesmo tempo, temos uma utilização muito eficiente de CPU e memória, onde temos muito menos utilização para esses recursos, para este teste específico.

1.5 milhão de solicitações/s

Agora que alcançamos 1 milhão de solicitações por segundo, é hora de aumentar a carga. Então, eu executaria mais algumas instâncias de aplicativos, para aumentar a carga transacional, e assim que esses aplicativos fossem executados, você veria um aumento no contador de solicitações por segundo.

1.5 milhão de solicitações/segundo
1.5 milhão de solicitações/segundo

Em primeiro lugar, você pode notar que o número de clientes é 20. 20 instâncias que estão conectadas a todos NCache Servidores e temos o contador de solicitações por segundo agora mostrando 300,000 solicitações por segundo por cada NCache Server, e alcançamos com sucesso 1.5 milhão de solicitações por segundo, a partir deste cluster de cache.

Deixe-me mostrar-lhe rapidamente o Ferramenta de monitoramento da web, para estatísticas de desempenho. Você pode ver Solicitações por segundo por cada Servidor, 300,000 Solicitações por segundo. As buscas são pouco mais de 200,000 buscas por segundo e as atualizações estão entre 50,000 e 100,000. E você pode ver a média de microssegundos por operação de cache inferior a 4 microssegundos, isso é incrível porque temos latência muito baixa e isso é um impacto de 'Pipelining'. Quando você tem uma alta carga transacional do lado do cliente, o pipelining realmente ajuda e reduz a latência e aumenta a taxa de transferência. E é por isso que podemos recomendar que isso seja ativado.

Nosso estágio dois está concluído, onde alcançamos 1.5 milhão de operações por segundo em nosso cluster de cache. Aqui está uma captura de tela para este resultado.

1.5 milhão de solicitações/segundo alcançado
1.5 milhão de solicitações/segundo alcançado

Agora temos 300,000 solicitações por segundo por cada NCache Servidor. Então, isso foi aumentado e nossa latência diminuiu. Temos uma média de microssegundos por operação de cache, agora levando algo em torno de 3 a 4 microssegundos por operação de cache. Então, isso é uma grande melhoria e, novamente, temos uma boa mistura de buscas e atualizações e, novamente, mantendo menos utilização da CPU e da memória. Portanto, nossos servidores não estão sendo maximizados neste momento. Quero esclarecer que você pode esticar ainda mais a carga, o que faremos a seguir.

2 milhão de solicitações/s

Depois de atingir 1.5 milhão de solicitações por segundo, não pararia por aqui. Vamos aumentar ainda mais a carga e vamos ver como NCache O cluster de cache se comporta como resultado disso. Então, estou executando mais algumas instâncias de aplicativos e você verá um aumento adicional no contador de solicitações por segundo. Você pode ver 30 clientes, você sabe, as instâncias agora estão conectadas a todos NCache Servidores e já estamos vendo um aumento no contador de Solicitações por segundo.

2 milhão de solicitações/segundo
1.5 milhão de solicitações/segundo

Agora você pode ver, atendemos com sucesso 400,000 solicitações por segundo por cada NCache Servidor. E temos 5 NCache Servidores, então, isso faz um total de 2 milhões de requisições por segundo por este NCache Cluster de cache. Então, ao aumentar a carga da transação do lado do cliente, você pode ver claramente, NCache alcançou 2 milhões de solicitações por segundo. E temos uma operação média de Microssegundos por Cache inferior a 3 Microssegundos e também temos memória do sistema e tempo de processador, sabe, CPU bem abaixo dos limites, onde temos 40% a 50% de utilização, em ambas as frentes.

Como você pode ver agora, alcançamos com sucesso 2 milhões de operações por segundo. Então, vamos revisar esses resultados com a ajuda de uma captura de tela.

NCache Estatísticas de referência
See NCache estatísticas de monitoramento quando atingimos 2 milhões de operações/s.

Agora temos 400,000 solicitações por segundo por cada NCache Servidor, que totaliza 2 milhões de solicitações por segundo e o bom é que a latência diminuiu ainda mais. Agora temos 2 a 3 microssegundos por latência de operação de cache, e isso é novamente uma melhoria em relação ao resultado anterior. Você pode ver novamente uma mistura de buscas e atualizações e uma utilização bastante eficiente da CPU, bem como dos recursos de memória.

E como eu disse, NCache is linearmente escalável, então, vamos revisar nossos números de escalabilidade. Você sabe, aumentando o número de servidores, você pode ver NCache escala de uma forma bastante linear. Com 5 NCache servidores, conseguimos atingir 2 milhões de solicitações por segundo, e você pode adicionar mais e mais servidores, e essa tendência seria ainda mais linear, onde mais servidores significam mais capacidade de tratamento de solicitações, de NCache.

Conclusão

Isso nos leva ao final do nosso vídeo. Todos esses resultados de testes e aplicativos de amostra estão disponíveis em nosso site, que você mesmo pode baixar e revisar em seu ambiente. E se houver alguma dúvida, sinta-se à vontade para entrar em contato com nossas vendas (sales@alachisoft.com), bem como com o nosso apoio (support@alachisoft.com) equipe. Muito obrigado pelo seu tempo.

© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.