パフォーマンステストベンチマーク
Kong Gateway 3.6.x時点で、Kongは、 Kong Gatewayのパフォーマンス結果を、テスト方法と詳細とともに公開しています。Kongは、今後のマイナーリリースごとにKong Gatewayのパフォーマンス結果を実施し、公開する予定です。
パフォーマンステストの結果を表示するだけでなく、公開テストスイートを使用してKong Gatewayで独自のパフォーマンステストを実施することもできます。
3.8.xのKong Gatewayパフォーマンステスト方法と結果
Kongは当社の公開テストスイートを使用して、Kong Gatewayのパフォーマンス結果をテストします。
次のセクションでは、テストの方法、結果、および構成について説明します。
試験方法
パフォーマンステストでは、Kong Gateway のさまざまなベースライン構成と一般的なユースケースをカバーします。次に、使用されるテストケースと構成方法について説明します。
- 環境 : AWS インフラでの Kubernetes 環境。
-
ユースケースのテスト
- 基本的なKong Gatewayプロキシ。
- 認証なしでリクエストを流量制限します。
- Basic Authプラグインと流量制限を使用した認証。
- Key Authプラグインと流量制限を使用した認証。
- ルートとコンシューマ : 各ケースを、次の 2 つの異なるオプションでテストしました。1 個のルートと 1 人のコンシューマを使用する場合と 100 個のルートと 100 人のコンシューマを使用する場合で、テストケースとしては合計 8 個です。認証を必要としないテストケースでは、コンシューマは使用しませんでした。
- トラフィック分布 :ルートとコンシューマの両方で正規分布。
- プロトコル HTTPSのみ。
- サンプル数 :各テストケースは5回、それぞれ15分間実行されました。結果は、5回のテスト実行の平均です。
Kong Gateway 3.8.x パフォーマンスベンチマークの結果
テストタイプ | ルート数/コンシューマ数 | 1 秒あたりのリクエスト数(RPS) | P99 (ms) | P95(ミリ秒) |
---|---|---|---|---|
プラグインのないKongプロキシ | 1ルート、0コンシューマ | 142443.4 | 6.24 | 3.55 |
プラグインのないKongプロキシ | 100ルート、0コンシューマ | 137561.7 | 6.36 | 3.58 |
流量制限あり、認証なし | 1ルート、0コンシューマ | 120897.4 | 8.08 | 3.60 |
流量制限あり、認証なし | 100ルート、0コンシューマ | 116867.2 | 8.51 | 3.78 |
流量制限とキー認証 | 1ルート、1コンシューマ | 105657.4 | 8.62 | 4.38 |
流量制限とキー認証 | 100ルート、100コンシューマ | 100047.6 | 9.12 | 4.45 |
流量制限と基本認証 | 1ルート、1コンシューマ | 98031.6 | 10.47 | 5.02 |
流量制限と基本認証 | 100ルート、100コンシューマ | 92548.2 | 9.80 | 5.25 |
テスト環境
KongはEC2マシンを使用し、AWSでこれらのテストを実行しました。Kubernetesのテイントを使用して、Kong Gatewayが独自のノード上にあり、読み込みテストおよび監視ツールが同じクラスタ内の独自の個別のノード上にあることを確認しました。
Kong Gatewayはc5.4xlargeの単一の専用インスタンスで実行され、オブザーバビリティスタックとK6の2つのノードは専用のc5.metalインスタンスで実行されました。オブザーバビリティ負荷生成ツールチェーンにはメタルインスタンスを使用して、リソースに制約がないことを確認しました。テスト中に大量のトラフィックを生成する場合、K6は非常にリソースを必要とするため、ツールチェーンに小さいインスタンスやそれほど強力ではないインスタンスを使用すると、オブザーバビリティ負荷生成ツールがKong Gatewayパフォーマンスのボトルネックになることがわかりました。
テスト構成
これらのテストでは、ワーカープロセスの数を変更して、Kong Gateway を実行しているノードの使用可能なコアの数(16 vCPU)と一致するようにしました。そのため、プロセス数を 16 に設定しました。これはKong の全体的なパフォーマンス ガイダンスに準拠しています。この変更以外のチューニングは行われませんでした。
Kong のテストスイートを使用して独自のパフォーマンステストを実施する
Kongのパブリックテストスイートリポジトリを使用すると、Kong Gateway、Redis、Prometheus、GrafanaがインストールされたEKSクラスタのスピンアップをサポートします。さらに、人気のオープンソース負荷テストツールであるK6を構成します。このテストスイートを使用して、独自のパフォーマンステストを実行できます。
クラスタが生成されたら、提供されているyaml
を適用して、含まれているテストケース用にKong Gatewayを構成し、クラスタですでにプロビジョニングされているPrometheusインスタンスによるメトリクスクレイピング用のオブザーバビリティプラグインを設定できます。独自のテストシナリオを定義したい場合は、テストしたいKong Gateway構成を定義して、クラスタに適用することもできます。
そこから、付属のbashスクリプトを使用してK6テストを実行できます。テストが完了したら、クラスタにport-forward
して、パフォーマンス結果を含むGrafanaダッシュボードを表示できます。
その他の情報
- Kong Gatewayパフォーマンスベンチマークの確立:パフォーマンスのためにKong Gatewayを最適化する方法をご紹介します。