ApsaraDB RDS for MySQL versi serverless secara otomatis melakukan skalabilitas vertikal terhadap RDS Capacity Units (RCU) berdasarkan pemanfaatan CPU dan penggunaan memori. Dalam 99,8% kasus, proses skalabilitas vertikal selesai dalam hitungan detik (intra-host). Namun, jika host saat ini tidak dapat menyediakan sumber daya yang cukup, diperlukan skalabilitas vertikal antar-host—proses ini memakan waktu 3 hingga 5 menit dan dapat memengaruhi beban kerja Anda. Untuk mencegah gangguan selama periode sibuk yang telah diketahui, gunakan tugas terjadwal untuk menaikkan nilai minimum RCU sebelum puncak trafik.
Cara kerja
Auto scaling memicu skalabilitas vertikal ketika pemanfaatan CPU atau penggunaan memori mencapai 60%–80%. Terdapat dua jenis skalabilitas vertikal:
| Scale-up Type | Durasi | Dampak koneksi | Frekuensi |
|---|---|---|---|
| Intra-host | Detik | Tidak ada | 99,8% kasus |
| Inter-host | 3–5 menit | Dapat memengaruhi beban kerja Anda | Saat host tidak dapat menyediakan sumber daya yang cukup |
Mengatur MinCapacity dan MaxCapacity ke nilai yang sama akan mengunci instans pada kapasitas tetap selama periode tertentu, sehingga menghilangkan risiko skalabilitas vertikal selama periode tersebut.
Tugas terjadwal memanggil API ModifyDBInstanceSpec untuk menaikkan MinCapacity sebelum periode sibuk dimulai, lalu mengembalikan nilai aslinya setelah periode tersebut berakhir.
Kasus penggunaan
Lindungi periode puncak yang diketahui: Cadangkan rentang RCU tetap selama periode sibuk yang dapat diprediksi (misalnya, pekerjaan batch atau puncak jam kerja) untuk menghilangkan risiko skalabilitas vertikal antar-host.
Contoh skenario
Cadangkan 4–8 RCU selama satu jam puncak dari pukul 08.00 hingga 09.00. Karena skalabilitas vertikal antar-host dapat memakan waktu hingga 5 menit, naikkan nilai minimum 10 menit lebih awal—yaitu pukul 07.50. Kembalikan rentang default (0,5–8 RCU) pada pukul 09.00.
Dua pekerjaan terjadwal tersebut menggunakan parameter berikut:
| Waktu | MinCapacity | MaxCapacity | Efek |
|---|---|---|---|
| 07.50 | 4 | 8 | Menaikkan nilai minimum 10 menit sebelum puncak; memicu skalabilitas vertikal antar-host jika diperlukan |
| 09.00 | 0,5 | 8 | Mengembalikan rentang default setelah periode puncak |
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki RAM user dengan izin untuk memanggil
ModifyDBInstanceSpec. Lihat Buat RAM user dan berikan izinMengatur variabel lingkungan
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRETpada mesin yang akan menjalankan penjadwal. Lihat Konfigurasikan variabel lingkungan
Langkah berikutnya
ModifyDBInstanceSpec referensi API — Daftar parameter lengkap dan skema respons.
Panduan pengguna APScheduler — Konfigurasi penjadwal lanjutan untuk Python.
Dokumentasi penjadwalan Spring — Konfigurasi thread pool dan opsi cron lanjutan untuk Java.