のチェックアウトパフォーマンス結果 NCache 分散環境において。これらのテストはAmazon AWS環境で実施されました。
最新のベンチマークでは、 NCache 2サーバーのキャッシュクラスターのみで、線形にスケーリングし、5秒あたりXNUMX万トランザクションを達成できます。 NCache サブマイクロ秒の遅延でこのパフォーマンスを実現します。 スケーラビリティは線形です。つまり、キャッシュサーバーを追加すると、 NCache より高いトランザクションスループットを提供します。
実際のベンチマークビデオを見て、これらのベンチマークがどのように行われたかを確認してください。
このビデオでは、 NCache パフォーマンスベンチマークの数値。 NCache 非常に高速でスケーラブルな インメモリ分散キャッシュ .NET および .NET Core アプリケーション用のシステムで、今日は毎秒 2 万回の操作を実現し、同時に操作ごとに 3 マイクロ秒未満のレイテンシを維持します。わずか 5 NCache サーバー
NCache この点以降は線形に拡張可能であり、必要な数のサーバーを追加できることを意味します。サーバーを追加すると、より多くのリクエスト処理能力が得られます。 キャッシュクラスター それも直線的に。
ベンチマークの設定を確認しましょう。テストには「AWS m4xlarge」サーバーを使用しています。このサーバーを10台持っています。 NCache キャッシュ クラスターが構成されているサーバーと、アプリケーションを実行してこのキャッシュ クラスターに接続する 15 台のクライアント サーバーがあります。
オペレーティング システムとして Windows Server 2016、Data Center Edition 64 ビットを使用しています。 NCache バージョンは5.0 Enterpriseで、 NCache パーティション化されたキャッシュ、キャッシュ トポロジとして。
これはこのトポロジのアーキテクチャ図です。すべてのキャッシュサーバーにデータがパーティションに完全に分散されており、クライアントは読み取りと書き込みのリクエストですべてのサーバーに接続します。クライアントは同時にすべてのサーバーを最大限に活用します。このトポロジではレプリケーションは有効になっていませんが、他にも以下のようなトポロジがあります。 パーティション化されたレプリカキャッシュレプリケーション サポートも装備されています。
私が持っている パイプライン 有効になりました。これは新機能です NCache バージョン5.0。クライアント側で実行時に発生するすべてのリクエストを蓄積し、サーバー側でそれらのリクエストを一度に適用します。蓄積はマイクロ秒単位で完了します。そのため、非常に最適化されており、トランザクションの負荷要件が高い場合は、セットアップまたは構成に非常に推奨されます。
負荷設定に関しては、合計1万アイテムを使用します。これらのアイテムはキャッシュに追加され、読み取りと書き込みのリクエスト負荷を、キャッシュ上で読み取り80%、書き込み20%の比率でシミュレートします。また、キャッシュには100バイトのバイト配列を個別のアイテムとして配置します。サーバーあたりのキャッシュサイズは4GBで、キャッシュに接続するアプリケーションインスタンスは合計30個あります。
それで、すぐに、私の1万項目の「データポピュレーション」を始めます。 キャッシュクラスターこれがデモ環境です。5つの NCache 先ほど説明したように、サーバーにデータを送信する予定です。現時点ではアクティビティはありませんが、接続してキャッシュに1万個のアイテムを追加するクライアントアプリケーションをシミュレートします。
アプリケーションを実行すると、すべてのキャッシュサーバーに1つのクライアントが接続していることが確認できます。また、すべてのサーバーで1秒あたりの追加数カウンターがアクティブになっています。キャッシュサイズが増加し、カウントカウンターも増加しています。XNUMX秒あたりのリクエスト数は、XNUMX秒あたりのリクエストの総数です。そして、キャッシュクラスターにはすでにXNUMX万アイテムが追加されています。これで、読み取りと書き込みのリクエスト負荷を確認できるようになりました。監視の詳細を簡単にお見せすると、CPU、メモリ、XNUMX秒あたりの追加数、XNUMX秒あたりのリクエスト数、そしてカウントカウンターが急上昇していることがわかります。キャッシュサイズも増加しています。
では、アプリケーションを実行して、このキャッシュクラスタにトランザクション負荷をかけてみましょう。読み込みが80%、書き込みが20%です。早速実行してみましょう。すると、PerfMonカウンタですべてのキャッシュサーバのアクティビティを確認できるようになります。
クライアントのカウンタには約10クライアントが表示され、各インスタンスが接続されています。 NCache サーバーの180,000秒あたりのフェッチと更新のアクティビティと、190,000秒あたりのリクエストカウンタは、5秒あたりXNUMX万からXNUMX万リクエスト程度です。そして、XNUMXつの NCache サーバーは並列に動作しており、これらのリクエストを蓄積すると、このキャッシュクラスタによって1秒あたりXNUMX万リクエストが処理され、非常に安定していることがわかります。 データ分布.
Webモニタリングの統計情報は非常に良好で、システムメモリとCPUも非常に低く、200,000秒あたりのフェッチ数とリクエスト数は150,000万リクエスト/秒、フェッチ数は約50,000万リクエスト/秒となっています。更新は10秒あたりXNUMX万アップデートです。キャッシュ操作の平均マイクロ秒数はXNUMXマイクロ秒弱です。これがこのキャッシュクラスタの最大の利点です。インメモリであるため、低レイテンシと高スループットが保証されます。 NCache キャッシュ クラスター。
第一段階が完了し、キャッシュクラスタから毎秒1万オペレーションを達成しました。参考までにスクリーンショットを掲載しますが、各クラスタで毎秒200,000万リクエストを処理しています。 NCache サーバーとこれらが5つあります NCache サーバーでは、キャッシュ操作の遅延も 10 マイクロ秒未満に維持されます。
したがって、操作ごとにかなり高速で、実際のアプリケーション シナリオを示すために、1 秒あたりのフェッチと更新の組み合わせが非常に一貫しています。同時に、この特定のテストでは、これらのリソースの使用率が非常に低く、CPU とメモリが非常に効率的に使用されています。
1秒あたりXNUMX万リクエストを達成したので、負荷を上げていきます。そこで、トランザクション負荷を高めるために、さらにアプリケーションインスタンスをいくつか実行します。これらのアプリケーションが実行されると同時に、XNUMX秒あたりのリクエスト数カウンターが増加しているのが確認できます。
まず、クライアントの数が20であることに気づくでしょう。20のインスタンスがすべて接続されています。 NCache サーバーと300,000秒あたりのリクエストカウンタは、現在各サーバーでXNUMX秒あたりXNUMXリクエストを示しています。 NCache サーバーでは、このキャッシュ クラスターから 1.5 秒あたり XNUMX 万件のリクエストを達成することに成功しました。
簡単にお見せしましょう ウェブ監視ツールパフォーマンス統計については、各サーバーの300,000秒あたりのリクエスト数が200,000万件/秒であることが確認できます。フェッチは50,000秒あたり100,000万件強、更新は4万~XNUMX万件です。また、キャッシュ操作あたりの平均マイクロ秒数はXNUMXマイクロ秒未満です。これは驚異的な数値です。レイテンシが非常に低いことが理由です。これは「パイプラインクライアント側からのトランザクション負荷が高い場合、パイプライン処理は非常に効果的で、レイテンシを削減し、スループットを向上させます。そのため、パイプライン処理を有効にすることを推奨します。
ステージ1.5が完了し、キャッシュクラスターから毎秒XNUMX万回のオペレーションを達成しました。この結果のスクリーンショットがこちらです。
現在、各サービスで300,000秒あたりXNUMX万件のリクエストを処理しています。 NCache サーバーです。これが強化され、レイテンシが減少しました。キャッシュ操作3回あたりの平均時間はマイクロ秒単位となり、現在は4~XNUMXマイクロ秒程度です。これは大きな改善です。また、フェッチと更新をバランス良く組み合わせることで、CPUとメモリの使用率も低く抑えられています。つまり、現時点ではサーバーが限界に達しているわけではありません。負荷をさらに引き伸ばすことも可能です。これは次に説明します。
1.5秒あたりXNUMX万リクエストを達成した後も、ここで止まるつもりはありません。さらに負荷を上げて、どうなるか見てみましょう。 NCache キャッシュクラスタはその結果として動作します。そこで、さらにアプリケーションインスタンスを実行すると、30秒あたりのリクエストカウンタがさらに増加します。XNUMXクライアントが表示され、インスタンスがすべて接続されていることがわかります。 NCache サーバーでは、1 秒あたりのリクエスト カウンターの増加がすでに確認されています。
ご覧のとおり、各ノードで400,000秒あたりXNUMX万件のリクエストに成功しました。 NCache サーバー。5台あります NCache サーバーは、これで2秒あたりXNUMX万リクエストになります NCache キャッシュクラスタ。クライアント側からのトランザクション負荷を増やすことで、次のようなことがはっきりと分かります。 NCache 2秒あたり3万リクエストを達成しました。キャッシュ操作あたりの平均マイクロ秒数は40マイクロ秒未満で、システムメモリとプロセッサ時間も制限値をはるかに下回っており、CPU使用率は両方とも50%からXNUMX%です。
ご覧の通り、2秒あたりXNUMX万回の演算処理に成功しました。それでは、スクリーンショットを使って結果を確認してみましょう。
現在、各サービスで400,000秒あたりXNUMX万件のリクエストを処理しています。 NCache サーバーでは、2秒あたり合計2万リクエストを達成しました。レイテンシがさらに低下していることは素晴らしいことです。キャッシュ操作のレイテンシは3~XNUMXマイクロ秒となり、これも前回の結果から改善されています。フェッチとアップデートが混在し、CPUとメモリリソースがかなり効率的に利用されていることがわかります。
そして私が言ったように、 NCache is 線形にスケーラブルでは、スケーラビリティの数値を確認してみましょう。サーバーの台数を増やすと、 NCache かなり直線的にスケールアウトします。5 NCache サーバーを追加することで、2秒あたりXNUMX万リクエストを達成できました。サーバーを追加していくと、この傾向はさらに直線的になり、サーバーが増えるほどリクエスト処理能力も高まります。 NCache.
これでビデオは終わりです。これらのテスト結果とサンプルアプリケーションはすべて当社のウェブサイトからダウンロードして、ご自身の環境でご確認いただけます。ご質問等ございましたら、お気軽に営業までお問い合わせください。sales@alachisoft.com) と私たちのサポート (support@alachisoft.com)チームの皆様、お忙しい中ありがとうございました。
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。