Keseimbangan sumber daya (resource balancing) merupakan fondasi penting dalam arsitektur slot modern. Tanpa mekanisme yang efektif, sistem dapat mengalami ketidakadilan alokasi, fragmentasi resource, dan degradasi performa yang signifikan. Artikel ini akan membahas Analisis performa resource balancing dalam slot modern.
Memahami Esensi Resource Balancing pada Slot
Resource balancing dalam konteks slot modern bertujuan untuk mendistribusikan beban kerja secara merata di antara node atau worker yang tersedia. Ketika slot allocation seimbang, alokasi CPU dilakukan sehingga slot kosong di seluruh host yang tersedia menjadi seimbang . Satu host tidak boleh kelebihan beban sementara host lain menganggur.
Pendekatan balanced slot allocation biasanya memilih host dengan jumlah slot kosong tertinggi terlebih dahulu untuk setiap alokasi. Ketika semua slot CPU pada host tersebut teralokasi, sistem beralih ke host berikutnya dengan slot kosong tertinggi . Hasilnya, slot teralokasi secara merata dari semua host.
Dynamic Service dan Slot Usage Requirements
Salah satu inovasi penting dalam resource balancing adalah konsep dynamic service, yang memungkinkan kontrol dinamis terhadap pemetaan layanan ke slot untuk mengoptimalkan penggunaan core, memori, serta I/O . Fitur ini memungkinkan eksekusi efisien dari beban kerja yang terdiri dari tugas multi-threaded, single-threaded, I/O-intensive, dan compute-intensive dalam satu aplikasi atau campuran aplikasi di lingkungan multi-core dan heterogen.
Dalam model ini, setiap workload mengonsumsi slot sesuai dengan slot usage requirement-nya sendiri. Beberapa workload dalam aplikasi yang sama mungkin lebih compute-intensive daripada yang lain, sehingga membutuhkan alokasi resource yang berbeda . Pendekatan ini memastikan bahwa resource dialokasikan secara proporsional dengan kebutuhan aktual, bukan dengan asumsi yang seragam.
Mengatasi Fragmentasi melalui Exclusive Allocation
Fragmentasi resource merupakan tantangan serius dalam sistem berbasis slot. Dalam cluster multi-core, penggunaan host dapat menjadi terfragmentasi seiring waktu ketika tugas single-threaded dialokasikan ke host multi-core . Skenario ini mengakibatkan satu core terpakai sementara core lainnya menganggur, menciptakan banyak slot kosong tetapi tidak ada host yang sepenuhnya bebas.
Untuk mengatasi masalah ini, exclusive host allocation menjadi solusi efektif. Ketika opsi Exclusive diaktifkan, semua slot dari setiap host dalam resource group hanya dialokasikan ke satu konsumen pada satu waktu . Dengan kata lain, jika satu slot pada sebuah host dialokasikan ke satu konsumen, slot yang tersisa di host yang sama tidak akan dialokasikan ke konsumen lain. Pendekatan ini mencegah fragmentasi slot dan memastikan bahwa host dengan multi-core requirement dapat teralokasi secara utuh.
Preemption sebagai Mekanisme Fairness
Dalam lingkungan dengan permintaan resource yang kompetitif, preemption menjadi mekanisme penting untuk menjamin fairness dan mencegah starvation. Ketika sebuah sesi memerlukan banyak slot untuk menjalankan tugasnya dan tidak ada cukup resource idle, sesi tersebut harus menunggu. Dalam cluster yang sibuk, sesi ini dapat mengalami starvation jika sesi lain terus mengokupasi slot .
Melalui session-level preemption, sesi under-allocated yang dikonfigurasi sebagai preemptive dapat mengambil alih workload dari sesi lain, alih-alih menunggu sesi lain melepas slot secara sukarela . Kriteria identifikasi kandidat preemption mengikuti urutan yang terdefinisi, mulai dari memilih semua sesi over-allocated hingga mengurutkan kandidat berdasarkan peringkat preemption. Pendekatan ini menciptakan keseimbangan dinamis di mana resource mengalir ke kebutuhan yang paling mendesak.
Pendekatan Resource-Based Slot Suppliers
Dalam platform seperti Temporal, resource balancing diimplementasikan melalui konsep slot suppliers yang mendefinisikan strategi penyediaan slot untuk worker . Terdapat dua pendekatan utama:
Fixed Size Slot Suppliers menyediakan slot hingga batas yang telah ditentukan. Pendekatan ini berguna jika Anda memiliki gambaran konkret tentang berapa banyak resource yang akan dikonsumsi oleh tugas Anda . Dengan mengevaluasi karakteristik hardware dan environment, Anda dapat menghitung batas maksimum slot tanpa risiko oversubscription atau kehabisan memori.
Resource-Based Slot Suppliers menyesuaikan jumlah slot berdasarkan penggunaan CPU dan memori real-time. Anda menetapkan target utilisasi untuk CPU dan memori, dan slot supplier akan berusaha mencapai nilai tersebut tanpa melewati batas saat beban meningkat . Dalam lingkungan container, semua SDK menggunakan cgroups untuk memperhitungkan CPU dan memori di tingkat container. Pendekatan ini menawarkan adaptivitas yang lebih tinggi terhadap fluktuasi beban kerja.
Slot Admission Control untuk Mencegah Contention
Resource contention dalam sistem pemrosesan query terbukti mahal dan tidak efisien. Hal ini merugikan pengguna yang harus menunggu lebih lama untuk pekerjaan komputasi, sekaligus merugikan penyedia yang harus menyediakan lebih banyak resource untuk menghindari contention .
Pendekatan seperti CASA (Classification-based Adjusted Slot Admission Control) menggunakan prediksi utilisasi CPU dan memori dari query yang masuk, lalu memetakan prediksi tersebut ke jumlah slot yang akan ditempati oleh query . Query dengan konsumsi resource besar akan menempati lebih banyak slot daripada query dengan konsumsi resource kecil. Mekanisme ini memungkinkan throttling otomatis pada admission query, mengurangi contention, dan meningkatkan throughput serta latensi.
Hasil penelitian menunjukkan bahwa CASA meningkatkan throughput hingga 48% dan mengurangi tail latency hingga 50,6% dibandingkan dengan admission control default . Ini membuktikan bahwa resource balancing yang cerdas memiliki dampak signifikan terhadap performa sistem secara keseluruhan.
Kesimpulan
Analisis performa resource balancing dalam slot modern menunjukkan bahwa tidak ada pendekatan tunggal yang optimal untuk semua skenario. Dynamic service memungkinkan fleksibilitas dalam memetakan kebutuhan resource ke slot yang tersedia . Balanced slot allocation memastikan distribusi beban yang merata di seluruh host . Exclusive allocation mengatasi fragmentasi resource . Preemption menjamin fairness dan mencegah starvation . Resource-based slot suppliers memberikan adaptivitas terhadap fluktuasi beban kerja . Dan slot admission control mencegah contention sebelum terjadi .
Kunci keberhasilan terletak pada kombinasi strategi yang tepat sesuai dengan karakteristik beban kerja dan arsitektur sistem. Dengan menerapkan mekanisme balancing yang sesuai, platform slot modern dapat mencapai utilisasi resource yang optimal, latensi yang rendah, dan throughput yang tinggi secara konsisten.

