NCache Benchmarks de Performance

2 millions d'opérations/s

(Cluster à 5 nœuds)

Consulter les résultats des performances de NCache dans des environnements distribués. Ces tests ont été effectués dans l'environnement Amazon AWS.

Dans nos derniers benchmarks, nous avons réussi à démontrer que NCache peut évoluer de manière linéaire et atteindre 2 millions de transactions par seconde avec seulement un cluster de cache à 5 serveurs. NCache offre ces performances avec une latence inférieure à la microseconde. L'évolutivité est linéaire, ce qui signifie que si vous ajoutez plus de serveurs de cache, NCache fournira un débit de transaction plus élevé.

NCache Graphiques de référence

NCache Graphiques de référence
See NCache performances lorsque nous avons ajouté des serveurs de cache au cluster.

Regardez la vidéo d'analyse comparative réelle afin de voir comment ces analyses comparatives ont été effectuées.

Dans cette vidéo, nous allons parler de NCache chiffres d'évaluation des performances. NCache est un outil extrêmement rapide et évolutif Mise en cache distribuée en mémoire système pour votre .NET et .NET Core applications et aujourd'hui, nous atteindrons 2 millions d'opérations par seconde tout en maintenant une latence inférieure à 3 microsecondes par opération, avec seulement 5 NCache Les serveurs

NCache est linéairement évolutif au-delà de ce point, ce qui signifie que vous pouvez ajouter autant de serveurs que nécessaire, et même si vous ajoutez plus de serveurs, vous obtiendrez plus de capacité de traitement des demandes, de votre Cluster de cache et cela aussi de façon linéaire.

Configuration de référence

Passons en revue notre configuration de référence. J'utilise 'AWS m4. 10xlarge' Serveurs pour mon test. j'en ai cinq NCache Serveurs, sur lesquels j'ai configuré mon cluster de cache et j'ai 15 serveurs clients, à partir desquels j'exécuterais mes applications et me connecterais à ce cluster de cache.

Configuration de référence
Configuration de référence

J'utilise Windows Server 2016 comme système d'exploitation, Data Center Edition 64 bits. NCache la version est 5.0 Enterprise et j'utilise NCache Cache partitionné, en tant que topologie de mise en cache.

Topologie de mise en cache

C'est le schéma architectural de cette topologie, où nous avons des données entièrement distribuées dans des partitions, sur tous les serveurs de mise en cache et les clients se connectent à tous les serveurs pour les demandes de lecture et d'écriture. Ils utilisent pleinement tous les serveurs en même temps. La réplication n'est pas activée pour cette topologie, mais il existe d'autres topologies, telles que Cache de réplique partitionné, qui est également équipé d'un support de réplication.

Topologie de mise en cache
Topologie de mise en cache

Configuration de l'environnement de référence

J'ai Pipelining Activé. C'est une nouvelle fonctionnalité dans NCache version 5.0. Il fonctionne de telle manière que, côté client, il accumule toutes les requêtes qui se produisent au moment de l'exécution et qu'il applique ces requêtes à la fois côté serveur et l'accumulation se fait en quelques microsecondes. Il est donc très optimisé et sa configuration ou configuration est très recommandée lorsque vous avez des exigences de charge transactionnelle élevées.

Configuration de l'environnement de référence
Configuration de l'environnement de référence

En ce qui concerne les configurations de charge, nous utilisons 1 million d'éléments au total, qui vont être ajoutés dans le cache et ensuite, vous savez, simuleront la charge des demandes de lecture et d'écriture avec un ratio de 80 % de lectures et de 20 % d'écritures sur le cache. Et, nous avons un tableau d'octets de 100 chacun, en tant qu'élément individuel dans le cache. J'ai une taille de cache de 4 Go par serveur et nous avons un total de 30 instances d'application, qui vont se connecter au cache.

Population de données

Donc, sans plus tarder, je vais commencer avec la "population de données" d'un million d'éléments dans mon Cluster de cache. Maintenant, c'est notre environnement de démonstration. Nous avons 5 NCache serveurs, comme indiqué précédemment. Pour le moment il n'y a pas d'activité mais je vais simuler une application cliente qui va se connecter et ajouter 1 Million d'éléments dans le cache.

Population de données
Population de données

Donc, j'ai exécuté l'application et vous verriez 1 client connecté sur tous les serveurs de mise en cache et nous avons une activité sur les compteurs d'ajouts par seconde sur tous les serveurs. La taille du cache augmente et le compteur de comptage augmente également et les demandes par seconde correspondent au nombre total de demandes par seconde. Et voilà, 1 million d'éléments sont déjà ajoutés dans le cluster de cache. Je peux maintenant, vous savez, commencer avec la charge des requêtes de lecture et d'écriture, et si je vous montre rapidement les détails de la surveillance, vous pouvez voir un blip dans, vous savez, une augmentation du CPU, de la mémoire, des ajouts par seconde et des requêtes par seconde et également dans le compteur de comptage et la taille du cache a également augmenté.

Créer une charge transactionnelle

Je vais maintenant exécuter l'application pour créer une charge transactionnelle sur ce cluster de cache, avec 80 % de lectures et 20 % d'opérations d'écriture. Alors, faisons cela rapidement. Et, vous commenceriez à voir de l'activité sur tous, vous savez, les serveurs de cache dans les compteurs PerfMon.

1 million de requêtes/seconde

Vous pouvez voir le nombre de compteurs de clients montrant environ 10 clients, vous savez, des instances connectées à chacun NCache serveur, avec une activité sur les récupérations ainsi que sur les mises à jour par seconde, et le compteur de demandes par seconde se situe entre 180,000 190,000 et 5 XNUMX demandes par seconde. Et puisque nous avons XNUMX NCache serveurs, qui fonctionnent en parallèle, donc, accumuler ces requêtes nous apporte, vous savez, 1 million de requêtes par seconde par ce cluster de cache, et vous pouvez voir assez cohérent diffusion des données.

1 million de requêtes/seconde
1 million de requêtes/seconde

Les statistiques de surveillance Web sont assez saines, avec, vous savez, la mémoire système et le processeur, assez bas, avec des récupérations par seconde et des requêtes par seconde, affichant 200,000 150,000 requêtes par seconde, environ 50,000 10 récupérations par seconde. Les mises à jour sont de XNUMX XNUMX mises à jour par seconde. Et la microseconde moyenne par opération de cache est d'un peu moins de XNUMX microsecondes par opération. Et c'est la meilleure chose à propos de ce cluster de cache, où il est en mémoire et garantit que vous avez une faible latence et un débit élevé de votre NCache Cluster de cache.

Notre première étape est terminée lorsque nous avons réussi à atteindre 1 million d'opérations par seconde à partir de notre cluster de cache. J'ai une capture d'écran pour une référence, où, nous avons 200,000 XNUMX demandes par seconde par chacun NCache Serveur et nous en avons 5 NCache Serveurs, tout en maintenant une latence opérationnelle inférieure à 10 microsecondes par cache.

1 million de requêtes/seconde réalisées
1 million de requêtes/seconde réalisées

Donc, c'est assez rapide par opération, et nous avons un mélange assez cohérent de récupérations ainsi que de mises à jour par seconde, pour présenter un scénario d'application réel, et en même temps, nous avons une utilisation très efficace du processeur et de la mémoire, où nous avons très moins d'utilisation de ces ressources, pour ce test particulier.

1.5 million de requêtes/s

Maintenant que nous avons atteint 1 million de requêtes par seconde, il est temps d'augmenter la charge. Donc, j'exécuterais d'autres instances d'application, pour augmenter la charge transactionnelle, et dès que ces applications s'exécuteraient, vous verriez une augmentation du nombre de demandes par seconde.

1.5 million de requêtes/seconde
1.5 million de requêtes/seconde

Tout d'abord, vous pouvez remarquer que le nombre de clients est de 20. 20 instances connectées à tous NCache Les serveurs et nous avons un compteur de requêtes par seconde affichant maintenant 300,000 XNUMX requêtes par seconde pour chacun NCache Server, et nous avons réussi à atteindre 1.5 million de requêtes par seconde, à partir de ce cluster de cache.

Laissez-moi vous montrer rapidement le Outil de surveillance Web, pour les statistiques de performances. Vous pouvez voir les requêtes par seconde par chaque serveur, 300,000 200,000 requêtes par seconde. Les extractions sont légèrement supérieures à 50,000 100,000 extractions par seconde et les mises à jour se situent entre 4 XNUMX et XNUMX XNUMX. Et vous pouvez voir une microseconde moyenne par opération de cache inférieure à XNUMX microsecondes, c'est incroyable car nous avons une latence très faible et c'est un impact de 'Pipelining'. Lorsque vous avez une charge transactionnelle élevée du côté client, le pipelining aide vraiment et réduit la latence augmente le débit. Et puis c'est pourquoi, nous pouvons recommander que cela soit activé.

Notre deuxième étape est maintenant terminée, où nous avons atteint 1.5 million d'opérations par seconde à partir de notre cluster de cache. Voici une capture d'écran de ce résultat.

1.5 million de requêtes/seconde réalisées
1.5 million de requêtes/seconde réalisées

Nous avons maintenant 300,000 XNUMX requêtes par seconde par chaque NCache Serveur. Donc, cela a été augmenté et notre latence a diminué. Nous avons fait la moyenne de la microseconde par opération de cache, ce qui prend maintenant environ 3 à 4 microsecondes par opération de cache. Donc, c'est une énorme amélioration, et, encore une fois, nous avons un joli mélange de récupérations et de mises à jour et encore une fois en maintenant moins d'utilisation du processeur ainsi que de la mémoire. Donc, nos serveurs ne sont pas maximisés à ce stade. Je tiens à préciser que vous pouvez étirer davantage la charge, ce que nous ferons ensuite.

2 million de requêtes/s

Après avoir atteint 1.5 million de requêtes par seconde, je ne m'arrêterais pas là. Augmentons encore la charge, et voyons comment NCache Le cluster de cache se comporte en conséquence. Donc, j'exécute d'autres instances d'application et vous constaterez une nouvelle augmentation du nombre de demandes par seconde. Vous pouvez voir 30 clients, vous savez, les instances sont maintenant connectées à tous NCache Serveurs et nous constatons déjà une augmentation du nombre de requêtes par seconde.

2 million de requêtes/seconde
1.5 million de requêtes/seconde

Vous pouvez maintenant voir, nous avons réussi à toucher 400,000 XNUMX requêtes par seconde par chaque NCache Serveur. Et nous avons 5 NCache Serveurs, donc, cela fait un total de 2 millions de requêtes par seconde par ceci NCache Cluster de cache. Ainsi, en augmentant la charge de transaction du côté client, vous pouvez clairement voir, NCache a atteint 2 millions de requêtes par seconde. Et nous avons une opération moyenne en microsecondes par cache inférieure à 3 microsecondes et nous avons également la mémoire système et le temps processeur, vous savez, le CPU bien en dessous des limites, où nous avons une utilisation de 40% à 50%, sur les deux fronts.

Comme vous pouvez maintenant le voir, nous avons réussi à atteindre 2 millions d'opérations par seconde. Passons donc en revue ces résultats à l'aide d'une capture d'écran.

NCache Statistiques de référence
See NCache surveiller les statistiques alors que nous avons atteint 2 millions d'opérations/sec.

Nous avons maintenant 400,000 XNUMX requêtes par seconde par chaque NCache Server, cela fait un total de 2 millions de requêtes par seconde et ce qui est bien, c'est que la latence a encore diminué. Nous avons maintenant une latence de 2 à 3 microsecondes par opération de cache, et c'est encore une amélioration par rapport au résultat précédent. Vous pouvez à nouveau voir un mélange de récupérations ainsi que des mises à jour et une utilisation assez efficace du processeur, ainsi que des ressources mémoire.

Et comme je l'ai dit, NCache is linéairement évolutif, examinons donc nos chiffres d'évolutivité. Vous savez, en augmentant le nombre de serveurs, vous pouvez voir NCache évolue de manière assez linéaire. Avec 5 NCache serveurs, nous avons pu atteindre 2 millions de requêtes par seconde, et vous pouvez ajouter de plus en plus de serveurs, et cette tendance serait encore plus linéaire, où plus de serveurs signifient plus de capacité de traitement des requêtes, sur NCache.

Conclusion

Cela nous amène vers la fin de notre vidéo. Tous ces résultats de tests et exemples d'applications sont disponibles sur notre site internet, que vous pouvez télécharger et réviser vous-même, dans votre environnement. Et s'il y a des questions, n'hésitez pas à entrer en contact avec nos ventes (sales@alachisoft.com) ainsi qu'avec notre soutien (support@alachisoft.com) équipe. Merci beaucoup pour votre temps.

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.