Checkout-Leistungsergebnisse von NCache in verteilten Umgebungen. Diese Tests wurden in der Amazon AWS-Umgebung durchgeführt.
In unseren jüngsten Benchmarks haben wir erfolgreich gezeigt, dass 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.
Sehen Sie sich das eigentliche Benchmarking-Video an, damit Sie sehen können, wie diese Benchmarks durchgeführt wurden.
In diesem Video sprechen wir über NCache Leistungsbenchmarking-Zahlen. NCache ist ein extrem schnelles und skalierbares Verteiltes Caching im Arbeitsspeicher System für Ihre .NET- und .NET Core-Anwendungen – heute erreichen wir 2 Millionen Operationen pro Sekunde bei gleichzeitiger Latenz von weniger als 3 Mikrosekunden pro Operation, mit nur 5 NCache Server.
NCache ist über diesen Punkt hinaus linear skalierbar, d. h. Sie können so viele Server hinzufügen, wie Sie benötigen, und während Sie mehr Server hinzufügen, erhalten Sie mehr Kapazität zur Bearbeitung von Anfragen, aus Ihrem Cache-Cluster und das auch auf lineare Weise.
Lassen Sie uns unser Benchmark-Setup überprüfen. Ich verwende für meinen Test 'AWS m4. 10xlarge' Server. 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 eine Verbindung zu diesem Cache-Cluster herstellen würde.
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.
Dies ist das Architekturdiagramm dieser Topologie, in der die Daten vollständig in Partitionen auf allen Caching-Servern verteilt sind und Clients für Lese- und Schreibanfragen mit allen Servern verbunden sind. Sie nutzen dabei alle Server gleichzeitig voll aus. Für diese Topologie ist die Replikation nicht aktiviert, es gibt jedoch andere Topologien, wie z. B. Partitionierter Replikat-Cache, das auch mit Replikationsunterstützung ausgestattet ist.
Ich habe Pipelining Aktiviert. Das ist eine neue Funktion in NCache Version 5.0. Es funktioniert so, dass es auf der Clientseite alle Anfragen sammelt, die zur Laufzeit eingehen, und diese Anfragen sofort auf der Serverseite anwendet. Die Akkumulation erfolgt innerhalb von Mikrosekunden. Es ist also hochoptimiert und wird bei hohen Transaktionslastanforderungen dringend empfohlen.
Was die Ladekonfigurationen betrifft, verwenden wir insgesamt 1 Million Elemente, die dem Cache hinzugefügt werden. Anschließend simulieren wir die Lese- und Schreibanforderungslast mit einem Verhältnis von 80 % Lesen und 20 % Schreiben im Cache. Außerdem haben wir ein Byte-Array von jeweils 100 Elementen als einzelne Elemente im Cache. Ich habe 4 GB Cache-Größe pro Server und wir haben insgesamt 30 Anwendungsinstanzen, die sich mit dem Cache verbinden.
Also, ohne Verzögerungen, werde ich mit der 'Datenpopulation' von 1 Million Elementen in meinem Cache-Cluster. Dies ist unsere Demo-Umgebung. Wir haben 5 NCache Server, wie bereits zuvor besprochen. Im Moment gibt es keine Aktivität, aber ich werde eine Client-Anwendung simulieren, die eine Verbindung herstellt und 1 Million Elemente zum Cache hinzufügt.
Ich habe die Anwendung ausgeführt und Sie sehen einen Client, der mit allen Caching-Servern verbunden ist. Außerdem haben wir auf allen Servern Aktivität im Zähler für Hinzufügungen pro Sekunde. Die Cache-Größe steigt, der Zähler steigt ebenfalls, und die Anfragen pro Sekunde geben die Gesamtzahl der Anfragen pro Sekunde an. Und siehe da: Dem Cache-Cluster wurden bereits 1 Million Elemente hinzugefügt. Ich kann jetzt mit der Auslastung der Lese- und Schreibanfragen beginnen. Wenn ich Ihnen kurz die Überwachungsdetails zeige, sehen Sie einen Anstieg der CPU-Auslastung, des Speichers, der Hinzufügungen pro Sekunde und der Anfragen pro Sekunde sowie des Zählers. Auch die Cache-Größe ist gestiegen.
Ich werde nun die Anwendung ausführen, um eine Transaktionslast auf diesem Cache-Cluster aufzubauen, mit 80 % Lese- und 20 % Schreibvorgängen. Lassen Sie uns das schnell erledigen. Anschließend werden Sie in den PerfMon-Zählern Aktivität auf allen Cache-Servern sehen.
Sie können die Anzahl der Client-Zähler sehen, die etwa 10 Clients anzeigen, also Instanzen, die mit jedem verbunden sind NCache Server, mit Aktivität bei Fetches sowie Updates pro Sekunde und Anfragen pro Sekunde Zähler liegt irgendwo zwischen 180,000 und 190,000 Anfragen pro Sekunde. Und da wir 5 NCache Server, die parallel arbeiten. Die Ansammlung dieser Anfragen führt zu einer Million Anfragen pro Sekunde durch diesen Cache-Cluster. Und Sie können ziemlich konsistent sehen, Datenverteilung.
Die Web-Monitoring-Statistiken sind recht solide. Systemspeicher und CPU sind recht niedrig, mit Abrufen pro Sekunde und Anfragen pro Sekunde, die 200,000 Anfragen pro Sekunde und etwa 150,000 Abrufen pro Sekunde anzeigen. Die Aktualisierungen betragen 50,000 Aktualisierungen pro Sekunde. Die durchschnittliche Mikrosekunde pro Cache-Operation beträgt knapp 10 Mikrosekunden pro Operation. Und das ist das Beste an diesem Cache-Cluster, der im Arbeitsspeicher liegt und eine geringe Latenz und einen hohen Durchsatz gewährleistet. NCache Cache-Cluster.
Unsere erste Phase ist abgeschlossen, nachdem wir erfolgreich 1 Million Operationen pro Sekunde von unserem Cache-Cluster erreicht haben. Ich habe einen Screenshot als Referenz, auf dem wir 200,000 Anfragen pro Sekunde von jedem haben NCache Server und wir haben 5 davon NCache Server, wobei auch die Betriebslatenz pro Cache weniger als 10 Mikrosekunden beträgt.
Es ist also pro Vorgang ziemlich schnell und wir haben eine ziemlich konsistente Mischung aus Abrufen und Aktualisierungen pro Sekunde, um ein reales Anwendungsszenario darzustellen. Gleichzeitig nutzen wir CPU und Speicher sehr effizient, wobei wir für diesen speziellen Test eine sehr geringe Auslastung dieser Ressourcen haben.
Nachdem wir nun 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. Sobald diese Anwendungen ausgeführt werden, würden Sie einen Anstieg der Anfragen pro Sekunde feststellen.
Zunächst einmal können Sie feststellen, dass die Anzahl der Clients 20 beträgt. 20 Instanzen, die mit allen verbunden sind NCache Server und wir haben Anfragen pro Sekunde Zähler zeigt jetzt 300,000 Anfragen pro Sekunde von jedem NCache Server, und wir haben erfolgreich 1.5 Millionen Anfragen pro Sekunde von diesem Cache-Cluster erreicht.
Lassen Sie mich Ihnen schnell zeigen, Web-Überwachungstool, für Leistungsstatistiken. Sie können die Anfragen pro Sekunde von jedem Server sehen: 300,000 Anfragen pro Sekunde. Die Abrufe liegen bei etwas über 200,000 Abrufen pro Sekunde und die Aktualisierungen zwischen 50,000 und 100,000. Und Sie können sehen, dass die durchschnittliche Mikrosekunde pro Cache-Operation weniger als 4 Mikrosekunden beträgt. Das ist erstaunlich, da wir eine sehr geringe Latenz haben und dies eine Auswirkung von 'PipeliningBei hoher Transaktionslast auf der Clientseite ist Pipelining eine echte Hilfe. Es reduziert die Latenz und erhöht den Durchsatz. Aus diesem Grund empfehlen wir, es zu aktivieren.
Unsere zweite Phase ist nun abgeschlossen. Wir haben 1.5 Millionen Operationen pro Sekunde von unserem Cache-Cluster erreicht. Hier ist ein Screenshot dieses Ergebnisses.
Wir haben jetzt 300,000 Anfragen pro Sekunde von jedem NCache Server. Diese wurde also erhöht, und unsere Latenz hat sich verringert. Wir haben durchschnittlich 3 Mikrosekunde pro Cache-Operation und benötigen jetzt etwa 4 bis XNUMX Mikrosekunden pro Cache-Operation. Das ist also eine enorme Verbesserung, und wir haben wieder eine gute Mischung aus Fetches und Updates und reduzieren so die CPU- und Speicherauslastung. Unsere Server sind also derzeit nicht ausgelastet. Ich möchte klarstellen, dass Sie die Last weiter strecken können, was wir als Nächstes tun werden.
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 sehen, wie NCache Der Cache-Cluster verhält sich entsprechend. Ich führe also einige weitere Anwendungsinstanzen aus, und Sie werden einen weiteren Anstieg der Anfragen pro Sekunde feststellen. Sie sehen, dass 30 Clients, also Instanzen, nun mit allen verbunden sind. NCache Server und wir sehen bereits einen Anstieg beim Zähler für Anfragen pro Sekunde.
Sie können jetzt sehen, dass wir erfolgreich 400,000 Anfragen pro Sekunde erreicht haben. NCache Server. Und wir haben 5 NCache Server, das macht insgesamt 2 Millionen Anfragen pro Sekunde durch diese NCache Cache-Cluster. Durch die Erhöhung der Transaktionslast auf der Client-Seite können Sie deutlich sehen, NCache hat 2 Millionen Anfragen pro Sekunde erreicht. Und wir haben eine durchschnittliche Mikrosekunde pro Cache-Operation von weniger als 3 Mikrosekunden und auch die Systemspeicher- und Prozessorzeit, wissen Sie, die CPU liegt weit unter den Grenzen, wo wir an beiden Fronten eine Auslastung von 40 % bis 50 % haben.
Wie Sie sehen, haben wir erfolgreich 2 Millionen Operationen pro Sekunde erreicht. Sehen wir uns diese Ergebnisse anhand eines Screenshots an.
Wir haben jetzt 400,000 Anfragen pro Sekunde von jedem NCache Der Server verarbeitet insgesamt 2 Millionen Anfragen pro Sekunde. Erfreulicherweise ist die Latenz weiter gesunken. Wir haben jetzt eine Latenz von 2 bis 3 Mikrosekunden pro Cache-Operation, was wiederum eine Verbesserung gegenüber dem vorherigen Ergebnis darstellt. Sie sehen erneut eine Mischung aus Fetches und Updates sowie eine recht effiziente Auslastung der CPU- und Speicherressourcen.
Und wie ich sagte, NCache is linear skalierbar, also, schauen wir uns unsere Skalierbarkeitszahlen an. Sie wissen, durch die Erhöhung der Anzahl der Server können Sie sehen NCache skaliert ziemlich linear. Mit 5 NCache Servern 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 Anfrageverarbeitungskapazität bedeuten, von NCache.
Damit nähern wir uns dem Ende unseres Videos. Alle Testergebnisse und Anwendungsbeispiele finden Sie auf unserer Website. Sie können sie herunterladen und in Ihrer Umgebung selbst testen. 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.