コンテンツにスキップ
Kong Logo | Kong Docs Logo
  • ドキュメント
    • API仕様を確認する
      View all API Specs すべてのAPI仕様を表示 View all API Specs arrow image
    • ドキュメンテーション
      API Specs
      Kong Gateway
      軽量、高速、柔軟なクラウドネイティブAPIゲートウェイ
      Kong Konnect
      SaaSのエンドツーエンド接続のための単一プラットフォーム
      Kong AI Gateway
      GenAI インフラストラクチャ向けマルチ LLM AI Gateway
      Kong Mesh
      Kuma と Envoy をベースにしたエンタープライズサービスメッシュ
      decK
      Kongの構成を宣言型で管理する上で役立ちます
      Kong Ingress Controller
      Kubernetesクラスタ内で動作し、Kongをプロキシトラフィックに設定する
      Kong Gateway Operator
      YAMLマニフェストを使用してKubernetes上のKongデプロイメントを管理する
      Insomnia
      コラボレーティブAPI開発プラットフォーム
  • Plugin Hub
    • Plugin Hubを探索する
      View all plugins すべてのプラグインを表示 View all plugins arrow image
    • 機能性 すべて表示 View all arrow image
      すべてのプラグインを表示
      AI's icon
      AI
      マルチ LLM AI Gatewayプラグインを使用してAIトラフィックを管理、保護、制御する
      認証's icon
      認証
      認証レイヤーでサービスを保護する
      セキュリティ's icon
      セキュリティ
      追加のセキュリティレイヤーでサービスを保護する
      トラフィック制御's icon
      トラフィック制御
      インバウンドおよびアウトバウンドAPIトラフィックの管理、スロットル、制限
      サーバーレス's icon
      サーバーレス
      他のプラグインと組み合わせてサーバーレス関数を呼び出します
      分析と監視's icon
      分析と監視
      APIとマイクロサービストラフィックを視覚化、検査、監視
      変革's icon
      変革
      Kongでリクエストとレスポンスをその場で変換
      ログ記録's icon
      ログ記録
      インフラストラクチャに最適なトランスポートを使用して、リクエストと応答データをログに記録します
  • サポート
  • コミュニティ
  • Kongアカデミー
デモを見る 無料トライアルを開始
Kong Gateway
3.4.x LTS
  • Home icon
  • Kong Gateway
  • Production Deployment
  • Kong Gatewayのパフォーマンスベンチマークを確立する
report-issue問題を報告する
  • Kong Gateway
  • Kong Konnect
  • Kong Mesh
  • Kong AI Gateway
  • Plugin Hub
  • decK
  • Kong Ingress Controller
  • Kong Gateway Operator
  • Insomnia
  • Kuma

  • ドキュメント投稿ガイドライン
  • 3.10.x (latest)
  • 3.9.x
  • 3.8.x
  • 3.7.x
  • 3.6.x
  • 3.5.x
  • 3.4.x (LTS)
  • 3.3.x
  • 2.8.x (LTS)
  • アーカイブ (2.6より前)
  • 導入
    • Kong Gatewayの概要
    • サポート
      • バージョンサポートポリシー
      • サードパーティの依存関係
      • ブラウザサポート
      • 脆弱性パッチ適用プロセス
      • ソフトウェア部品表
    • 安定性
    • リリースノート
    • 互換性のない変更
      • Kong Gateway 3.4.x
      • Kong Gateway 3.3.x
      • Kong Gateway 3.2.x
      • Kong Gateway 3.1.x
      • Kong Gateway 3.0.x
      • Kong Gateway 2.8.x またはそれ以前
    • キーコンセプト
      • サービス
      • ルート
      • コンシューマ
      • アップストリーム
      • プラグイン
      • コンシューマグループ
    • Kongの仕組み
      • トラフィックのルーティング
      • ロードバランシング
      • ヘルスチェックとサーキットブレーカー
    • 用語集
  • Kongを始めましょう
    • Kongを入手
    • サービスとルート
    • Rate Limiting
    • プロキシキャッシュ
    • Key Authentication
    • ロードバランシング
  • Kongのインストール
    • 概要
    • Kubernetes
      • 概要
      • Kong Gatewayのインストール
      • Admin APIを構成する
      • Kong Managerのインストール
    • Docker
      • docker runの使用
      • 独自の Docker イメージをビルドする
    • Linux
      • Amazon Linux
      • Debian
      • Red Hat
      • Ubuntu
    • インストール後
      • データストアの設定
      • エンタープライズライセンスを適用する
      • Kong Managerを有効にする
  • 本番環境のKong
    • デプロイメントトポロジー
      • 概要
      • ハイブリッドモード
        • 概要
        • Kong Gatewayをハイブリッドモードでデプロイする
      • DBレスデプロイメント
      • 伝統的な
    • 実行中のKong
      • 非rootユーザーとしてKongを実行する
      • Admin APIの保護
      • systemdの使用
    • アクセス制御
      • Kong Gatewayを安全に起動する
      • プログラムによる管理者の作成
      • RBACを有効にする
    • ライセンス
      • 概要
      • ライセンスのダウンロード
      • エンタープライズライセンスのデプロイ
      • ライセンス APIの使用
      • ライセンス使用状況の監視
    • ネットワーキング
      • デフォルトポート
      • DNSに関する考慮事項
      • ネットワークとファイアウォール
      • フォワードプロキシ経由のCP/DP通信
      • PostgreSQL TLS
        • PostgreSQL TLSの構成
        • PostgreSQL TLSのトラブルシューティング
    • Kong設定ファイル
    • 環境変数
    • KongからのウェブサイトとAPIの提供
    • モニタリング
      • 概要
      • Prometheus
      • StatsD
      • Datadog
      • ヘルスチェックプローブ
    • トレーシング
      • 概要
      • カスタムトレースエクスポーターの記述
      • トレース APIリファレンス
    • リソースサイジングのガイドライン
    • ブルーグリーンデプロイメント
    • カナリアデプロイメント
    • クラスタリングリファレンス
    • パフォーマンスベンチマークの確立
    • ログとデバッグ
      • ログ参照
      • 動的ログレベルの更新
      • ゲートウェイログのカスタマイズ
      • デバッグリクエスト
    • gRPCサービスを構成する
    • Expressionsルーターを使用する
    • アップグレードと移行
      • Kong Gateway 3.x.xのアップグレード
      • バックアップと復元
      • アップグレード戦略
        • デュアルクラスターのアップグレード
        • インプレースアップグレード
        • ブルーグリーンアップグレード
        • ローリングアップグレード
      • 2.8 LTS から 3.4 LTS へのアップグレード
      • OSS から Enterprise への移行
      • Cassandra から PostgreSQL への移行ガイドライン
      • 互換性のない変更
  • Kong Gateway Enterprise
    • 概要
    • Kong バイタル
      • 概要
      • メトリクス
      • InfluxDBによる分析
      • Prometheusによる分析
      • PostgreSQLにおける分析ストレージの見積もり
    • シークレット管理
      • 概要
      • はじめる
      • シークレットローテーション
      • 高度な使用法
      • バックエンド
        • 概要
        • 環境変数
        • AWS Secrets Manager
        • Azure Key Vault
        • Google Cloud Secret Manager
        • HashiCorp Vault
      • ハウツー
        • AWS Secrets Manager によるデータベースの保護
      • 参照形式
    • 動的なプラグインの順序
      • 概要
      • 動的プラグインの注文を開始する
    • Dev Portal
      • Overview
      • ポータルを有効にする
      • OpenAPI仕様の公開
      • 構造とファイルタイプ
      • テーマファイル
      • テンプレートを使う
      • エディターの使用
      • 認証と認可
        • Basic Auth
        • Key Auth
        • OIDC
        • セッション
        • カスタム登録フィールドの追加
        • 開発者の管理
        • 開発者の役割とコンテンツ権限
      • アプリケーション登録
        • 認可プロバイダー戦略
        • アプリケーション登録を有効にする
        • アプリケーション登録のための鍵認証を有効にする
        • 外部認証を有効にする
          • 外部OAuth2サポート
          • 外部認証のためのOktaとKongのセットアップ
          • 外部認証のためのAzure ADとKongのセットアップ
        • アプリケーションの管理
      • 開発ポータルのカスタマイズ
        • テーマ編集
        • ワークスペース間でのテンプレートの移行
        • Markdownレンダリングモジュール
        • ポータルメールのカスタマイズ
        • JavaScriptアセットの追加と使用
        • 開発ポータルのシングルページアプリ
        • 代替OpenAPIレンダラー
      • SMTP
      • Workspaces
      • ヘルパーCLI
      • ポータルAPIドキュメント
    • 監査ログ
    • キーリングとデータ暗号化
    • ワークスペース
    • コンシューマグループ
    • イベントフック
    • データプレーン(DP)のレジリエンスの構成
    • コントロールプレーン(CP)の停止管理について
    • FIPS 140-2
      • 概要
      • FIPS 準拠パッケージのインストール
      • FIPS 140-2準拠のプラグイン
    • AWS IAMを使用してKong Gateway Amazon RDSデータベースを認証する
    • 署名付き Kong イメージのビルド来歴を確認
  • Kong Manager
    • 概要
    • Kong Managerを有効にする
    • Kong Managerの使用を開始する
      • サービスとルート
      • Rate Limiting
      • プロキシキャッシュ
      • コンシューマによる認証
      • ロードバランシング
    • 認証と承認
      • 概要
      • スーパー管理者を作成する
      • ワークスペースとチーム
      • パスワードと RBAC トークンのリセット
      • Basic Auth
      • LDAP
        • LDAPの設定
        • LDAP サービスディレクトリマッピング
      • OIDC
        • OIDC を構成する
        • OIDC 認証済みグループマッピング
      • セッション
      • RBAC
        • 概要
        • RBACを有効にする
        • ロールと権限を追加する
        • ユーザーの作成
        • 管理者の作成
    • ネットワーク構成
    • ワークスペース
    • コンシューマグループを作成する
    • メールの送信
    • トラブルシューティング
  • カスタムプラグインの開発
    • 概要
    • ファイル構成
    • カスタムロジックの実装
    • プラグインの設定
    • データストアへのアクセス
    • カスタムエンティティの保存
    • カスタムエンティティのキャッシュ
    • Admin APIの拡張
    • テストを書く
    • インストールと配布
    • Proxy-Wasmフィルタ
      • proxy-wasm フィルターの作成
    • プラグイン開発キット
      • 概要
      • kong.client
      • kong.client.tls
      • kong.cluster
      • kong.ctx
      • kong.ip
      • kong.jwe
      • kong.log
      • kong.nginx
      • kong.node
      • kong.plugin
      • kong.request
      • kong.response
      • kong.router
      • kong.service
      • kong.service.request
      • kong.service.response
      • kong.table
      • kong.tracing
      • kong.vault
      • kong.websocket.client
      • kong.websocket.upstream
    • 他の言語のプラグイン
      • Go
      • Javascript
      • Python
      • コンテナ内でプラグインを実行する
      • 外部プラグインのパフォーマンス
  • Kong Plugins
    • 概要
    • 認証リファレンス
    • 複数の認証プラグインを許可する
    • プラグインキューイング
      • 概要
      • プラグインキューイングリファレンス
  • Admin API
    • 概要
    • インフォメーションルート
    • ヘルスルート
    • タグ
    • ルートのデバッグ
    • サービス
    • ルート
    • コンシューマ
    • プラグイン
    • 証明書
    • CA 証明書
    • SNI
    • アップストリーム
    • ターゲット
    • 金庫
    • 鍵
    • フィルターチェーン
    • ライセンス
    • ワークスペース
    • RBAC
    • アドミン
    • コンシューマグループ
    • イベントフック
    • キーリングとデータ暗号化
    • 監査ログ
    • ステータスAPI
  • リファレンス
    • kong.conf
    • Nginxディレクティブの挿入
    • CLI
    • キー管理
    • パフォーマンステストのフレームワーク
    • 表現言語
      • 概要
      • 言語リファレンス
      • パフォーマンスの最適化
    • Rate Limitingライブラリ
    • Webアセンブリ
    • FAQ
enterprise-switcher-icon 次に切り替える: OSS
On this pageOn this page
  • 前提条件
  • ベースライン Kong Gateway パフォーマンス ベンチマークの実行
  • Kong Gatewayのパフォーマンスを最適化
    • 以下を確認してくださいulimit
    • 接続の再利用を増やす
    • 自動スケーリングの回避
    • 複数のコアを効果的に使用する
    • リソース競合
    • アップストリームサーバーの限界
    • クライアントの限界
    • カスタムプラグイン
    • クラウドプロバイダーのパフォーマンスの問題
    • ベンチマークテスト中の構成変更
    • 大規模なリクエストと応答本文
    • サードパーティシステムのボトルネック
    • アクセスログのI/Oのブロック
    • Kong Gateway の内部エラー
  • ベンチマークのための kong.conf の例
  • 次の手順
旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。

Kong Gatewayのパフォーマンスベンチマークを確立する

Kong Gatewayはすぐに使用できる状態で最適化されていますが、Kong Gatewayの構成オプションを微調整することによってパフォーマンスが大幅に向上する場合があります。 Kong Gatewayの初期ベンチマークを実行してkong.confを最適化し、さらにいくつかのベンチマークテストを実施することによって、パフォーマンスのベースラインを確立できます。

このガイドでは、次について説明します。

  • 初期 Kong Gateway パフォーマンス ベンチマークを確立する方法
  • 追加のベンチマークを実行する前にKong Gatewayパフォーマンスを最適化する方法
  • ベンチマーク用にkong.confを構成する方法

前提条件

Kong Gateway3.4.2.0 以降が必要です。

ベンチマークテストを実施する前に、テストベッドが正しく構成されていることを確認する必要があります。以下は、ベンチマークテストを開始する前のいくつかの一般的な推奨事項です。

  • 多数の小さなKong Gatewayノードでなく、4つまたは8つのNGINXワーカーを対応するCPUリソース割り当てと併用して、Kong Gatewayのノード数を減らします。
  • Kong GatewayをDB-lessまたはハイブリッドモードで実行します。これらのモードでは、Kong Gatewayのプロキシノードはデータベースに接続されておらず、パフォーマンスに影響を及ぼす要素になる可能性があります。

ベースライン Kong Gateway パフォーマンス ベンチマークの実行

前提条件の推奨事項を実装すると、ベンチマーク テストを開始できます。

  1. Request Terminationプラグインでルートを構成し、Kong Gatewayのパフォーマンスを測定します。この場合、 Kong Gatewayはリクエストに応答し、アップストリームサーバーにトラフィックを送信しません。
  2. このテストを数回実行して、予期しないボトルネックを見つけます。Kong Gateway、ベンチマーク クライアント(k6 や Apache JMeter など)、またはその他のコンポーネントが予期しないボトルネックになる可能性があります。これらのボトルネックを解決するまでは、Kong Gateway のパフォーマンス向上は期待できません。このベースライン パフォーマンスが許容できる場合にのみ、次の手順に進んでください。
  3. ベースラインを確立したら、プラグインなしでアップストリームサーバーにトラフィックを送信するルートを設定します。 これは、Kong Gatewayのプロキシとアップストリームサーバーのパフォーマンスを測定します。
  4. 続行する前に、予期せずボトルネックを引き起こしているコンポーネントがないことを確認してください。
  5. データの信頼性を高めるために、ベンチマークを複数回実行します。 オブザベーション間の差が高くない(標準偏差が低い)ことを確認します。
  6. ベンチマークの最初の 1 回または 2 回の反復で収集された統計を破棄します。システムが最適かつ安定したレベルで動作していることを確認するために、これを実行することをお勧めします。

追加の構成で Kong Gateway のベンチマークを実行するには、前の手順を完了する必要があります。追加のベンチマークを実行する前に、次のセクションの最適化に関する推奨事項をよく読み、必要に応じて設定を変更してください。

Kong Gatewayのパフォーマンスを最適化

このセクションのサブセクションでは、追加のベンチマークテストでKong Gatewayパフォーマンスを向上させる 推奨事項について詳しく説明します。 各セクションを注意深く読み、構成ファイルに必要な調整を加えてください。

以下を確認してくださいulimit

アクション: ulimitが16384より小さい場合は、値を大きくします。

説明: Kong Gateway はシステムから得られる出来る限り多くのリソースを使用できますが、 オペレーティングシステム(OS)は Kong Gateway がアップストリーム(または他の)サーバーと開くことができるコネクション数、またはクライアントから受け入れることができるコネクション数を制限します。Kong Gatewayのオープン接続数はデフォルトでulimitに設定されており、上限は16384です。 つまり、 ulimitが無制限であるか、16384より大きい値である場合、Kong Gatewayは16384に制限されます。

Kong GatewayのコンテナまたはVMにシェルでアクセスしてulimit -nを実行すると、システムのulimitを確認できます。 Kong GatewayがVM上のコンテナ内で実行されている場合は、コンテナにシェルでアクセスする必要があります。 ulimitの値が16384より小さければ、それを増加させます。 また、これらのシステムで接続ボトルネックがあるとパフォーマンスが最適でなくなるため、クライアントとアップストリームサーバーで、 適切なulimitを確認して設定します。

接続の再利用を増やす

アクション: upstream_keepalive_max_requests = 100000とnginx_http_keepalive_requests = 100000を構成します。

説明: 10,000RPS以上の高スループットシナリオでは、TCPおよびTLS接続を設定するオーバーヘッドや不十分な接続により、ネットワーク帯域幅またはアップストリームサーバーの使用率が低下する可能性があります。接続の再利用を増やすには、 upstream_keepalive_max_requestsとnginx_http_keepalive_requestsを100000まで増やすか、最大の500000まで増やすことができます。

自動スケーリングの回避

アクション: Kong Gatewayが拡大/縮小(水平)または拡大/縮小(垂直)されていないことを確認します。

説明: ベンチマークの実行中は、Kong Gateway がスケールイン/スケールアウト(水平)またはアップ/ダウン(垂直)になっていないことを確認してください。Kubernetesでは、これは通常、水平または垂直ポッドオートスケーラーを使用して行われます。オートスケーラーはベンチマークの統計に干渉し、不要なノイズを発生させます。

ベンチマーク中に自動スケーリングされないよう、ベンチマークをテストする前にKong Gatewayをスケールアウトしてください。Kong Gateway ノードの数を監視して、ベンチマーク中に新しいノードが生成されることを確認し、 既存のノードは置き換えられません。

複数のコアを効果的に使用する

アクション: ほとんどの VM セットアップでは、 nginx_worker_processesをautoに設定します。Kubernetesではnginx_worker_processesを設定し ワーカーノードの CPUより1つまたは2つ少なくします。

説明: nginx_worker_processes が正しく構成されていることを確認してください。

  • ほとんどのVMセットアップでは、これをautoに設定します。これがデフォルト設定です。これにより、NGINXは1つのCPUコアに対して1つのワーカープロセスを生成するようになります。

  • Kubernetes でこれを明示的に設定することをお勧めします。Kong Gateway のための CPU のリクエストと制限が Kong Gateway で設定されたワーカーの数と一致することを確認します。たとえば、nginx_worker_processes=4 と設定すると、 ポッドのスペックでは 4 つの CPU をリクエストする必要があります。

    Kubernetesワーカーノードとn個のCPUを併用してKong Gatewayポッドを実行する場合、n-2またはn-1を Kong Gatewayに割り当てて、ワーカープロセスカウントをこの数と等しく構成します。 これにより、kubeletなどの設定済みのデーモンとKubernetesプロセスがKong Gatewayを持つリソースと競合しないように徹底できます。

    ワーカーが増えるたびにメモリ消費量が増加するため、Kong GatewayによってLinux Out-of-Memory Killerがトリガーされないことを確実にする必要があります。

リソース競合

アクション: クライアント(Apache JMeterやk6など)、 Kong Gateway 、およびアップストリームサーバーが異なる マシン (VM またはベアメタル)を低レイテンシで同じローカルネットワーク上で実行されていることを確認してください。

説明:

  • クライアント(Apache JMeterやk6など)、Kong Gateway、アップストリームサーバーが異なるタイプのマシン(VMまたはベアメタル)で実行することを確認します。 これらがすべてKubernetesクラスタで実行されている場合は、これら3つのシステム向けポッドのスケジュールが専用ノードで組まれるようにします。 これらシステム間でリソースが競合(通常はCPUとネットワーク)する場合、どのシステムでも最適なパフォーマンスが得られない可能性があります。
  • クライアント、Kong Gateway、およびアップストリームサーバーが同じローカルネットワーク上で低レイテンシーで動作していることを確認してください。クライアントと Kong Gateway 間、または Kong Gateway とアップストリームサーバー間のリクエストがインターネットを通過する場合、結果には不要なノイズが含まれることになります。

アップストリームサーバーの限界

アクション: アップストリームサーバーが負荷の上限に達していないことを確認してください。

説明: アップストリームサーバーのCPUとメモリをチェックすることで、アップストリームサーバーが最大限に達していないことを確認できます。追加のKong Gatewayノードをデプロイしても、スループットまたはエラーレートが変わらない場合は、アップストリームサーバーまたはKong Gateway以外のシステムがボトルネックになっている可能性があります。

アップストリームサーバーが自動スケーリングされないようにする必要があります。

クライアントの限界

アクション: クライアントはkeepalive接続を使用する必要があります。

説明: クライアント(k6やApache JMeterなど)が最大になることがあります。その調整には、クライアントを理解することが必要です。クライアントのCPU、スレッド、接続数を増やすと、 リソースの使用率とスループットが向上します。

また、クライアントはkeepalive接続を使用しなければなりません。たとえば、k6 とApache JMeterのHTTPClient4の実装は、デフォルトでどちらもkeepaliveが有効になります。これがテスト設定で適切に設定されていることを確認します。

カスタムプラグイン

アクション: カスタムプラグインがパフォーマンスを妨げていないことを確実にしてください。

説明: カスタムプラグインはパフォーマンスに問題を引き起こすことがあります。 まず、カスタムプラグインがパフォーマンスの問題の原因であるかどうかを判断する必要があります。これを行うには、次の3つの構成バリエーションを測定します。

  1. プラグインを有効にせずにKong Gatewayのパフォーマンスを測定します。これにより、 Kong Gatewayのパフォーマンスのベースラインが提供されます。
  2. 必要なバンドルプラグイン(製品に付属するプラグイン)を有効にしてから、Kong Gatewayのパフォーマンスを測定します。
  3. 次に、カスタムプラグイン(バンドルされたプラグインに加えて)を有効にして、Kong Gateway のパフォーマンスをもう一度測定します。

Kong Gateway のベースラインパフォーマンスが低い場合は、Kong Gateway の構成のチューニングが必要か、もしくは外部要因が影響している可能性があります。外部要因については、このガイドの他のセクションを参照してください。2 番目と 3 番目の手順のパフォーマンスに大きな差がある場合は、パフォーマンスの問題はカスタムプラグインが原因である可能性があります。

クラウドプロバイダーのパフォーマンスの問題

アクション: バースト可能なインスタンスを使用していないか、帯域幅、単位時間あたりのTCP接続、PPSの制限に達していないことを確認してください。

説明: 以下ではAWSについて言及しますが、同じ推奨事項はほとんどのクラウドプロバイダーに当てはまります。

  • AWSで、Tタイプのインスタンスのようなバースト可能なインスタンスを使用していないことを確認してください。 この場合、アプリケーションで使用できる CPU は変動するため、統計にノイズが発生します。 詳細については、バースト可能なパフォーマンスインスタンスのAWSドキュメントを参照してください。
  • 帯域幅制限、単位時間あたりのTCP接続数制限、またはパケット毎秒(PPS)制限に達していないことを確認してください。詳細については、Amazon EC2 インスタンスのネットワーク帯域幅に関する AWS ドキュメントを参照してください。

ベンチマークテスト中の構成変更

アクション: ベンチマークテスト中に Kong Gateway 構成を変更しないでください。

説明: テスト中に構成を変更すると、Kong Gatewayのテールレイテンシが急増する可能性があります。 そのため、構成変更後のKong Gatewayのパフォーマンスを測定する目的を除き、テスト中は構成を変更しないでください。

大規模なリクエストと応答本文

アクション: リクエストボディは8KB未満、レスポンス本文は32KB未満にしてください。

説明: ほとんどのベンチマーク設定は、通常、小さなHTTPボディとそれに対応するJSONまたはHTMLのレスポンスボディを含む HTTPリクエストで構成されます。 リクエストボディが 8 KB 未満、レスポンス本文が 32 KB 未満の場合は小さいとみなされます。 リクエストまたはレスポンスボディが大きい場合、Kong Gateway はディスクを使用してリクエストとレスポンスをバッファリングします。 これは Kong Gateway のパフォーマンスに大きな影響を与えます。

サードパーティシステムのボトルネック

説明: 多くの場合、Kong Gateway のボトルネックは、Kong Gatewayが使用しているサードパーティシステムのボトルネックが原因です。次のセクションでは、一般的なサードパーティのボトルネックとその解決方法について説明します。

Redis

アクション: Redisを使用し、いずれかのプラグインが有効になっている場合、CPUがボトルネックになる可能性があります。CPUを追加して、Redisを垂直方向に拡張します。

説明: Redisを使用し、いずれかのプラグインが有効になっている場合は、Redisがボトルネックになっていないことを確認してください。通常、CPUはRedisのボトルネックとなるため、まずCPUの使用状況を確認してください。この場合は、追加のCPUを追加してRedisを垂直方向に拡張します。

DNS TTL

アクション: dns_stale_ttl を 300 または 86400 に増やします。

説明: Kong Gatewayはリクエストの送信先を決定するためにDNSに依存しているため、DNSサーバーがKong Gatewayのボトルネックになる可能性があります。

In the case of Kubernetes, DNS TTLs are 5 seconds long and can cause problems.

dns_stale_ttlを300に、または最大86400をチケットとしてDNSを除外できます。

DNSサーバーが根本原因である場合、CPUでボトルネックを発生させているポッドがcoredns個あることがわかります。

アクセスログのI/Oのブロック

アクション: 高スループットのベンチマークテストに対しては、proxy_access_log 設定パラメータを off に設定してアクセスログを無効にします。

説明: Kong Gatewayと基礎となるNGINXは非ブロッキングネットワーク I/O 用にプログラムされており、ディスク I/O のブロックを可能な限り回避します。ただし、アクセスログはデフォルトで有効になっており、Kong Gatewayノードに電力を供給するディスクが何らかの理由で襲い場合、パフォーマンスの低下につながる可能性があります。proxy_access_log構成パラメータをoffに設定して、高スループットベンチマークテストのアクセスログを無効にします。

Kong Gateway の内部エラー

アクション: Kong Gateway のエラーログにエラーがないことを確認します。

説明: Kong Gateway のエラー ログで内部エラーを確認します。 内部エラーにより、 Kong Gateway 内の問題、またはトラフィックを中継するために Kong Gateway が依存しているサードパーティ システムの問題が明らかになる場合があります。

ベンチマークのための kong.conf の例

次の kong.conf ファイルの例には、前のセクションで推奨されたすべてのパラメータが含まれています。

kong.conf
Environment variable format
Helm chart values.yaml

kong.conf を直接編集して設定を適用する場合は、以下を使用します。

# For a Kubernetes setup, change nginx_worker_processes to a number matching the CPU limit. We recommend 4 or 8.
nginx_worker_processes=auto

upstream_keepalive_max_requests=100000
nginx_http_keepalive_requests=100000

proxy_access_log=off

dns_stale_ttl=3600

環境変数を使用して設定を適用する場合は、以下を使用します。

# For a Kubernetes setup, change nginx_worker_processes to a number matching the CPU limit. We recommend 4 or 8.
KONG_NGINX_WORKER_PROCESSES="auto"
KONG_UPSTREAM_KEEPALIVE_MAX_REQUESTS="100000"
KONG_NGINX_HTTP_KEEPALIVE_REQUESTS="100000"

KONG_PROXY_ACCESS_LOG="off"

KONG_DNS_STALE_TTL="3600"

Helm チャートを通して構成を適用する場合は、以下を使用します。

# The value of 1 for nginx_worker_processes is a suggested value. 
# Change nginx_worker_processes to a number matching the CPU limit. We recommend 4 or 8.
# Allocate the same amount of CPU and appropriate memory to avoid OOM killer.
env:
  nginx_worker_processes: "1"
  upstream_keepalive_max_requests: "100000"
  nginx_http_keepalive_requests: "100000"
  proxy_access_log: "off"
  dns_stale_ttl: "3600"

resources:
  requests:
    cpu: 1
    memory: "2Gi"

次の手順

Kong Gatewayのパフォーマンスを最適化したので、追加のベンチマークを実行できます。 常に測定し、変更を加え、再度測定します。行き詰まったときに次のステップを理解したり、別のアプローチに戻ったりできるように、変更の記録を保存しておいてください。

Thank you for your feedback.
Was this page useful?
情報が多すぎる場合 close cta icon
Kong Konnectを使用すると、より多くの機能とより少ないインフラストラクチャを実現できます。月額1Mリクエストが無料。
無料でお試しください
  • Kong
    APIの世界を動かす

    APIマネジメント、サービスメッシュ、イングレスコントローラーの統合プラットフォームにより、開発者の生産性、セキュリティ、パフォーマンスを大幅に向上します。

    • 製品
      • Kong Konnect
      • Kong Gateway Enterprise
      • Kong Gateway
      • Kong Mesh
      • Kong Ingress Controller
      • Kong Insomnia
      • 製品アップデート
      • 始める
    • ドキュメンテーション
      • Kong Konnectドキュメント
      • Kong Gatewayドキュメント
      • Kong Meshドキュメント
      • Kong Insomniaドキュメント
      • Kong Konnect Plugin Hub
    • オープンソース
      • Kong Gateway
      • Kuma
      • Insomnia
      • Kongコミュニティ
    • 会社概要
      • Kongについて
      • お客様
      • キャリア
      • プレス
      • イベント
      • お問い合わせ
  • 利用規約• プライバシー• 信頼とコンプライアンス
© Kong Inc. 2025