All Products
Search
Document Center

Function Compute:Penyesuaian skala otomatis untuk mode sesuai permintaan dan mode yang disediakan

Last Updated:Mar 25, 2026

Function Compute menyediakan dua mode penggunaan instans: mode sesuai permintaan (on-demand mode) dan mode yang disediakan (provisioned mode). Anda dapat mengonfigurasi aturan penyesuaian skala otomatis berdasarkan batas jumlah total instans dan kecepatan penskalaan instans. Di mode yang disediakan, Anda dapat menggunakan penskalaan terjadwal dan berbasis metrik untuk mengoptimalkan pemanfaatan instans yang disediakan.

Batas penskalaan instans

Scaling limits for on-demand instances

Saat memproses permintaan pemanggilan fungsi, Function Compute memprioritaskan penggunaan instans yang tersedia. Jika semua instans saat ini berada pada kapasitas penuh, Function Compute membuat instans baru untuk menangani permintaan. Seiring meningkatnya jumlah pemanggilan, Function Compute terus membuat instans baru hingga cukup untuk menangani permintaan atau mencapai batas instans yang dikonfigurasi. Batas berikut berlaku untuk penskalaan instans.

  • Jumlah total instans sesuai permintaan: Satu Akun Alibaba Cloud (akun utama) dibatasi hingga total 100 instans per wilayah secara default. Total ini mencakup instans sesuai permintaan maupun instans yang disediakan. Kuota aktual ditentukan di Quota Center.

  • Kecepatan penskalaan instans yang sedang berjalan dibatasi oleh instans burstable dan laju pertumbuhan instans. Untuk batas di berbagai wilayah, lihat Batas kecepatan penskalaan regional.

    • Instans burstable: Jumlah instans yang dapat segera dibuat. Batas default berkisar antara 100 hingga 300.

    • Laju pertumbuhan instans: Laju penambahan instans baru per menit setelah melewati batas instans burstable. Batas default berkisar antara 100 hingga 300.

Ketika jumlah total instans atau kecepatan penskalaan instans melebihi batas, Function Compute akan mengembalikan error pembatasan kecepatan (throttling error) (HTTP Status adalah 429). Gambar berikut menunjukkan perilaku pembatasan kecepatan oleh Function Compute dalam skenario di mana jumlah pemanggilan meningkat pesat.dg_fc_throttling_behaviors

  • ① Pada gambar: Sebelum mencapai batas instans burstable, Function Compute segera membuat instans. Proses ini melibatkan cold start tetapi tidak menghasilkan error pembatasan kecepatan.

  • ② Pada gambar: Setelah mencapai batas instans burstable, pertumbuhan instans dibatasi oleh laju maksimum, sehingga beberapa permintaan menerima error pembatasan kecepatan.

  • ③ Pada gambar: Setelah jumlah total instans melebihi batas, beberapa permintaan menerima error pembatasan kecepatan.

Secara default, batas penskalaan di atas dibagi oleh semua fungsi di bawah satu Akun Alibaba Cloud dalam wilayah yang sama. Untuk membatasi jumlah instans untuk fungsi tertentu, Anda dapat mengonfigurasi kontrol penskalaan tingkat fungsi untuk instans sesuai permintaan. Setelah dikonfigurasi, jika jumlah total instans yang sedang berjalan untuk fungsi tersebut melebihi batas, Function Compute akan mengembalikan error pembatasan kecepatan.

Scaling limits for provisioned instances

Peningkatan tiba-tiba yang besar dalam jumlah pemanggilan dapat menyebabkan pembatasan kecepatan dan kegagalan permintaan saat membuat banyak instans. Cold start dari instans-instans tersebut juga meningkatkan latensi permintaan. Untuk menghindari masalah ini, Anda dapat menggunakan instans yang disediakan di Function Compute, yang menyiapkan instans fungsi terlebih dahulu. Batas atas jumlah dan kecepatan penskalaan instans yang disediakan bersifat terpisah dan tidak dipengaruhi oleh batas penskalaan yang disebutkan di atas.

  • Jumlah total instans: Secara default, satu Akun Alibaba Cloud (akun utama) dibatasi hingga total 100 instans per wilayah. Total ini mencakup instans sesuai permintaan maupun instans yang disediakan. Untuk batas aktual, lihat Quota Center.

  • Kecepatan penskalaan instans yang disediakan: Defaultnya adalah 100 hingga 300 instans per menit, dan batasnya bervariasi berdasarkan wilayah. Untuk informasi lebih lanjut, lihat Batas kecepatan penskalaan di setiap wilayah. Gambar berikut menunjukkan perilaku pembatasan kecepatan oleh Function Compute dengan instans yang disediakan dalam skenario beban yang sama seperti di atas.dg_fc_ throttling_behaviors_with_provisioned_instances

    • ① Pada gambar: Sebelum instans yang disediakan sepenuhnya dimanfaatkan, permintaan dieksekusi segera. Proses ini tidak melibatkan cold start maupun error pembatasan kecepatan.

    • Pada bagian ② gambar: Setelah instans yang disediakan sepenuhnya dimanfaatkan dan sebelum instans sesuai permintaan mencapai batas instans burstable, Function Compute segera membuat instans. Proses ini melibatkan cold start, tetapi tidak menghasilkan error pembatasan kecepatan.

Batas kecepatan penskalaan regional

Wilayah

Burstable Instances

Laju Pertumbuhan Instance

China (Hangzhou), China (Shanghai), China (Beijing), China (Zhangjiakou), China (Shenzhen)

300

300/menit

Wilayah lainnya

100

100/menit

Catatan
  • Di wilayah yang sama, batas kecepatan penskalaan identik untuk mode yang disediakan maupun mode sesuai permintaan.

  • Secara default, satu Akun Alibaba Cloud (akun utama) dibatasi hingga total 100 instans per wilayah. Kuota aktual ditentukan di Quota Center. Jika Anda perlu menambah kuota ini, ajukan permintaan di Quota Center.

  • Kecepatan penskalaan instans GPU lebih lambat daripada instans CPU. Kami merekomendasikan penggunaan instans GPU dengan mode yang disediakan.

Aturan penyesuaian skala otomatis

Buat aturan penyesuaian skala otomatis

  1. Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Di halaman Services, klik layanan yang diinginkan.

  3. Di halaman Functions, klik fungsi yang ingin Anda ubah.
  4. Di halaman Function Details, klik tab Auto Scaling, lalu klik Create Rule.

  5. Di halaman Create Auto Scaling Rule, konfigurasikan parameter terkait, lalu klik Create.

    • Konfigurasi penskalaan untuk instans sesuai permintaan

      Atur Minimum Number of Instances menjadi 0 dan Maximum Number of Instances menjadi jumlah maksimum instans sesuai permintaan. Jika Anda tidak mengonfigurasi Maximum Number of Instances, batasnya secara default mengacu pada batas instans maksimum akun Anda di wilayah saat ini.

      Catatan

      Idle Mode, Scheduled Setting Modification, dan Metric-based Setting Modification hanya berlaku di mode yang disediakan.

    • Konfigurasi penskalaan untuk instans yang disediakan

      Parameter

      Deskripsi

      Basic Settings

      Version or Alias

      Pilih versi atau alias untuk mana Anda ingin membuat instans yang disediakan.

      Catatan

      Instans yang disediakan hanya dapat dibuat untuk versi LATEST.

      Minimum Number of Instances

      Masukkan jumlah instans yang disediakan. Minimum Number of Instances = Jumlah instans yang disediakan.

      Catatan

      Dengan membatasi jumlah minimum instans tingkat fungsi, Anda dapat memastikan respons cepat terhadap pemanggilan, mengurangi cold start, dan melayani bisnis online yang sensitif terhadap latensi dengan lebih baik.

      Idle mode

      Pilih apakah akan mengaktifkan atau menonaktifkan idle mode. Fitur ini dinonaktifkan secara default. Berikut penjelasan opsi-opsinya:

      • Jika Anda mengaktifkan fitur ini, vCPU dialokasikan ke instans yang disediakan hanya saat instans tersebut memproses permintaan. Di waktu lain, CPU instans dibekukan.

        Ketika idle mode diaktifkan, Function Compute memprioritaskan pengarahan permintaan ke instans yang sama berdasarkan konkurensi instans fungsi hingga instans tersebut mencapai kapasitas penuh. Misalnya, asumsikan sebuah fungsi memiliki konkurensi instans sebesar 50 dan Anda memiliki 10 instans burstable yang menganggur. Jika Function Compute menerima 40 permintaan secara simultan, ke-40 permintaan tersebut diarahkan ke satu instans, yang kemudian bertransisi dari idle menjadi aktif.

      • Jika Anda menonaktifkan fitur ini, instans yang disediakan dialokasikan vCPU terlepas dari apakah instans tersebut sedang memproses permintaan atau tidak.

      Maximum Number of Instances

      Masukkan jumlah maksimum instans. Maximum Number of Instances = Jumlah instans yang disediakan + Jumlah maksimum instans sesuai permintaan.

      Catatan
      • Dengan membatasi jumlah maksimum instans tingkat fungsi, Anda dapat mencegah satu fungsi mendominasi terlalu banyak instans akibat pemanggilan berlebihan. Hal ini melindungi sumber daya backend dan menghindari biaya tak terduga.

      • Jika Anda mengosongkan parameter ini, batasnya secara default mengacu pada batas instans maksimum akun Anda di wilayah saat ini.

      (Opsional) Scheduled Setting Modification: Anda dapat membuat aturan penskalaan terjadwal untuk mengonfigurasi instans yang disediakan secara lebih fleksibel. Aturan ini menetapkan jumlah instans yang disediakan ke nilai tertentu pada waktu yang ditentukan agar lebih selaras dengan kebutuhan konkurensi bisnis Anda. Untuk informasi lebih lanjut tentang cara kerjanya dan contoh konfigurasi, lihat Scheduled scaling.

      Policy Name

      Masukkan nama kebijakan kustom.

      Minimum Number of Instances

      Tetapkan jumlah instans yang disediakan sesuai kebutuhan.

      Schedule expression (UTC)

      Informasi jadwal. Contoh: cron(0 0 20 * * *). Untuk informasi lebih lanjut, lihat Parameter description.

      Effective time (UTC)

      Periode berlakunya aturan penyesuaian skala otomatis terjadwal.

      (Opsional) Metric-based Setting Modification: Menskalakan sumber daya yang disediakan sekali per menit berdasarkan pemanfaatan berbagai metrik instans atau pemanfaatan konkurensi instans yang disediakan. Untuk informasi lebih lanjut tentang cara kerjanya dan contoh konfigurasi, lihat Metric-based scaling.

      Policy Name

      Masukkan nama kebijakan kustom.

      Minimum range of instances

      Tetapkan rentang yang diizinkan (minimum dan maksimum) untuk jumlah instans yang disediakan yang disesuaikan oleh kebijakan ini.

      Utilization type

      Parameter ini hanya berlaku ketika tipe instans fungsi adalah instans GPU. Pilih jenis metrik untuk kebijakan penyesuaian skala otomatis berbasis pemanfaatan. Untuk informasi lebih lanjut tentang kebijakan penyesuaian skala otomatis untuk instans GPU, lihat Auto scaling policies for provisioned GPU mode.

      Concurrency Usage Threshold

      Tetapkan ambang batas pemanfaatan target. Ketika pemanfaatan turun di bawah ambang batas ini, terjadi scale-in. Ketika pemanfaatan melebihi ambang batas ini, terjadi scale-out.

      Effective time (UTC)

      Periode berlakunya aturan penyesuaian skala otomatis berbasis metrik.

Setelah dibuat, Anda dapat melihat konfigurasi instans mode yang disediakan untuk fungsi target di daftar aturan.

Ubah atau hapus aturan penyesuaian skala otomatis

Di halaman Auto Scaling, Anda dapat melihat daftar aturan yang telah dibuat. Temukan aturan target di daftar tersebut, lalu klik Modify atau Delete di kolom Actions.

Catatan

Untuk menghapus instans yang disediakan, atur Minimum Number of Instances menjadi 0.

Metode penyesuaian skala otomatis untuk mode yang disediakan

Untuk menghindari pemanfaatan rendah yang dapat terjadi akibat jumlah instans yang disediakan tetap, Anda dapat menggunakan penskalaan terjadwal dan berbasis metrik.

Scheduled scaling

  • Definisi: Scheduled scaling menetapkan jumlah instans yang disediakan ke nilai tertentu pada waktu terjadwal, yang membantu menyelaraskan kapasitas dengan kebutuhan konkurensi yang dapat diprediksi.

  • Kasus penggunaan: Metode ini cocok untuk fungsi dengan pola siklus yang jelas atau puncak trafik yang dapat diprediksi. Ketika konkurensi pemanggilan fungsi melebihi nilai yang ditetapkan secara terjadwal, beban berlebih ditangani oleh instans mode sesuai permintaan.

  • Contoh konfigurasi: Gambar berikut menunjukkan konfigurasi dengan dua aksi terjadwal. Sebelum trafik pemanggilan fungsi tiba, konfigurasi terjadwal pertama memperluas kapasitas instans yang disediakan ke nilai yang lebih besar. Setelah trafik menurun, konfigurasi terjadwal kedua mengurangi kapasitas instans yang disediakan ke nilai yang lebih kecil.instance

Berikut adalah contoh parameter. Scheduled scaling dikonfigurasi untuk function_1 dari service_1. Konfigurasi ini berlaku dari 2022-11-01 10:00:00 hingga 2022-11-30 10:00:00. Setiap hari pukul 20:00, jumlah instans yang disediakan diperluas menjadi 50, dan pukul 22:00 dikurangi menjadi 10. Informasi berikut dapat digunakan sebagai referensi untuk parameter permintaan saat mengonfigurasi scheduled scaling menggunakan PutProvisionConfig API.

{
  "ServiceName": "service_1",
  "FunctionName": "function_1",
  "Qualifier": "alias_1",
  "ScheduledActions": [
    {
      "Name": "action_1",
      "StartTime": "2022-11-01T10:00:00Z",
      "EndTime": "2022-11-30T10:00:00Z",
      "TargetValue": 50,
      "ScheduleExpression": "cron(0 0 20 * * *)"
    },
    {
      "Name": "action_2",
      "StartTime": "2022-11-01T10:00:00Z",
      "EndTime": "2022-11-30T10:00:00Z",
      "TargetValue": 10,
      "ScheduleExpression": "cron(0 0 22 * * *)"
    }
  ]
}

Parameter-parameter tersebut dijelaskan sebagai berikut.

Parameter

Deskripsi

Name

Nama tugas terjadwal.

StartTime

Waktu mulai berlakunya konfigurasi, dalam format UTC.

EndTime

Waktu berakhirnya konfigurasi, dalam format UTC.

TargetValue

Jumlah target instans yang disediakan.

ScheduleExpression

Informasi jadwal. Dua format didukung:

  • Ekspresi At - "at(yyyy-mm-ddThh:mm:ss)": Menjadwalkan tugas untuk dijalankan hanya sekali. Gunakan format UTC. Misalnya, untuk menjadwalkan tugas dimulai pukul 20:00 tanggal 1 April waktu Beijing (yang setara dengan pukul 12:00 tanggal 1 April UTC), Anda dapat menggunakan at(2021-04-01T12:00:00).

  • Ekspresi cron - "cron(0 0 4 * * *)": Menjadwalkan tugas untuk dijalankan beberapa kali. Gunakan format crontab standar. Ekspresi ini berjalan berdasarkan UTC secara default, yang 8 jam di belakang waktu Beijing. Misalnya, untuk menjadwalkan tugas dijalankan pukul 20:00 setiap hari waktu Beijing (yang setara dengan pukul 12:00 setiap hari UTC), Anda dapat menggunakan cron(0 0 12 * * *).

Bidang ekspresi cron terdiri dari Seconds, Minutes, Hours, Day-of-month, Month, dan Day-of-week. Penjelasannya sebagai berikut.

Tabel 1. Deskripsi bidang

Bidang

Nilai yang diizinkan

Karakter khusus yang diizinkan

Seconds

0-59

Tidak ada

Minutes

0-59

, - * /

Hours

0-23

, - * /

Day-of-month

1-31

, - * ? /

Month

1-12 atau JAN-DEC

, - * /

Day-of-week

1-7 atau MON-SUN

, - * ?

Tabel 2. Deskripsi karakter khusus

Karakter

Definisi

Contoh

*

Menunjukkan apa saja atau setiap.

Di bidang Minutes, * berarti tugas dijalankan setiap menit.

,

Menunjukkan daftar nilai.

Di bidang Day-of-week, MON,WED,FRI berarti Senin, Rabu, dan Jumat.

-

Menunjukkan rentang.

Di bidang Hours, 10-12 berarti waktu dari pukul 10:00 hingga 12:00 UTC.

?

Menunjukkan nilai yang tidak pasti.

Digunakan bersama nilai-nilai yang ditentukan lainnya. Misalnya, jika Anda menentukan tanggal tertentu tetapi tidak peduli hari apa dalam seminggu, Anda dapat menggunakan ? di bidang Day-of-week.

/

Menunjukkan penambahan nilai. n/m berarti penambahan sebesar m dimulai dari n.

Di bidang Minutes, 3/5 berarti tugas dijalankan setiap 5 menit, dimulai dari menit ketiga.

Metric-based scaling

  • Definisi: Menskalakan instans fungsi secara dinamis dalam mode yang disediakan dengan melacak metrik pemantauan.

  • Kasus penggunaan: Sistem Function Compute secara berkala mengumpulkan metrik tentang konkurensi atau pemanfaatan sumber daya instans yang disediakan. Sistem menggunakan metrik ini, bersama dengan nilai pemicu scale-out dan scale-in yang Anda konfigurasi, untuk mengontrol penskalaan instans fungsi dalam mode yang disediakan. Proses ini memastikan bahwa jumlah instans yang disediakan selaras erat dengan penggunaan sumber daya aktual Anda.

  • Cara kerja: Penyesuaian skala otomatis berbasis pelacakan metrik menyesuaikan sumber daya yang disediakan sekali per menit berdasarkan kondisi metrik.

    • Ketika metrik melebihi ambang batas scale-out, kebijakan agresif mulai memperluas jumlah instans yang disediakan, dengan cepat mencapai nilai target.

    • Ketika metrik turun di bawah ambang batas scale-in, kebijakan konservatif mulai mengurangi jumlah instans yang disediakan, secara bertahap mendekati target scale-in.

    Jika Anda telah menetapkan nilai penskalaan maksimum dan minimum di sistem, jumlah instans fungsi yang disediakan akan diskalakan di antara nilai-nilai tersebut. Penskalaan keluar berhenti ketika mencapai nilai maksimum, dan penskalaan masuk berhenti ketika mencapai nilai minimum.

  • Contoh konfigurasi: Gambar berikut menunjukkan contoh penskalaan berdasarkan metrik pemanfaatan instans yang disediakan.

    • Saat trafik meningkat, ambang batas scale-out terpicu, dan instans fungsi yang disediakan mulai memperluas kapasitas. Ketika mencapai nilai maksimum yang dikonfigurasi, penskalaan keluar berhenti, dan permintaan berlebih dialokasikan ke instans fungsi sesuai permintaan.

    • Saat trafik menurun, ambang batas scale-in terpicu, dan instans fungsi yang disediakan mulai mengurangi kapasitas.

    instance

Pemanfaatan konkurensi instans fungsi yang disediakan hanya didasarkan pada konkurensi instans yang disediakan dan tidak mencakup data dari mode sesuai permintaan.

Perhitungan metrik: Rasio jumlah permintaan konkuren yang sedang ditangani oleh instans fungsi yang disediakan terhadap jumlah maksimum permintaan konkuren yang dapat ditangani oleh semua instans fungsi yang disediakan. Nilainya berkisar antara 0 hingga 1.

Untuk pengaturan konkurensi instans yang berbeda, logika perhitungan kapasitas permintaan konkuren maksimum instans yang disediakan adalah sebagai berikut. Untuk informasi lebih lanjut tentang konkurensi instans, lihat Configure instance concurrency.

  • Satu permintaan per instans: Permintaan konkuren maksimum = Jumlah instans yang disediakan

  • Beberapa permintaan per instans: Permintaan konkuren maksimum = Jumlah instans yang disediakan × konkurensi instans

Nilai target scale-out dan scale-in

  • Nilai target ditentukan oleh nilai metrik saat ini, nilai pelacakan metrik, jumlah instans fungsi yang disediakan saat ini, dan koefisien scale-in.

  • Prinsip perhitungan penskalaan: Selama scale-in, koefisien scale-in digunakan untuk mencapai proses scale-in yang relatif konservatif. Koefisien scale-in berkisar antara 0 (tidak termasuk) hingga 1 (termasuk). Koefisien scale-in adalah parameter sistem yang digunakan untuk memperlambat kecepatan scale-in dan mencegahnya terlalu cepat; Anda tidak perlu mengaturnya. Nilai target penskalaan akhir diperoleh dengan pembulatan ke atas hasil perhitungan. Logika perhitungannya sebagai berikut.

    • Target scale-out = Jumlah instans fungsi yang disediakan saat ini × (Nilai metrik saat ini / Nilai pelacakan metrik)

    • Jumlah instans yang dihapus = Jumlah instans fungsi yang disediakan saat ini × Koefisien scale-in × (1 - Nilai metrik saat ini / Nilai pelacakan metrik)

  • Contoh perhitungan target scale-out: Jika nilai metrik saat ini adalah 80%, nilai target metrik adalah 40%, dan jumlah instans fungsi yang disediakan saat ini adalah 100, perhitungannya adalah 100 × (80% / 40%) = 200. Jumlah instans fungsi yang disediakan akan diperluas menjadi 200 untuk memastikan nilai target metrik tetap sekitar 40% setelah penskalaan.

Berikut adalah contoh parameter. Penyesuaian skala otomatis berbasis pelacakan metrik dikonfigurasi untuk function_1 dari service_1. Konfigurasi ini berlaku dari 2022-11-01 10:00:00 hingga 2022-11-30 10:00:00. Konfigurasi ini melacak metrik ProvisionedConcurrencyUtilization dari instans fungsi yang disediakan. Nilai pelacakan pemanfaatan konkurensi adalah 60%. Ketika pemanfaatan melebihi 60%, terjadi peristiwa scale-out dengan kapasitas maksimum 100. Ketika pemanfaatan turun di bawah 60%, terjadi peristiwa scale-in dengan kapasitas minimum 10. Informasi berikut dapat digunakan sebagai referensi untuk parameter permintaan saat mengonfigurasi penskalaan berbasis metrik menggunakan PutProvisionConfig API.

{
  "ServiceName": "service_1",
  "FunctionName": "function_1",
  "Qualifier": "alias_1",
  "TargetTrackingPolicies": [
    {
      "Name": "action_1",
      "StartTime": "2022-11-01T10:00:00Z",
      "EndTime": "2022-11-30T10:00:00Z",
      "MetricType": "ProvisionedConcurrencyUtilization",
      "MetricTarget": 0.6,
      "MinCapacity": 10,
      "MaxCapacity": 100,
    }
  ]
}

Parameter-parameter tersebut dijelaskan sebagai berikut.

Parameter

Deskripsi

Name

Nama tugas berbasis metrik.

StartTime

Waktu mulai berlakunya konfigurasi, dalam format UTC.

EndTime

Waktu berakhirnya konfigurasi, dalam format UTC.

MetricType

Metrik yang dilacak. Nilai valid: ProvisionedConcurrencyUtilization.

MetricTarget

Nilai target untuk metrik.

MinCapacity

Jumlah minimum instans untuk penskalaan.

MaxCapacity

Jumlah maksimum instans untuk penskalaan.

Dokumen terkait

  • Untuk konsep dasar dan metode penagihan mode sesuai permintaan dan mode yang disediakan: Instance types and usage modes.

  • Untuk melihat jumlah instans yang disediakan yang sedang digunakan setelah Anda mengonfigurasi penyesuaian skala otomatis, periksa metrik FunctionProvisionedCurrentInstance: Function-level metrics.