PoP のセルフホスト環境におけるキャパシティプランニングとスケーリング

自社ホスト型のSynthetic PoP の導入における容量を計画し、増加するワークロードに対応できるよう PoP をスケールアップしてください。 PoP のサイズとリソースは、合成テストの数、テストの実行頻度、テストスクリプトの複雑さなどのワークロードによって異なります。

容量の計画

優れたキャパシティ計画は、最小限のコストで最高のパフォーマンスと安定性を実現します。 Instana 制御された環境下で実施された標準的な IBM ベンチマークの測定結果および予測に基づき、 PoP の各サイズとリソース割り当てに関する指針を提供します。 実際のスループットやパフォーマンスは、さまざまな要因によって異なります。 PoP のパフォーマンスを向上させるには、以下の手順に従ってください:

  • ワークロードと PoP のサイズ推定に基づき、十分なリソース割り当てを計画してください。
  • 本番環境において、 Instana Agent を使用して PoP の稼働状況を監視します。
  • 増加するワークロードに対応するため、必要に応じて特定の再生エンジンをスケールアップします。

Synthetic PoP, でデフォルトの CPU およびメモリリソース割り当てを使用する場合、 Kubernetes クラスタの物理リソースに少なくとも6コアのCPUと 4.8 GBのメモリが確保されていることを確認してください。そうすれば、以下のテスト構成によるパフォーマンスベンチマークテストに基づき、 API Simpleテストを2000回、 API スクリプトテストを100回、Browserスクリプトテストを15回、ISMテスト( SSL / DNS )を2000回実行できます

テスト・タイプ 頻度 期間 複雑性 テスト数
API シンプル・テスト 1 分 ~ 200 ミリ秒 2000 年
API スクリプト・テスト 5 分 ~ 800 ミリ秒 HTTP 呼び出しを5回実行する 100
ブラウザー・スクリプト・テスト 15 分間 ~ 20 秒 2 つの Web ページを開く 15
SSL テスト 1 分 ~ 240 ミリ秒 2000 年
DNS テスト 1 分 ~ 240 ミリ秒 2000 年

PoP を監視するために Instana エージェントをインストールする場合、またはパフォーマンスを向上させるために PoP をスケールアップする場合、 Kubernetes クラスタ内に十分な物理リソースが確保されている必要があります。

PoP サイズとリソース割り振りの見積もりは、各コンポーネントのデフォルト構成からのリソース要求と制限を使用して、テーブルに示されているように、シンセティック・テストとテスト頻度でテストすることによって行われます。 Syntheticの PoP コンポーネントのデフォルト設定については、 PoP helm charts を参照してください。 同様に、 Instana エージェントおよび Kubernetes ( K8 )センサーのデフォルト設定に関する情報については、 「エージェントの helm チャート」 を参照してください。 再生エンジンのレプリカの数は、テストの数とその実行頻度に基づいて計算されます。 Instana のエージェント数は、 Kubernetes のワーカーノード数に基づいて計算されます。 デフォルトの設定では、 Kubernetes センサーの数は3に設定されています。 Kubernetes センサーのレプリカを3つ用意すれば、最大400ノードを監視できます。

ディスク・スペース所要量

次の表は、初期導入時の PoP のサイズごとの最小ディスク容量要件を示しています。 これらの要件はワーカーノードごとに指定されており、 K3s のインストール、 Helm のインストール、コンテナイメージの保存、およびSyntheticのコアコンポーネントである PoP のデータが対象となります。

デフォルトの設定( PoP、CPU: 300m、メモリ: 300Mi )における、実際に測定されたディスク使用量は以下の通りです:

  • K3s インストール容量:約1 GB
  • Helm インストール容量:約1 GB
  • PoP の合成ポッド(すべてのコンテナ):約7 GB
  • 合計:約9 GB
PoP サイズ ノードごとのディスク・スペース最小量 ワーカー・ノード 必要なディスク容量の合計 使用状況の詳細
xsmall 50 GB 1 50 GB K3s (約1 GB)、 Helm (約1 GB)、 PoP コンテナ(約7 GB)、バッファ(約41 GB)
100 GB 3 300 GB K3s ノードあたり (~1 GB)、 Helm (~1 GB)、 PoP コンテナ (~20 GB)、バッファ (~78 GB)
中間 200GB 3 600 GB K3s ノードあたり (~1 GB)、 Helm (~1 GB)、 PoP コンテナ (~40 GB)、バッファ (~158 GB)
ラージ 400 GB 6 2.4 TB K3s ノードあたり (~1 GB)、 Helm (~1 GB)、 PoP コンテナ (~80 GB)、バッファ (~318 GB)
注: これらの数値は、インフラ調達計画の基準値です。 デフォルト構成の PoP における実際のディスク使用量は約9 GBで、これには K3s、 Helm、およびすべてのSynthetic PoP コンテナが含まれます。 実際のディスク使用量は、テストの実行頻度、ログの量、監視対象の数、および保存ポリシーに応じて増加します。 バッファ領域には、ログファイル、一時データ、およびシステムのオーバーヘッドが含まれます。 ディスク使用率を定期的に監視し、使用率が70%を超えた場合は容量を拡張して、最適なパフォーマンスを維持してください。

XSmallのインストール - PoP の機能テスト

XSmall のインストールは、テストまたはデモの目的でサポートされています。 デフォルトの設定を使用する場合、 Kubernetes クラスタの物理リソースとして6コアのCPUと 4.8 GBのメモリが利用可能であれば、テスト構成を一定に保ったパフォーマンスベンチマークテストに基づき、 API のシンプルテストを10回、 API のスクリプトテストを5回、ブラウザスクリプトテストを1回、ISMテスト( SSL / DNS )を10回実行できます。

Instana エージェントを使用してSynthetic PoP を監視するには、 Kubernetes クラスターが以下の最小要件を満たしていることを確認してください:

リソース 要件
ワーカー・ノード 1
CPU 8 コア
メモリー 7.1 GB
ディスク・スペース ノードあたり50 GB

1つのワーカーノードで構成されるXSmall版 PoP のデプロイメントアーキテクチャを示す図。 PoP コントローラー、 Redis、および再生エンジンが含まれます

小規模な設置 - 制作

小規模インストールは実動用です。 デフォルトの設定を使用する場合、 Kubernetes クラスタの物理リソースとして6コアのCPUと 4.8 GBのメモリが利用可能であれば、テスト構成を一定に保ったパフォーマンスベンチマークテストに基づき、 API のシンプルテストを2000回、 API のスクリプトテストを20回、ブラウザスクリプトテストを5回、およびISMテスト( SSL / DNS )を2000回実行できます。

Instana エージェントを使用してSynthetic PoP を監視するには、 Kubernetes クラスターが以下の最小要件を満たしていることを確認してください:

リソース 要件
ワーカー・ノード 3
CPU 12 コア
メモリー 11.7 GB
ディスク・スペース ノード当たり 100 GB

3つのワーカーノードで構成されるSmall PoP のデプロイメントアーキテクチャを示す図。これには、 PoP コントローラー、 Redis、および各ノードに分散配置された再生エンジンが含まれます

中規模の設置 - 制作

中規模インストールは実動用です。 このワークロードに対応するには、再生エンジンを水平方向にスケールアップし、 PoP のコントローラー パラメータを調整し、CPUおよびメモリの上限を引き上げる必要があります。 Kubernetes クラスターの物理リソースに、少なくとも 28.4-core のCPUと 21.6 GBのメモリが利用可能な場合、テスト構成を一定に保ったパフォーマンスベンチマークテストに基づき、 API のシンプルテストを3500回、 API のスクリプトテストを250回、ブラウザスクリプトテストを80回、およびISM( SSL / DNS )テストを3500回実行できます。

Instana エージェントを使用してSynthetic PoP を監視するには、 Kubernetes クラスターが以下の最小要件を満たしていることを確認してください:

リソース 要件
ワーカー・ノード 3
CPU 34.4 コア
メモリー 28.5 GB
ディスク・スペース ノードあたり 200 GB

スケーリングされた PoP Controller、 Redis、および複数の再生エンジンレプリカを含む、3つのワーカーノードからなるMedium PoP のデプロイメントアーキテクチャを示す図

大規模な設置 - 制作

大規模なインストールは実動用です。 このワークロードに対応するには、再生エンジンを水平方向にスケールアップし、 PoP のコントローラー パラメータを調整し、CPUおよびメモリの上限を引き上げる必要があります。 Kubernetes クラスタの物理リソースに、少なくとも64コアのCPUと 48.5 GBのメモリが利用可能な場合、テスト構成を一定に保ったパフォーマンスベンチマークテストに基づき、 API のシンプルテストを7000回、 API のスクリプトテストを600回、ブラウザスクリプトテストを200回、ISM( SSL / DNS )テストを7000回実行できます。

Instana エージェントを使用してSynthetic PoP を監視するには、 Kubernetes クラスターが以下の最小要件を満たしていることを確認してください:

リソース 要件
ワーカー・ノード 6
CPU 74.5 コア
メモリー 57.7 GB
ディスク・スペース ノードあたり400 GB

6つのワーカーノードから構成される大規模な PoP のデプロイメントアーキテクチャを示す図。これには、大規模に拡張された PoP コントローラー、 Redis、および各ノードに分散配置された多数の再生エンジンレプリカが含まれる

自動化ツールを使用して PoP のサイズを推定する

Instana PoP のサイズを見積もり、容量計画を立てるのに役立つ自動化ツール「 synctl」 を提供しています。 このツールは、以下の例に示すように使用できます。

synctl get pop-size

synctl get size
 

スケールアップ

増加するワークロードをサポートするには、以下のように PoP コンポーネントをスケールアップします。

  • 水平スケーリング: 異なるプレイバック・エンジンのレプリカ数を増やすために、より簡単な方法が提供されています。
  • 垂直スケーリング: CPU およびメモリーの requests および limits の数を増やします。

水平スケーリング

現在、再生エンジンのみが水平方向のスケーラビリティーをサポートしています。 PoP Controller および Redis は、まだ水平方向のスケーラビリティーをサポートしていません。 PoP ワークロードは主にプレイバック・エンジン・ポッド上にあります。 特定のタイプのテストでより多くのワークロードをサポートするために、 values.yaml ファイルの replicas 数を増やすことができます。

以下の例は、 JavaScript 再生エンジンのレプリカを 2 に増やし、 BrowserScript 再生エンジンのレプリカを 3 に増やすことを示しています。

--set javascript.replicas=2
--set browserscript.replicas=3
 

垂直スケーリング

JavaScript プレイバック・エンジンと BrowserScript プレイバック・エンジンはリソースを大量に消費するため、より多くのテストをサポートするために、 requests および limits の CPU またはメモリーの数を増やすことができます。

たとえば、 JavaScript の再生エンジンでCPUの requestslimits を800 mおよび1000 m( 0.8/1.0 Core)に設定した場合、前述のテスト構成では40個の API スクリプトに対応可能です。

パフォーマンス・チューニング

2000 シンセティック・テスト/分を超えるワークロードをサポートするには、 PoP コントローラーを以下のように調整します。

  • ユーザー資格情報を使用してより多くのテストをサポートするには、 controller.scheduleTestMaxPoolSize パラメーターをより大きな値に調整します。 このパラメーターをサポートするには、シンセティック PoP 1.1.2 以降に アップグレード します。
  • Instana バックエンドに送信される結果の数を増やすには、パラメータ controller.publishAARThreadPoolSize の値を高く設定してください。

パラメータ controller.resources.limits.cpu を500 m、500 Mi、 controller.resources.limits.memory 40、 controller.scheduleTestMaxPoolSizecontroller.publishAARThreadPoolSize 15に設定すると、 PoP コントローラーは、1分あたり9000件の API ユーザー認証による簡易テストに対応できます。