Dalam penjadwalan pekerjaan, Anda dapat menerapkan throttling tingkat aplikasi dengan dua strategi: mengaktifkan throttling dan mengatur ukuran antrian yang sesuai, atau mengonfigurasi antrian prioritas preemptive. Strategi-strategi ini membantu menjaga stabilitas sistem penjadwalan dan memastikan eksekusi tepat waktu untuk pekerjaan kritis. Topik ini menjelaskan cara mengelola resource tingkat aplikasi secara efektif serta menjadwalkan pekerjaan berdasarkan prioritas.
Kasus penggunaan
Sistem penjadwalan pekerjaan dapat mengalami tekanan luar biasa selama lonjakan trafik mendadak. Misalnya, jika banyak pekerjaan harian dijadwalkan untuk dimulai pada waktu yang sama, beban konkuren dapat menyebabkan sistem backend crash apabila tidak dikendalikan dengan baik. Untuk mengatasi masalah ini, SchedulerX menyediakan mekanisme antrian yang membatasi jumlah maksimum instans tugas yang dapat berjalan secara konkuren dalam suatu aplikasi. Dengan mengantrikan dan mendispatch pekerjaan secara berurutan, mekanisme ini memastikan stabilitas aplikasi dan penggunaan resource yang efisien.
Konfigurasi
Aktifkan throttling dan atur ukuran antrian
-
Saat membuat atau mengedit kelompok aplikasi, aktifkan sakelar Flow Control di bagian advanced configuration. Sakelar ini dinonaktifkan secara default. Untuk informasi lebih lanjut tentang cara membuat kelompok aplikasi, lihat Create an application group.
Setelah mengaktifkan flow control, Anda dapat mengatur Number of concurrent task instances. Parameter ini menentukan jumlah maksimum instans tugas yang dapat berjalan secara bersamaan untuk aplikasi tersebut. Jika jumlah instans tugas yang diajukan melebihi batas ini, instans berlebih akan diantrikan untuk dieksekusi nanti.
-
Buat tiga pekerjaan dalam kelompok aplikasi tersebut, lalu klik Run once di kolom Actions untuk setiap pekerjaan.
-
Di panel navigasi sebelah kiri, klik Execution List. Pada tab Task instance List, Anda dapat melihat bahwa pekerjaan pertama yang dipicu, hello_jobA, sedang berjalan, sedangkan hello_jobB dan hello_jobC sedang menunggu dalam antrian.
-
Setelah hello_jobA berhasil dijalankan, hello_jobB mulai berjalan.
Konfigurasikan antrian prioritas preemptive
Sistem manajemen resource seperti YARN (Yet Another Resource Negotiator) menggunakan antrian prioritas untuk mengisolasi resource bagi pekerjaan dengan prioritas berbeda.
Prosedur berikut menjelaskan cara SchedulerX menggabungkan throttling tingkat aplikasi dengan prioritas pekerjaan untuk menerapkan antrian prioritas yang mendukung preemption.
-
SchedulerX memungkinkan Anda menetapkan prioritas untuk setiap pekerjaan. Dalam aplikasi yang sama, jika beberapa pekerjaan dijadwalkan pada waktu yang sama, SchedulerX akan menjadwalkan pekerjaan dengan prioritas lebih tinggi terlebih dahulu.
Pada halaman Basic Configuration untuk suatu pekerjaan, pilih priority dari daftar dropdown: low, medium, high, atau very high.
-
Untuk mendemonstrasikan hal ini, aktifkan flow control untuk kelompok aplikasi
dts-all.hxmdan atur Number of concurrent task instances menjadi 1 agar hasilnya lebih jelas. Buat tiga pekerjaan dengan prioritas high, medium, dan low, lalu picu pekerjaan-pekerjaan tersebut sekali dalam urutan berikut: medium, low, dan high. -
Di panel navigasi sebelah kiri, klik Execution List. Pada tab Task instance List, Anda dapat melihat bahwa ketika pekerjaan berprioritas medium dipicu, pekerjaan tersebut langsung berjalan karena antrian eksekusi kosong.
-
Setelah pekerjaan berprioritas medium selesai, slot eksekusi menjadi tersedia. Pekerjaan berprioritas high melakukan preemption terhadap pekerjaan berprioritas low dan berjalan berikutnya.
FAQ
-
Jika saya mengatur prioritas semua pekerjaan saya ke very high, apakah pekerjaan tersebut akan dijadwalkan sebelum pekerjaan dari pengguna lain?
Prioritas pekerjaan adalah pengaturan tingkat aplikasi. Pengaturan ini hanya memengaruhi urutan penjadwalan pekerjaan dalam aplikasi yang sama dan tidak memengaruhi aplikasi lain.
-
Bisakah saya menggunakan throttling berbasis antrian untuk pekerjaan yang berjalan setiap menit?
Fitur ini ideal untuk skenario dengan lonjakan trafik mendadak. Jika Anda memiliki volume pekerjaan tinggi yang dijadwalkan setiap menit, kami tidak merekomendasikan penggunaan fitur ini karena dapat menyebabkan antrian terus bertambah tanpa batas. Dalam kasus seperti itu, pertimbangkan untuk menerapkan throttling tingkat bisnis di sisi client atau meningkatkan resource client Anda.