![[8.5.5.4 以降]](../ng_v8554.gif)
ワークロードを管理するためのスケーリング・ポリシーの定義
スケーリング・ポリシーは、構成可能メトリックに基づいて動的クラスター・メンバーを開始および停止するために使用されます。 全クラスターまたは特定クラスターのスケーリング・ポリシーを定義できます。 ポリシーが定義されていない場合、組み込みポリシーが使用されます。
このタスクについて
- 最小 2 つのクラスター・メンバー (使用可能な場合) をアクティブな状態に保つ。 一部またはすべてのメンバーがメトリックしきい値を超えていると、最小数が満たされない場合があります。
- アクティブな全メンバーの CPU、ヒープ、またはメモリーの平均使用量が 90% を上回ると、 追加のクラスター・メンバーを 1 つ開始する。
- CPU およびヒープの平均使用量が 30 % を下回ると、 クラスター・メンバーを 1 つ停止する。
デフォルト・スケーリング・ポリシーを使用して、全クラスターのスケーリング・ポリシーを定義できます。 デフォルト・スケーリング・ポリシーは、最小と最大のインスタンス値を含め、組み込みスケーリング・ポリシーのメトリックを継承します。 ユーザーが指定してデフォルト・スケーリング・ポリシーに加えられた変更は、組み込み値をオーバーライドします。 デフォルト・スケーリング・ポリシーで指定されていない値は、組み込みスケーリング・ポリシーから継承されます。
デフォルト・スケーリング・ポリシーとは異なり、スケーリング・ポリシーのメトリックは、組み込みスケーリング・ポリシーおよび デフォルト・スケーリング・ポリシーのどちらからも継承されません。 ただし、最小と最大のインスタンス値は、組み込みポリシーの値に初期化されます。 スケーリング・ポリシーのメトリックはオプション値と見なされるため、ポリシーに指定されているメトリックのみがスケーリングの決定に含まれるようになります。 スケーリング・ポリシーに含まれていないメトリックは、スケーリングの決定時には分析されません。
- デフォルト・スケーリング・ポリシー
1 つのデフォルト・スケーリング・ポリシーを定義して、 もっと細かいスケーリング・ポリシーの定義を必要としないすべてのクラスターを管理できます。.
以下の例は、 アクティブなクラスター・メンバーの最小数を 3 に設定する、デフォルト・スケーリング・ポリシーの定義方法を示します。<scalingDefinitions> <defaultScalingPolicy min="3"/> </scalingDefinitions>
- スケーリング・ポリシー
スケーリング・ポリシーを定義することで、 スケーリング・ポリシーで指定された目標基準を使用して 1 つ以上のクラスターを管理できます。 スケーリング・ポリシーの定義は、メトリックしきい値を継承しないため、 指定されたメトリックしきい値のみがモニターされます。 スケーリングの決定に関して、そのほかのすべてのしきい値は無視されます。 最小と最大のインスタンスに関する組み込みスケーリング・ポリシーの値は、 指定されていなければ引き続き考慮されます。
以下の例で定義しているスケーリング・ポリシーでは、 cluster1 という名前のクラスターにあるサーバーを開始または停止する基準となる CPU 使用量のしきい値を変更しています。<scalingDefinitions> <scalingPolicy id="cluster1Policy"> <bind clusters="cluster1"/> <metric name="CPU" min="10" max="70"/> </scalingPolicy> </scalingDefinitions>
bind エレメントの clusters 属性の値は、 クラスター名のコンマ区切りリストです。アスタリスクは名前の末尾にのみワイルドカードとして使用でき、 ゼロ個以上の文字との一致を表します。以下に例を示します。
この例では、 スケーリング・ポリシーは、west という名前のクラスターと、 south で始まる名前のすべてのクラスターに適用されます。1 つのクラスター名が複数のポリシーに一致する場合、 スケーリング・コントローラーは、以下のルールを使用してポリシーを選択します。<bind clusters="west,south*"/>
- ワイルドカードによる一致よりも、完全な一致の方が優先する。
- ワイルドカードによる一致が複数ある場合、最長の接頭部が指定されているポリシーが使用される。
ポリシーはデフォルトの最小値および最大値に基づいてスケーリングします。 上記の例で、クラスターは、指定された CPU 値の min=10 および max=70 のみに基づいてスケーリングします。
メトリック・ベースのスケーリングの決定はクラスター・レベルで行われます。 各クラスター・メンバーは、独自のメトリックをモニターします。 サーバーの CPU およびメモリーのメトリック値は実際には、サーバー JVM プロセス、またはサーバーのホストの大きいほうです。 ヒープのメトリック値は、サーバー JVM プロセスからのみ取得されます。 モニター対象メトリックで測定可能な変化が検出されると、そのメトリックは、分析のためにコントローラーに送られます。 すべてのクラスター・メンバーのメトリックが集計され、クラスターの平均が各メトリックごとに計算されます。 次に、各メトリックの計算値を定義済みの上限しきい値または下限しきい値、あるいはその両方と比較し、スケーリングの決定が起動されるか判断します。
拡張の決定は、個々のメトリック・ベースで行われます。 該当クラスターのすべてのモニター対象メトリックを分析し、いずれかのメトリックがポリシーの最大しきい値を超えた場合、拡張イベントが起動されます。 縮小の決定は、すべてのモニター対象メトリックに基づいて行われます。 各モニター対象メトリックのクラスター平均を分析します。 すべてのメトリックがポリシーの最小しきい値を下回っている場合は、縮小イベントが起動されます。
スケーリングが決定されると、スケーリング・ターゲットが選択されます。 スケーリング・ターゲットは、サーバー停止アクション (縮小の場合) またはサーバー開始アクション (拡張の場合) を実行するホストです。 拡張アクションのターゲットを決定する際には、ホスト・レベルのメトリックが考慮されます。 ホスト・レベルのメトリックのいずれかが、そのメトリックのポリシー最大しきい値を超えていると、 そのホストは回避され、別のホストが拡張アクションに選択されます。
手順
タスクの結果
これで、スケーリング・ポリシーが定義されました。