Penskalaan Unit Kapasitas RDS (RCU) untuk instance ApsaraDB RDS for MySQL serverless biasanya selesai dalam hitungan detik. Namun, dalam beberapa kasus, penskalaan RCU dapat memerlukan waktu 3 hingga 5 menit karena peningkatan skala antar-host. Jika Anda memiliki persyaratan ketat terkait stabilitas dalam periode waktu tertentu, Anda dapat mengonfigurasi tugas terjadwal untuk menyesuaikan jumlah RCU pada instance RDS serverless Anda. Topik ini menjelaskan cara mengonfigurasi tugas tersebut.
Skenario
Sistem melakukan penskalaan otomatis pada instance RDS serverless berdasarkan utilisasi CPU dan penggunaan memori. Jika utilisasi CPU atau penggunaan memori berada dalam rentang 60% hingga 80%, peningkatan skala otomatis akan dipicu. Untuk memastikan stabilitas sumber daya CPU atau memori selama periode waktu tertentu, Anda harus menyesuaikan jumlah minimum RCU terlebih dahulu.
Dukungan tersedia untuk peningkatan skala intra-host dan inter-host. Peningkatan skala intra-host dapat diselesaikan dalam hitungan detik, sedangkan peningkatan skala inter-host memerlukan waktu 3 hingga 5 menit. Dalam 99,8% skenario, peningkatan skala intra-host memenuhi kebutuhan bisnis Anda. Jika host tempat instance RDS serverless berada tidak dapat menyediakan sumber daya yang cukup, peningkatan skala inter-host diperlukan. Karena proses ini memerlukan waktu lama, kami menyarankan Anda menetapkan jumlah maksimum dan minimum RCU dengan nilai yang sama untuk periode waktu tertentu guna mencegah dampak dari kegagalan peningkatan skala otomatis.
Solusi
Buat tugas terjadwal untuk memanggil operasi ModifyDBInstanceSpec guna memodifikasi jumlah maksimum dan minimum RCU dalam periode waktu tertentu. Setelah periode berakhir, konfigurasi akan dikembalikan ke nilai semula.
Contoh
Jika Anda ingin meningkatkan jumlah minimum RCU untuk periode waktu tertentu, buat tugas terjadwal untuk meningkatkan jumlah minimum RCU 10 menit sebelum periode dimulai. Ini memberikan waktu bagi peningkatan skala inter-host untuk selesai dan memastikan stabilitas instance selama periode tersebut.
Sebagai contoh, jika Anda ingin memesan 4 hingga 8 RCU selama jam puncak dari pukul 08:00 hingga 09:00, Anda dapat meningkatkan jumlah minimum RCU menjadi 4 pada pukul 07:50 dan mengembalikan konfigurasi ke default 0,5 hingga 8 RCU pada pukul 09:00.
Kode sampel dalam Python
Bagian ini memberikan contoh tentang cara menggunakan APScheduler untuk mengonfigurasi tugas terjadwal. Untuk informasi lebih lanjut, lihat Panduan Pengguna.
Lengkapi langkah-langkah berikut:
Buka CLI dan jalankan perintah berikut untuk menginstal APScheduler:
pip install apschedulerUnduh kode sampel.
Pergi ke halaman Debugging dari ModifyDBInstanceSpec di OpenAPI Explorer.
Di tab Parameters, konfigurasikan parameter berikut.
Di tab SDK Sample Code, pilih Python untuk Bahasa dan klik Download Project untuk mengunduh paket kode sampel.
Ekstrak paket di perangkat lokal Anda dan masuk ke direktori alibabacloud_sample.
Parameter
Deskripsi
Nilai
DBInstanceId
ID instance.
rm-bp1t8v93k6e15****
PayType
Metode penagihan instance.
Serverless
Direction
Tipe perubahan spesifikasi instance.
Serverless
MaxCapacity
Jumlah maksimum RCU.
8.0
MinCapacity
Jumlah minimum RCU.
0.5
AutoPause
Menentukan apakah fitur mulai dan berhenti otomatis untuk instance RDS serverless diaktifkan.
false
SwitchForce
Menentukan apakah fitur penskalaan paksa untuk instance RDS serverless diaktifkan.
true
CatatanKami menyarankan Anda mengunduh proyek sampel SDK V2.0.
Modifikasi kode untuk mengonfigurasi tugas terjadwal.
Tambahkan konten tugas terjadwal APScheduler ke file sample.py dan gunakan pemicu cron untuk mengonfigurasi waktu eksekusi tugas terjadwal. Sebagai contoh, pengaturan
scheduler.add_job(my_scheduled_job, 'cron', hour=8, minute=0)menunjukkan bahwa tugas secara otomatis dijalankan pada pukul 08:00:00 setiap hari. Kode sampel berikut menunjukkan cara menyetel rentang penskalaan RCU menjadi [4, 8] pada pukul 07:50 setiap hari dan mengembalikan rentang penskalaan RCU menjadi [0,5, 8] pada pukul 09:00 setiap hari:
Kode sampel dalam Java
Bagian ini memberikan contoh tentang cara menggunakan Spring Schedule untuk mengonfigurasi tugas terjadwal.
Dalam contoh ini, Anda harus menginstal Java 1.8 atau versi lebih baru.
Lengkapi langkah-langkah berikut:
Unduh paket sampel dan ekstrak paket ke perangkat lokal Anda.
Untuk informasi lebih lanjut tentang paket sampel, lihat demo.zip.
Modifikasi isi
ScheduleTask.javadan konfigurasikan tugas terjadwal sesuai kebutuhan bisnis Anda.Gunakan ekspresi CRON untuk menentukan waktu eksekusi tugas terjadwal. Format ekspresi CRON adalah
cron = "Detik Menit Jam Hari Bulan Minggu". Untuk informasi lebih lanjut, lihat Cron.Sebagai contoh,
@Scheduled(cron = "0 0 8 * * ? ")merepresentasikan pukul 08:00:00 setiap hari. Kode sampel berikut menunjukkan cara menyetel rentang penskalaan RCU menjadi [4, 8] pada pukul 07:50 setiap hari dan mengembalikan rentang penskalaan RCU menjadi [0,5, 8] pada pukul 09:00 setiap hari:Tabel berikut menjelaskan beberapa parameter. Anda dapat mengubah nilai parameter berdasarkan kebutuhan bisnis Anda.
Parameter
Deskripsi
Contoh
RegionId
ID wilayah instance.
cn-hangzhou
DBInstanceId
ID instance.
rm-bp1t8v93k6e15****
PayType
Metode penagihan instance.
Serverless
Direction
Tipe perubahan spesifikasi instance.
Serverless
MaxCapacity
Jumlah maksimum RCU.
8.0
MinCapacity
Jumlah minimum RCU.
0.5
AutoPause
Menentukan apakah fitur mulai dan berhenti otomatis untuk instance RDS serverless diaktifkan.
false
SwitchForce
Menentukan apakah fitur penskalaan paksa untuk instance RDS serverless diaktifkan.
true