All Products
Search
Document Center

Alibaba Cloud Service Mesh:Referensi bidang AverageLatencySchedulingPolicy

Last Updated:Mar 12, 2026

AverageLatencySchedulingPolicy adalah Custom Resource Definition (CRD) yang mengonfigurasi penjadwalan beban adaptif berbasis latensi di Alibaba Cloud Service Mesh (ASM). CRD ini menggunakan algoritma Additive Increase Multiplicative Decrease (AIMD) untuk mengendalikan laju permintaan berdasarkan latensi yang diamati, melindungi layanan dari kelebihan beban sekaligus memaksimalkan throughput selama pemulihan.

Referensi ini menjelaskan setiap bidang dalam CRD, dikelompokkan berdasarkan jenis objek.

AverageLatencySchedulingPolicySpec

Spesifikasi tingkat atas untuk resource kebijakan.

BidangTipeWajibDeskripsi
load_scheduling_coreLoadSchedulingCoreYaKonfigurasi penjadwal inti.

LoadSchedulingCore

Kontainer untuk konfigurasi algoritma penjadwalan beban.

BidangTipeWajibDeskripsi
aimd_load_schedulerAimdLoadSchedulerYaKonfigurasi penjadwal beban berbasis AIMD.

Selector

Menentukan aliran traffic yang dipengaruhi oleh kebijakan berdasarkan titik kendali, label aliran, kelompok agen, dan identitas layanan.

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
BidangTipeWajibDefaultDeskripsi
control_pointstringTidakingressLokasi dalam layanan tempat kebijakan diterapkan. Nilai yang valid: ingress, egress, listener tertentu, atau rantai filter tertentu.
label_matcherLabelMatcherTidak--Mencocokkan aliran traffic berdasarkan label aliran.
servicestringTidakanyFully Qualified Domain Name (FQDN) layanan target.

LabelMatcher

Mencocokkan aliran traffic menggunakan salah satu atau lebih dari tiga metode berikut:

  1. Match labels — pencocokan nilai kunci secara eksak.

  2. Match expressions — pencocokan berbasis operator (In, NotIn, Exists, DoesNotExist).

  3. Arbitrary expression — kombinasi logis dengan dukungan ekspresi reguler.

Jika beberapa metode ditentukan, semuanya digabungkan dengan logika AND. LabelMatcher kosong akan mencocokkan semua permintaan.

Contoh berikut mengecualikan endpoint pemeriksaan kesehatan dan metrik dari penjadwalan karena tidak merepresentasikan traffic pengguna sesungguhnya dan dapat mengganggu perhitungan latensi:

label_matcher:
  match_list:
    - key: http.target
      operator: NotIn
      values:
        - /health
        - /live
        - /ready
        - /metrics
BidangTipeWajibDeskripsi
expressionExpressionTidakEkspresi logis yang dievaluasi pada label aliran.
match_labelsmap[string]stringTidakPasangan kunci-nilai untuk pencocokan label eksak.
match_list[]MatchRequirementTidakDaftar persyaratan pencocokan berbasis operator.

Expression

Ekspresi logis yang dapat disusun. Hanya satu bidang yang dapat diisi dalam setiap objek Expression.

# Mencocokkan aliran di mana label "foo" ada DAN label "app" bernilai "frobnicator"
all:
  of:
    - label_exists: foo
    - label_equals:
        label: app
        value: frobnicator
BidangTipeDeskripsi
allExpressionListBenar jika semua subekspresi bernilai benar (logika AND).
anyExpressionListBenar jika salah satu subekspresi bernilai benar (logika OR).
label_equalsEqualExpressionBenar jika label yang ditentukan sama dengan nilai yang diberikan.
label_existsstringBenar jika label dengan nama yang diberikan ada.
label_matchesMatchesExpressionBenar jika label yang ditentukan cocok dengan ekspresi reguler yang diberikan.
notExpressionMembalik hasil subekspresi.

ExpressionList

BidangTipeDeskripsi
of[]ExpressionDaftar subekspresi.

EqualExpression

BidangTipeWajibDeskripsi
labelstringYaKunci label.
valuestringTidakNilai label yang dicocokkan.

MatchesExpression

BidangTipeWajibDeskripsi
labelstringYaKunci label yang akan dicocokkan.
regexstringYaPola ekspresi reguler. Menggunakan sintaks Go RE2.

MatchRequirement

Pencocokan label berbasis operator, mengikuti pola yang sama dengan pemilih label Kubernetes.

BidangTipeWajibDeskripsi
keystringYaKunci label.
operatorenumYaOperator pencocokan. Nilai yang valid: In, NotIn, Exists, DoesNotExist.
values[]stringBersyaratNilai string yang dicocokkan. Wajib diisi untuk In dan NotIn. Harus kosong untuk Exists dan DoesNotExist.

AimdLoadScheduler

Penjadwal beban AIMD menggunakan pengendali gradien untuk menyesuaikan laju token berdasarkan penyimpangan sinyal latensi yang diamati dari titik setel. Saat sistem kelebihan beban, laju token dikurangi secara multiplikatif; selama pemulihan, laju tersebut dinaikkan secara linear hingga sistem mencapai kondisi stabil.

BidangTipeWajibDefaultBatasanDeskripsi
gradientGradientControllerParametersYa----Parameter pengendali gradien. Lihat GradientControllerParameters.
load_multiplier_linear_incrementfloat64Tidak0.025Minimum: 0Peningkatan linear yang diterapkan pada pengali beban setiap 10 detik selama sistem tidak kelebihan beban, hingga mencapai max_load_multiplier.
load_schedulerLoadSchedulerParametersYa----Konfigurasi penjadwal beban kerja dan pemilih. Lihat LoadSchedulerParameters.
max_load_multiplierfloat64Tidak2Minimum: 0Pengali beban maksimum selama pemulihan dari kondisi kelebihan beban. Saat nilai ini tercapai, penjadwal masuk ke Mode pass-through — permintaan melewati penjadwal dan langsung menuju layanan. Mode pass-through dinonaktifkan jika sistem kembali mengalami kelebihan beban. Bidang ini melindungi layanan dari lonjakan permintaan selama pemulihan.

GradientControllerParameters

Pengendali gradien menyesuaikan pengali beban berdasarkan rasio antara sinyal yang diamati terhadap titik setel. Bidang slope merupakan eksponen yang diterapkan pada rasio tersebut dan mengatur tingkat agresivitas respons pengendali.

BidangTipeWajibDefaultDeskripsi
max_gradientfloat64Tidak1Batas atas untuk nilai gradien.
min_gradientfloat64Tidak0.1Batas bawah untuk nilai gradien.
slopefloat64Tidak-1Eksponen pada rasio sinyal terhadap titik setel. Mengatur arah dan tingkat agresivitas respons.

Cara kerja slope:

NilaiPerilaku
1Sinyal terlalu tinggi --> tingkatkan variabel kendali.
-1Sinyal terlalu tinggi --> kurangi variabel kendali.
-0.5Sinyal terlalu tinggi --> kurangi variabel kendali secara bertahap.

Pertahankan nilai absolut slope pada atau di bawah 1.

LoadSchedulerParameters

Mengonfigurasi penjadwal beban kerja berbasis Weighted Fair Queuing (WFQ) dan menentukan aliran traffic yang dikenai kebijakan.

BidangTipeWajibDefaultDeskripsi
schedulerSchedulerTidak--Konfigurasi penjadwal beban kerja berbasis WFQ.
selectors[]SelectorYa--Pemilih yang menentukan cakupan aliran traffic yang dikelola oleh penjadwal.
workload_latency_based_tokensboolTidakfalseSecara otomatis memperkirakan biaya token per aliran berdasarkan latensi historis. Token diatur ke latensi rata-rata aliran dalam setiap workload selama beberapa detik terakhir. Berguna untuk pembatasan konkurensi, di mana concurrency = average latency x in-flight flows. Token eksplisit dalam label aliran memiliki prioritas tertinggi, diikuti oleh token dalam definisi workload, lalu token perkiraan.

Scheduler

BidangTipeWajibDeskripsi
workloads[]SchedulerWorkloadYaDefinisi workload untuk penjadwal WFQ.

SchedulerWorkload

Menentukan sebuah workload—kelompok aliran traffic yang berbagi parameter penjadwalan yang sama.

BidangTipeWajibDeskripsi
label_matcherLabelMatcherTidakMencocokkan aliran traffic ke workload ini berdasarkan label aliran.
NamestringYaNama workload.
ParametersSchedulerWorkloadParametersYaParameter penjadwalan untuk aliran yang sesuai dengan pemilih label.

SchedulerWorkloadParameters

Mengatur cara aliran traffic dalam suatu workload diprioritaskan dan diantrekan.

BidangTipeWajibDeskripsi
priorityfloat64TidakPrioritas.
queue_timeoutstringTidakTimeout untuk aliran traffic dalam workload.
tokensfloat64TidakBiaya untuk menerima satu aliran. Biasanya didefinisikan sebagai milidetik dari latensi yang diharapkan (waktu hingga respons), atau diatur ke 1 ketika sumber daya dibatasi oleh jumlah aliran (misalnya, rate limiter pihak ketiga). Nilai ini hanya digunakan jika token tidak ditentukan dalam label aliran.