自己ホスト型 PoP キャパシティー・プランニングおよびスケーリング

容量の計画

自己ホスト型のシンセティック PoP デプロイメントの容量を計画する方法、および増加するワークロードをサポートするために PoP をスケールアップする方法を知る必要がある場合があります。 PoP のサイズとリソースは、シンセティック・テストの数、テスト実行頻度、テスト・スクリプトの複雑さなど、ワークロードによって異なります。 優れたキャパシティー・プランでは、最も低いコストでパフォーマンスと安定性を向上させることができます。 Instana は、制御された環境における標準の IBM ベンチマークからの測定および予測に基づいて、さまざまな PoP サイズおよびリソース割り振りについて解説しています。 実際のスループットまたはパフォーマンスは、多くの要因によって異なります。 PoP のパフォーマンスを向上させるには、以下の手順に従ってください。

  • ワークロードおよび PoP サイズ見積もりに基づいて、十分なリソース割り振りを計画する。
  • 実稼働環境での Instana エージェントを使用した PoP の正常性状況のモニター。
  • 増加するワークロードをサポートするために、特定のプレイバック・エンジンをオンデマンドでスケールアップします。

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

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

Instana エージェントをインストールして PoP をモニターするか、 PoP をスケールアップしてパフォーマンスを向上させるには、 Kubernetes クラスターで使用可能な物理リソースを増やす必要があります。

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

XSmallのインストール - PoP 機能をテストするため

XSmall のインストールは、テストまたはデモの目的でサポートされています。 デフォルト構成を使用するには、 Kubernetes クラスターの物理リソースに 6 コアの CPU と 4.8 GB のメモリーがある場合、定数テスト構成でのパフォーマンス・ベンチマーク・テストに基づいて、10 個の API シンプル・テスト、5 個の API スクリプト・テスト、1 個のブラウザー・スクリプト・テスト、および 10 個の ISM テストを実行できます。

Instana Agent を使用して SyntheticPoP,を監視するには、ワーカーノードが 1 つあるKubernetesクラスタの物理リソースに、8 コア CPU と7.1GB メモリがあることを確認します。

小規模設備 - 生産

小規模インストールは実動用です。 デフォルト構成を使用するには、 Kubernetes クラスターの物理リソースに 6 コアの CPU と 4.8 GB のメモリーがある場合、定数テスト構成でのパフォーマンス・ベンチマーク・テストに基づいて、2000 個の API シンプル・テスト、20 個の API スクリプト・テスト、5 個のブラウザー・スクリプト・テスト、および 2000 個の ISM テストを実行できます。

Instana Agent を使用して SyntheticPoP,を監視するには、3 つのワーカーノードを持つKubernetesクラスタの物理リソースに 12 コア CPU と11.7GB メモリがあることを確認します。

ミディアムインストール

中規模インストールは実動用です。 このワークロードをサポートするには、プレイバック・エンジンを水平にスケールアップし、 PoP コントローラーの パラメーターを調整し、CPU とメモリーの制限を増やす必要があります。 Kubernetes クラスターの物理リソースに少なくとも 28.4 コア CPU と 21.6 GB のメモリーがある場合は、定数テスト構成でのパフォーマンス・ベンチマーク・テストに基づいて、3500 個の API 単純テスト、250 個の API スクリプト・テスト、80 個のブラウザー・スクリプト・テスト、および 3500 個の ISM テストを実行できます。

Instana Agent を使用して SyntheticPoP,を監視するには、3 つのワーカーノードを持つKubernetesクラスタの物理リソースに34.4コア CPU と28.5GB メモリがあることを確認します。

大型設備 - 生産

大規模なインストールは実動用です。 このワークロードをサポートするには、プレイバック・エンジンを水平にスケールアップし、 PoP コントローラーの パラメーターを調整し、CPU とメモリーの制限を増やす必要があります。 Kubernetes クラスターの物理リソースに少なくとも 64 コア CPU と 48.5 GB メモリーがある場合は、定数テスト構成を使用したパフォーマンス・ベンチマーク・テストに基づいて、7000 個の API シンプル・テスト、600 個の API スクリプト・テスト、200 個のブラウザー・スクリプト・テスト、および 7000 個の ISM テストを実行できます。

Instana Agent を使用して SyntheticPoP,を監視するには、6 つのワーカーノードを持つKubernetesクラスタの物理リソースに74.5コア CPU と57.7GB メモリがあることを確認します。

自動化ツールで 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 の requests および limits が 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 に、 controller.resources.limits.memory を 500 Mi に、 controller.publishAARThreadPoolSize を 40 に、 controller.scheduleTestMaxPoolSize を 15 にチューニングすると、 PoP コントローラーは、1 分当たりのユーザー資格情報を使用して 9000 API 単純テストをサポートできます。