すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:AverageLatencySchedulingPolicy フィールドリファレンス

最終更新日:Mar 12, 2026

AverageLatencySchedulingPolicy カスタムリソース定義 (CRD) は、Alibaba Cloud Service Mesh (ASM) において、レイテンシーに基づく適応型ロードスケジューリングを構成します。この CRD は、加算増加/乗算減少 (AIMD) アルゴリズムを使用して、観測されたレイテンシーに基づいてリクエストレートをスロットリングし、回復中のスループットを最大化しながら、サービスを過負荷から保護します。

このリファレンスでは、CRD の各フィールドをオブジェクトタイプ別にグループ化して説明します。

AverageLatencySchedulingPolicySpec

ポリシーリソースのトップレベルの仕様です。

フィールドタイプ必須説明
load_scheduling_coreLoadSchedulingCoreはいコアスケジューラの構成です。

LoadSchedulingCore

ロードスケジューリングアルゴリズム構成のコンテナです。

フィールドタイプ必須説明
aimd_load_schedulerAimdLoadSchedulerはいAIMD ベースのロードスケジューラの構成です。

Selector

コントロールポイント、フローラベル、エージェントグループ、およびサービス ID に基づいて、ポリシーが作用するトラフィックフローを決定します。

control_point: ingress
label_matcher:
  match_labels:
    user_tier: gold
  match_expressions:
    - key: query
      operator: In
      values:
        - insert
        - delete
  expression:
    label_matches:
      - label: user_agent
        regex: ^(?!.*Chrome).*Safari
フィールドタイプ必須デフォルト説明
control_pointstringいいえingressポリシーが有効になるサービス内の場所。有効な値:ingressegress、特定のリスナー、または特定のフィルターチェーン。
label_matcherLabelMatcherいいえ--フローラベルに基づいてトラフィックフローを照合します。
servicestringいいえanyターゲットサービスの完全修飾ドメイン名 (FQDN) です。

LabelMatcher

次の 3 つのメソッドのうち 1 つ以上を使用してトラフィックフローを照合します:

  1. ラベルの一致 -- 完全なキーと値の照合。

  2. 式の一致 -- 演算子ベースの照合 (InNotInExistsDoesNotExist)。

  3. 任意の式 -- 正規表現をサポートする論理的な組み合わせ。

複数のメソッドが指定された場合、それらは論理 AND で結合されます。空の LabelMatcher はすべてのリクエストに一致します。

次の例では、ヘルスチェックとメトリクスエンドポイントをスケジューリングから除外します。これらのエンドポイントは実際のユーザートラフィックを表すものではなく、レイテンシー計算を歪める可能性があります:

label_matcher:
  match_list:
    - key: http.target
      operator: NotIn
      values:
        - /health
        - /live
        - /ready
        - /metrics
フィールドタイプ必須説明
expressionExpressionいいえフローラベルで評価される論理式です。
match_labelsmap[string]stringいいえ完全なラベル照合のためのキーと値のペアです。
match_list[]MatchRequirementいいえ演算子ベースの照合要件のリストです。

Expression

構成可能な論理式です。Expression オブジェクトごとに設定できるフィールドは 1 つだけです。

# ラベル "foo" が存在し、かつラベル "app" が "frobnicator" と等しいフローに一致
all:
  of:
    - label_exists: foo
    - label_equals:
        label: app
        value: frobnicator
フィールドタイプ説明
allExpressionListすべてのサブ式が true の場合に true (論理 AND)。
anyExpressionListいずれかのサブ式が true の場合に true (論理 OR)。
label_equalsEqualExpression指定されたラベルが指定された値と等しい場合に true。
label_existsstring指定された名前のラベルが存在する場合に true。
label_matchesMatchesExpression指定されたラベルが指定された正規表現に一致する場合に true。
notExpressionサブ式の結果を否定します。

ExpressionList

フィールドタイプ説明
of[]Expressionサブ式のリストです。

EqualExpression

フィールドタイプ必須説明
labelstringはいラベルキーです。
valuestringいいえ照合するラベル値です。

MatchesExpression

フィールドタイプ必須説明
labelstringはい照合対象のラベルキーです。
regexstringはい正規表現パターン。Go RE2 構文を使用します。

MatchRequirement

Kubernetes ラベルセレクターと同じパターンに従う、演算子ベースのラベル照合です。

フィールドタイプ必須説明
keystringはいラベルキーです。
operatorenumはい照合演算子。有効な値:InNotInExistsDoesNotExist
values[]string条件付き照合対象の文字列値。In および NotIn には必須です。Exists および DoesNotExist では空にする必要があります。

AimdLoadScheduler

AIMD ロードスケジューラは、勾配コントローラーを使用して、観測されたレイテンシー信号が設定値からどれだけ逸脱しているかに基づいてトークンレートを調整します。システムが過負荷状態になると、トークンレートを乗算的に減少させます。回復中は、システムが定常状態に達するまでレートを線形的に増加させます。

フィールドタイプ必須デフォルト制約説明
gradientGradientControllerParametersはい----勾配コントローラーのパラメーター。GradientControllerParameters をご参照ください。
load_multiplier_linear_incrementfloat64いいえ0.025最小値:0システムが過負荷でない間、max_load_multiplier に達するまで、10 秒ごとに負荷乗数に適用される線形増分です。
load_schedulerLoadSchedulerParametersはい----ワークロードスケジューラとセレクターの構成。LoadSchedulerParameters をご参照ください。
max_load_multiplierfloat64いいえ2最小値:0過負荷状態からの回復中の最大負荷乗数。この値に達すると、スケジューラはパススルーモードに入り、リクエストはスケジューラをバイパスして直接サービスに送られます。システムが再び過負荷になると、パススルーモードは無効になります。このフィールドは、回復中にサービスをリクエストのバーストから保護します。

GradientControllerParameters

勾配コントローラーは、観測された信号と設定値の比率に基づいて負荷乗数を調整します。slope フィールドは、この比率に適用される指数であり、コントローラーがどれだけ積極的に応答するかを制御します。

フィールドタイプ必須デフォルト説明
max_gradientfloat64いいえ1勾配値の上限です。
min_gradientfloat64いいえ0.1勾配値の下限です。
slopefloat64いいえ-1信号と設定値の比率に対する指数。応答の方向と積極性を制御します。

slope の仕組み:

動作
1信号が高すぎる --> 制御変数を増加させます。
-1信号が高すぎる --> 制御変数を減少させます。
-0.5信号が高すぎる --> 制御変数を徐々に減少させます。

slope の絶対値は 1 以下にしてください。

LoadSchedulerParameters

重み付き公平キューイング (WFQ) ベースのワークロードスケジューラを構成し、ポリシーが適用されるトラフィックフローを指定します。

フィールドタイプ必須デフォルト説明
schedulerSchedulerいいえ--WFQ ベースのワークロードスケジューラの構成です。
selectors[]Selectorはい--スケジューラが管理するトラフィックフローの範囲を定めるセレクターです。
workload_latency_based_tokensboolいいえfalse履歴レイテンシーに基づいて、フローごとのトークンコストを自動的に推定します。トークンは、過去数秒間の各ワークロードにおけるフローの平均レイテンシーに設定されます。これは、同時実行数 = 平均レイテンシー x 処理中のフロー となる同時実行数制限に役立ちます。フローラベル内の明示的なトークンが最も高い優先順位を持ち、次にワークロード定義内のトークン、そして推定されたトークンが続きます。

Scheduler

フィールドタイプ必須説明
workloads[]SchedulerWorkloadはいWFQ スケジューラのワークロード定義です。

SchedulerWorkload

ワークロード (同じスケジューリングパラメーターを共有するトラフィックフローのグループ) を定義します。

フィールドタイプ必須説明
label_matcherLabelMatcherいいえフローラベルに基づいて、このワークロードにトラフィックフローを照合します。
Namestringはいワークロード名です。
ParametersSchedulerWorkloadParametersはいラベルマッチャーに一致するフローのスケジューリングパラメーターです。

SchedulerWorkloadParameters

ワークロード内のトラフィックフローがどのように優先順位付けされ、キューイングされるかを制御します。

フィールドタイプ必須説明
priorityfloat64いいえ優先度です。
queue_timeoutstringいいえワークロード内のトラフィックフローのタイムアウトです。
tokensfloat64いいえ単一のフローを受け入れるコストです。通常、予想されるレイテンシー (応答までの時間) のミリ秒として定義されるか、リソースがフロー数によって制約される場合 (例:サードパーティのレートリミッター) は 1 に設定されます。この値は、トークンがフローラベルで指定されていない場合にのみ使用されます。