NCache Leistungsbenchmarks

2 Millionen Operationen/Sek

(5-Knoten-Cluster)

Checkout-Leistungsergebnisse von NCache in verteilten Umgebungen. Diese Tests wurden in der Amazon AWS-Umgebung durchgeführt.

In unseren aktuellen Benchmarks haben wir das erfolgreich demonstriert NCache kann mit nur einem 2-Server-Cache-Cluster linear skalieren und 5 Millionen Transaktionen pro Sekunde erreichen. NCache liefert diese Leistung mit einer Latenz von weniger als einer Mikrosekunde. Die Skalierbarkeit ist linear, was bedeutet, dass wenn Sie weitere Cache-Server hinzufügen, NCache wird einen höheren Transaktionsdurchsatz liefern.

NCache Benchmark-Grafiken

NCache Benchmark-Grafiken
See NCache Leistung, als wir dem Cluster Cache-Server hinzugefügt haben.

Sehen Sie sich das eigentliche Benchmarking-Video an, damit Sie sehen können, wie diese Benchmarks durchgeführt wurden.

In diesem Video werden wir darüber sprechen NCache Performance-Benchmarking-Zahlen. NCache ist extrem schnell und skalierbar Verteiltes In-Memory-Caching System für Ihr .NET und .NET Core Anwendungen und heute werden wir mit nur 2 3 Millionen Operationen pro Sekunde erreichen und gleichzeitig weniger als 5 Mikrosekunden Latenz pro Operation aufrechterhalten NCache Server.

NCache ist über diesen Punkt hinaus linear skalierbar, was bedeutet, dass Sie so viele Server hinzufügen können, wie Sie benötigen, und während Sie mehr Server hinzufügen würden, würden Sie mehr Kapazität für die Verarbeitung von Anfragen aus Ihrer herausholen Cache-Cluster und das auch noch linear.

Benchmark-Setup

Sehen wir uns unser Benchmark-Setup an. Ich verwende 'AWS m4. 10xlarge' Server für meinen Test. Ich habe fünf davon NCache Server, auf denen ich meinen Cache-Cluster konfiguriert habe, und ich habe 15 Client-Server, von denen aus ich meine Anwendungen ausführen und mich mit diesem Cache-Cluster verbinden würde.

Benchmark-Setup
Benchmark-Setup

Als Betriebssystem verwende ich Windows Server 2016, Data Center Edition 64-Bit. NCache Version ist 5.0 Enterprise und ich verwende NCache Partitionierter Cache, als Caching-Topologie.

Caching-Topologie

Es ist das Architekturdiagramm dieser Topologie, in der wir Daten vollständig in Partitionen verteilt haben, auf allen Caching-Servern und -Clients, die sich mit allen Servern für Lese- und Schreibanforderungen verbinden. Sie nutzen dabei auch alle Server gleichzeitig voll aus. Wir haben die Replikation für diese Topologie nicht aktiviert, aber es gibt andere Topologien, wie z Partitionierter Replikat-Cache, das auch mit Replikationsunterstützung ausgestattet ist.

Caching-Topologie
Caching-Topologie

Konfiguration der Benchmark-Umgebung

Ich habe Pipelining Ermöglicht. Das ist eine neue Funktion in NCache Version 5.0. Es funktioniert so, dass es auf der Client-Seite alle Anfragen sammelt, die zur Laufzeit passieren, und diese Anfragen sofort auf der Server-Seite anwendet und die Akkumulation innerhalb von Mikrosekunden erfolgt. Es ist also sehr optimiert und es ist eine sehr empfehlenswerte Einrichtung oder Konfiguration, wenn Sie hohe Anforderungen an die Transaktionslast haben.

Konfiguration der Benchmark-Umgebung
Konfiguration der Benchmark-Umgebung

Was die Lastkonfigurationen betrifft, verwenden wir insgesamt 1 Million Elemente, die in den Cache hinzugefügt werden und dann, wie Sie wissen, die Lese- und Schreibanforderungslast mit einem Verhältnis von 80 % Lesevorgängen und 20 % Schreibvorgängen simulieren der Cache. Und wir haben ein Byte-Array von jeweils 100 als einzelnes Element im Cache. Ich habe eine Cache-Größe von 4 GB pro Server und wir haben insgesamt 30 Anwendungsinstanzen, die sich mit dem Cache verbinden werden.

Datenpopulation

Also werde ich ohne Verzögerungen mit einer „Datenpopulation“ von 1 Million Artikeln in meinem beginnen Cache-Cluster. Dies ist nun unsere Demoumgebung. Wir haben 5 NCache Server, wie zuvor besprochen. Im Moment gibt es keine Aktivität, aber ich werde eine Client-Anwendung simulieren, die eine Verbindung herstellt und 1 Million Elemente im Cache hinzufügt.

Datenpopulation
Datenpopulation

Also, ich habe die Anwendung ausgeführt und Sie würden sehen, dass 1 Client auf allen Caching-Servern verbunden ist, und wir haben auf allen Servern Aktivität auf dem Zähler für Hinzufügungen pro Sekunde. Die Cache-Größe steigt und der Zählzähler steigt ebenfalls, und Anforderungen pro Sekunde ist die Gesamtzahl der Anforderungen pro Sekunde. Und los geht's, 1 Million Elemente wurden bereits im Cache-Cluster hinzugefügt. Ich kann jetzt, wissen Sie, mit dem Laden von Lese- und Schreibanforderungen beginnen, und wenn ich Ihnen schnell die Überwachungsdetails zeige, können Sie einen Blip in sehen, wissen Sie, eine Zunahme der CPU, des Speichers, der Hinzufügungen pro Sekunde und der Anforderungen pro Sekunde und auch im Zählzähler und die Cache-Größe ist ebenfalls gestiegen.

Transaktionslast aufbauen

Ich werde jetzt die Anwendung ausführen, um eine gewisse Transaktionslast auf diesem Cache-Cluster aufzubauen, mit 80 % Lese- und 20 % Schreibvorgängen. Also, machen wir das schnell. Und Sie würden anfangen, Aktivitäten auf allen Cache-Servern in PerfMon-Zählern zu sehen.

1 Million Anfragen / Sekunde

Sie können die Zähler der Anzahl der Clients sehen, die ungefähr 10 Clients anzeigen, wissen Sie, Instanzen, die mit jedem verbunden sind NCache Server, mit Aktivität auf Fetches sowie auf Updates pro Sekunde und Anfragen pro Sekunde Zähler liegt irgendwo zwischen 180,000 bis 190,000 Anfragen pro Sekunde. Und da wir 5 haben NCache Server, die parallel arbeiten, also bringt uns das Sammeln dieser Anfragen 1 Million Anfragen pro Sekunde durch diesen Cache-Cluster, und Sie können ziemlich konsistent sehen Datenverteilung.

1 Million Anfragen / Sekunde
1 Million Anfragen / Sekunde

Die Statistiken zur Webüberwachung sind ziemlich gesund, mit, wissen Sie, Systemspeicher und CPU, ziemlich niedrig, mit Abrufen pro Sekunde und Anfragen pro Sekunde, die 200,000 Anfragen pro Sekunde zeigen, etwa 150,000 Abrufe pro Sekunde. Updates sind 50,000 Updates pro Sekunde. Und die durchschnittliche Mikrosekunde pro Cache-Operation beträgt etwas weniger als 10 Mikrosekunden pro Operation. Und das ist das Beste an diesem Cache-Cluster, wo es In-Memory ist und sicherstellt, dass Sie eine niedrige Latenz und einen hohen Durchsatz von Ihrem haben NCache Cache-Cluster.

Unsere Phase eins ist abgeschlossen, wo wir erfolgreich 1 Million Operationen pro Sekunde von unserem Cache-Cluster erreicht haben. Ich habe einen Screenshot als Referenz, wo wir jeweils 200,000 Anfragen pro Sekunde haben NCache Server und wir haben 5 davon NCache Server, während gleichzeitig weniger als 10 Mikrosekunden pro Cache-Betriebslatenz eingehalten werden.

1 Million Anfragen / Sekunde erreicht
1 Million Anfragen / Sekunde erreicht

Es ist also ziemlich schnell pro Vorgang, und wir haben eine ziemlich konsistente Mischung aus Abrufen sowie Aktualisierungen pro Sekunde, um ein reales Anwendungsszenario zu zeigen, und gleichzeitig haben wir eine sehr effiziente Nutzung von CPU und Speicher, wo wir haben sehr wenig Auslastung für diese Ressourcen, für diesen speziellen Test.

1.5 Millionen Anfragen / Sek

Jetzt, da wir 1 Million Anfragen pro Sekunde erreicht haben, ist es an der Zeit, die Last zu erhöhen. Ich würde also einige weitere Anwendungsinstanzen ausführen, um die Transaktionslast zu erhöhen, und sobald diese Anwendungen ausgeführt würden, würden Sie einen Anstieg des Zählers für Anforderungen pro Sekunde sehen.

1.5 Million Anfragen / Sekunde
1.5 Million Anfragen / Sekunde

Zunächst können Sie feststellen, dass die Anzahl der Clients 20 beträgt. 20 Instanzen, die mit allen verbunden sind NCache Server und wir haben einen Zähler für Anfragen pro Sekunde, der jetzt jeweils 300,000 Anfragen pro Sekunde anzeigt NCache Server, und wir haben von diesem Cache-Cluster erfolgreich 1.5 Millionen Anfragen pro Sekunde erreicht.

Lassen Sie mich Ihnen das schnell zeigen Webüberwachungstool, für Leistungsstatistiken. Sie können Anfragen pro Sekunde von jedem Server sehen, 300,000 Anfragen pro Sekunde. Abrufe liegen etwas über 200,000 Abrufen pro Sekunde und Aktualisierungen liegen zwischen 50,000 und 100,000. Und Sie können sehen, dass die durchschnittliche Mikrosekunde pro Cache-Vorgang weniger als 4 Mikrosekunden beträgt, das ist erstaunlich, weil wir eine sehr geringe Latenz haben und dies eine Auswirkung von 'Pipelining'. Wenn Sie eine hohe Transaktionslast vom Client-Ende haben, hilft Pipelining wirklich und reduziert die Latenz und erhöht den Durchsatz. Aus diesem Grund können wir empfehlen, dies einzuschalten.

Unsere zweite Phase ist jetzt abgeschlossen, wo wir 1.5 Millionen Operationen pro Sekunde von unserem Cache-Cluster erreicht haben. Hier ist ein Screenshot für dieses Ergebnis.

1.5 Million Anfragen / Sekunde erreicht
1.5 Million Anfragen / Sekunde erreicht

Wir haben jetzt 300,000 Anfragen pro Sekunde von jedem NCache Server. Das wurde also erhöht und unsere Latenz hat sich verringert. Wir haben im Durchschnitt Mikrosekunden pro Cache-Vorgang benötigt, was jetzt ungefähr 3 bis 4 Mikrosekunden pro Cache-Vorgang dauert. Das ist also eine enorme Verbesserung, und wir haben wieder eine schöne Mischung aus Abrufen und Aktualisierungen und wiederum eine geringere Auslastung von CPU und Speicher. Unsere Server sind also zu diesem Zeitpunkt nicht ausgelastet. Ich möchte klarstellen, dass Sie die Last weiter dehnen können, was wir als nächstes tun werden.

2 Millionen Anfragen / Sek

Nachdem ich 1.5 Millionen Anfragen pro Sekunde erreicht habe, würde ich hier nicht aufhören. Lassen Sie uns die Last weiter erhöhen und mal sehen, wie NCache Cache Cluster verhält sich als Ergebnis davon. Ich führe also einige weitere Anwendungsinstanzen aus, und Sie würden einen weiteren Anstieg des Zählers „Anforderungen pro Sekunde“ sehen. Sie können 30 Clients sehen, wissen Sie, Instanzen sind jetzt mit allen verbunden NCache Server und wir sehen bereits einen Anstieg des Zählers für Anforderungen pro Sekunde.

2 Million Anfragen / Sekunde
1.5 Million Anfragen / Sekunde

Sie können jetzt sehen, dass wir jeweils 400,000 Anfragen pro Sekunde erfolgreich bearbeitet haben NCache Server. Und wir haben 5 NCache Server machen damit insgesamt 2 Millionen Anfragen pro Sekunde NCache Cache-Cluster. Wenn Sie also die Transaktionslast vom Client-Ende erhöhen, können Sie deutlich sehen, NCache hat 2 Millionen Anfragen pro Sekunde erreicht. Und wir haben eine durchschnittliche Mikrosekunde pro Cache-Vorgang von weniger als 3 Mikrosekunden und wir haben auch Systemspeicher und Prozessorzeit, wissen Sie, CPU weit unter den Grenzen, wo wir 40 % bis 50 % Auslastung haben, an beiden Fronten.

Wie Sie jetzt sehen können, haben wir erfolgreich 2 Millionen Operationen pro Sekunde erreicht. Lassen Sie uns diese Ergebnisse anhand eines Screenshots überprüfen.

NCache Benchmark-Statistiken
See NCache Überwachungsstatistiken, als wir 2 Millionen Operationen/Sek. erreichten.

Wir haben jetzt 400,000 Anfragen pro Sekunde von jedem NCache Server, der insgesamt 2 Millionen Anfragen pro Sekunde macht, und das Schöne ist, dass die Latenz weiter gesunken ist. Wir haben jetzt eine Latenzzeit von 2 bis 3 Mikrosekunden pro Cache-Vorgang, und das ist wiederum eine Verbesserung gegenüber dem vorherigen Ergebnis. Sie können wieder eine Mischung aus Fetches sowie Updates und einer ziemlich effizienten Nutzung von CPU- und Speicherressourcen sehen.

Und wie gesagt, NCache is linear skalierbarSehen wir uns also unsere Skalierbarkeitszahlen an. Sie wissen, durch die Erhöhung der Anzahl der Server können Sie sehen NCache skaliert ziemlich linear. Mit 5 NCache Server konnten wir 2 Millionen Anfragen pro Sekunde erreichen, und Sie können immer mehr Server hinzufügen, und dieser Trend wäre weiter linear, wobei mehr Server mehr Kapazität zur Bearbeitung von Anfragen bedeuten NCache.

Zusammenfassung

Damit kommen wir zum Ende unseres Videos. Alle diese Testergebnisse und Beispielanwendungen sind auf unserer Website verfügbar, die Sie herunterladen und selbst in Ihrer Umgebung überprüfen können. Und bei Fragen wenden Sie sich bitte an unseren Vertrieb (sales@alachisoft.com) sowie mit unserer Unterstützung (support@alachisoft.com) Team. Vielen Dank für Ihre Zeit.

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.