NCache パフォーマンスベンチマーク

2万Ops/秒

(5ノードクラスター)

のチェックアウトパフォーマンス結果 NCache 分散環境で。 これらのテストは、AmazonAWS環境で実施されました。

最新のベンチマークでは、次のことを実証することに成功しています。 NCache 2サーバーのキャッシュクラスターのみで、線形にスケーリングし、5秒あたりXNUMX万トランザクションを達成できます。 NCache サブマイクロ秒の遅延でこのパフォーマンスを実現します。 スケーラビリティは線形です。つまり、キャッシュサーバーを追加すると、 NCache より高いトランザクションスループットを提供します。

NCache ベンチマークグラフ

NCache ベンチマークグラフ
見る NCache クラスターにキャッシュサーバーを追加したときのパフォーマンス。

実際のベンチマークビデオを見て、これらのベンチマークがどのように行われたかを確認してください。

このビデオでは、 NCache パフォーマンスベンチマークの数値。 NCache 非常に高速でスケーラブルです インメモリ分散キャッシング .NETおよび .NET Core アプリケーションと今日では、2秒あたり3万回の操作を実現すると同時に、5回の操作あたりXNUMXマイクロ秒未満の遅延を維持し、わずかXNUMX NCache サーバー

NCache はこのポイントを超えて線形にスケーラブルです。つまり、必要な数のサーバーを追加できます。サーバーを追加すると、リクエスト処理能力が向上します。 キャッシュクラスター そしてそれも直線的に。

ベンチマークの設定

ベンチマークの設定を確認しましょう。 'AWSm4を使用しています。 私のテスト用の10xlarge'サーバー。 私はこれらのうちのXNUMXつを持っています NCache キャッシュクラスターが構成され、15台のクライアントサーバーがあり、そこからアプリケーションを実行してこのキャッシュクラスターに接続するサーバー。

ベンチマークの設定
ベンチマークの設定

Windows Server 2016をオペレーティングシステム、Data CenterEdition64ビットとして使用しています。 NCache バージョンは5.0Enterpriseで、使用しています 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カウンターのすべてのキャッシュサーバーでアクティビティが表示されるようになります。

1万リクエスト/秒

クライアントのカウンターの数を確認すると、それぞれに接続されているインスタンスが約10個表示されます。 NCache サーバー。フェッチと180,000秒あたりの更新のアクティビティがあり、190,000秒あたりのリクエスト数カウンターは5秒あたりXNUMX〜XNUMXリクエストです。 そして、XNUMXつあるので NCache サーバーは並行して動作しているため、これらのリクエストを蓄積すると、このキャッシュクラスターによって1秒あたりXNUMX万件のリクエストが発生し、かなり一貫性があることがわかります。 データ分布.

1万リクエスト/秒
1万リクエスト/秒

Web監視の統計はかなり健全で、システムメモリとCPUはかなり低く、200,000秒あたりのフェッチ数と150,000秒あたりのリクエスト数は、50,000秒あたり10リクエスト、XNUMX秒あたり約XNUMX回のフェッチを示しています。 更新は、XNUMX秒あたりXNUMX回の更新です。 また、キャッシュ操作あたりの平均マイクロ秒は、操作あたりXNUMXマイクロ秒弱です。 そして、それがこのキャッシュクラスターの最も優れた点であり、インメモリであり、低レイテンシーと高スループットを保証します。 NCache キャッシュクラスター。

ステージ1は完了し、キャッシュクラスターから200,000秒あたりXNUMX万回の操作を正常に達成しました。 参考のためにスクリーンショットがあります。ここでは、XNUMX秒あたりXNUMX件のリクエストがあります。 NCache サーバーと私たちはこれらのうちの5つを持っています NCache サーバーは、キャッシュあたり10マイクロ秒未満の運用レイテンシも維持します。

1万件のリクエスト/XNUMX回目の達成
1万件のリクエスト/XNUMX回目の達成

そのため、操作ごとに非常に高速であり、実際のアプリケーションシナリオを示すために、フェッチとXNUMX秒あたりの更新をかなり一貫して組み合わせており、同時にCPUとメモリを非常に効率的に使用しています。この特定のテストでは、これらのリソースの使用率は非常に低くなっています。

1.5万リクエスト/秒

1秒あたりXNUMX万件のリクエストを達成したので、次は負荷を増やします。 したがって、トランザクションの負荷を増やすために、さらにいくつかのアプリケーションインスタンスを実行します。これらのアプリケーションが実行されるとすぐに、XNUMX秒あたりのリクエスト数カウンターが増加します。

1.5万リクエスト/秒
1.5万リクエスト/秒

まず、クライアントの数が20であることに気付くことができます。すべてに接続されている20のインスタンス NCache サーバーと300,000秒あたりのリクエスト数カウンターには、XNUMX秒あたりXNUMX件のリクエストが表示されます。 NCache サーバー、およびこのキャッシュクラスターから1.5秒あたりXNUMX万のリクエストを正常に達成しました。

すぐにお見せしましょう Web監視ツール、パフォーマンス統計用。 各サーバーによる300,000秒あたりのリクエスト数、200,000秒あたり50,000件のリクエストを確認できます。 フェッチは100,000秒あたり4を少し超え、更新はXNUMX〜XNUMXです。 また、キャッシュ操作あたりの平均マイクロ秒はXNUMXマイクロ秒未満であることがわかります。これは、レイテンシが非常に低く、これが影響であるため、驚くべきことです。パイプライン'。 クライアント側からのトランザクション負荷が高い場合、パイプライン処理は本当に役立ち、レイテンシーを減らしてスループットを向上させます。 そして、これが理由です。これをオンにすることをお勧めします。

これでステージ1.5が完了し、キャッシュクラスターからXNUMX秒あたりXNUMX万回の操作を達成しました。 これがこの結果のスクリーンショットです。

1.5万件のリクエスト/XNUMX回目の達成
1.5万件のリクエスト/XNUMX回目の達成

現在、300,000秒あたりXNUMX件のリクエストがあります NCache サーバ。 つまり、それは増加し、レイテンシーは減少しました。 キャッシュ操作あたりの平均マイクロ秒数は、キャッシュ操作あたり約3〜4マイクロ秒になりました。 つまり、これは大幅な改善であり、ここでも、フェッチと更新がかなり混在しており、CPUとメモリの使用率が低く維持されています。 そのため、現時点ではサーバーが最大限に活用されていません。 次に負荷をさらに伸ばすことができることを明確にしておきたいと思います。

2万リクエスト/秒

毎秒1.5万のリクエストを達成した後、私はここで止まりません。 さらに負荷を上げて、その方法を見てみましょう NCache その結果、キャッシュクラスターが動作します。 したがって、さらにいくつかのアプリケーションインスタンスを実行していると、30秒あたりのリクエスト数カウンターがさらに増加することがわかります。 XNUMXのクライアントを見ることができます、あなたが知っている、インスタンスは今すべてに接続されています NCache サーバーと私たちはすでにXNUMX秒あたりのリクエスト数カウンターの増加を見ています。

2万リクエスト/秒
1.5万リクエスト/秒

ご覧のとおり、400,000秒あたりXNUMX万件のリクエストに正常に対応しています。 NCache サーバ。 そして私達は5を持っています NCache サーバー、つまり、これにより2秒あたり合計XNUMX万件のリクエストが発生します NCache キャッシュクラスター。 したがって、クライアント側からのトランザクションの負荷を増やすことで、次のことがはっきりとわかります。 NCache 2秒あたり3万リクエストを達成しました。 また、キャッシュ操作あたりの平均マイクロ秒は40マイクロ秒未満であり、システムのメモリとプロセッサ時間もあります。CPUは制限をはるかに下回っており、両方の面で50%からXNUMX%の使用率があります。

ご覧のとおり、2秒あたりXNUMX万回の運用に成功しています。 それでは、スクリーンショットを使用してこれらの結果を確認しましょう。

NCache ベンチマーク統計
見る NCache 2万ops/秒に達したときの統計の監視。

現在、400,000秒あたりXNUMX件のリクエストがあります NCache サーバー、2秒あたり合計2万のリクエストを作成します。これは、レイテンシがさらに低下することです。 キャッシュ操作のレイテンシーあたり3〜XNUMXマイクロ秒になりました。これも、以前の結果からの改善です。 ここでも、フェッチ、更新、CPUのかなり効率的な使用率、およびメモリリソースが混在していることがわかります。

そして私が言ったように、 NCache is 線形にスケーラブル、それでは、スケーラビリティの数値を確認しましょう。 サーバーの数を増やすことで、 NCache かなり直線的にスケールアウトします。 5で NCache サーバーでは、2秒あたりXNUMX万のリクエストを達成できました。さらに多くのサーバーを追加できます。この傾向はさらに直線的であり、サーバーが多いほどリクエスト処理能力が高くなります。 NCache.

まとめ

これで、ビデオの終わりに近づきました。 これらのテスト結果とサンプルアプリケーションはすべて、当社のWebサイトで入手でき、ご使用の環境でダウンロードして確認できます。 また、ご不明な点がございましたら、お気軽に弊社営業までお問い合わせください(sales@alachisoft.com)だけでなく、私たちのサポート(support@alachisoft.com) チーム。 お時間をいただき、誠にありがとうございます。

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。