Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan bagaimana grup beban kerja dapat digunakan untuk mengonfigurasi isolasi beban kerja, berisi sumber daya, dan menerapkan aturan runtime untuk eksekusi kueri.
Grup beban kerja
Grup beban kerja adalah kontainer untuk satu rangkaian permintaan dan merupakan dasar tentang cara manajemen beban kerja, termasuk isolasi beban kerja, dikonfigurasi pada sistem. Grup beban kerja dibuat menggunakan sintaks CREATE WORKLOAD GROUP. Konfigurasi manajemen beban kerja yang sederhana dapat mengelola beban data dan kueri pengguna. Misalnya, grup beban kerja bernama wgDataLoads akan menentukan aspek beban kerja untuk data yang dimuat ke dalam sistem. Selain itu, grup beban kerja bernama wgUserQueries akan menentukan aspek beban kerja bagi pengguna yang menjalankan kueri untuk membaca data dari sistem.
Bagian berikut akan menyoroti bagaimana grup beban kerja menyediakan kemampuan untuk menentukan isolasi, penahanan, definisi sumber daya permintaan, dan mematuhi aturan eksekusi.
Tata kelola sumber daya
Grup beban kerja mengatur memori dan sumber daya CPU. IO disk dan jaringan serta tempdb tidak diatur. Tata kelola sumber daya untuk memori dan CPU adalah sebagai berikut:
Memori diatur pada tingkat permintaan dan disimpan selama durasi permintaan. Lihat Definisi sumber daya per permintaan untuk detail lebih lanjut tentang cara mengonfigurasi jumlah memori per permintaan. Parameter MIN_PERCENTAGE_RESOURCE untuk grup beban kerja mendedikasikan memori untuk grup beban kerja tersebut secara eksklusif. Parameter CAP_PERCENTAGE_RESOURCE untuk grup beban kerja adalah batas keras pada memori yang dapat dikonsumsi oleh grup beban kerja.
Sumber daya CPU diatur di tingkat grup beban kerja dan dibagikan oleh semua permintaan dalam grup beban kerja. Sumber daya CPU bersifat fleksibel dibandingkan dengan memori yang didedikasikan untuk permintaan selama durasi eksekusi. CPU adalah sumber daya yang dinamis, sumber daya CPU yang tidak digunakan dapat dimanfaatkan oleh semua kelompok kerja. Ini berarti bahwa pemanfaatan CPU dapat melebihi parameter CAP_PERCENTAGE_RESOURCE untuk grup beban kerja. Ini juga berarti bahwa parameter MIN_PERCENTAGE_RESOURCE untuk grup beban kerja bukanlah reservasi keras seperti memori. Ketika sumber daya CPU dalam kondisi kontensi, penggunaan akan selaras dengan definisi CAP_PERCENTAGE_RESOURCE untuk grup beban kerja.
Isolasi beban kerja
Isolasi beban kerja berarti sumber daya dicadangkan secara eksklusif, untuk kelompok kerja. Isolasi beban kerja dicapai dengan mengonfigurasi parameter MIN_PERCENTAGE_RESOURCE menjadi lebih besar dari nol dalam sintaks CREATE WORKLOAD GROUP. Untuk beban kerja eksekusi berkelanjutan yang perlu mematuhi SLA yang ketat, isolasi memastikan sumber daya selalu tersedia untuk grup beban kerja.
Mengonfigurasi isolasi beban kerja secara implisit mendefinisikan tingkat konkurensi yang dijamin. Misalnya, grup beban kerja dengan MIN_PERCENTAGE_RESOURCE diatur ke 30% dan REQUEST_MIN_RESOURCE_GRANT_PERCENT diatur ke 2% dijamin memiliki 15 tingkat konkuren. Tingkat konkurensi dijamin karena 15-2% slot sumber daya dicadangkan dalam grup beban kerja setiap saat (terlepas dari bagaimana REQUEST_MAX_RESOURCE_GRANT_PERCENT dikonfigurasi). Jika REQUEST_MAX_RESOURCE_GRANT_PERCENT lebih besar dari REQUEST_MIN_RESOURCE_GRANT_PERCENT dan CAP_PERCENTAGE_RESOURCE lebih besar dari MIN_PERCENTAGE_RESOURCE sumber daya tambahan dapat ditambahkan per permintaan (berdasarkan ketersediaan sumber daya). Jika REQUEST_MAX_RESOURCE_GRANT_PERCENT dan REQUEST_MIN_RESOURCE_GRANT_PERCENT sama dan CAP_PERCENTAGE_RESOURCE lebih besar dari MIN_PERCENTAGE_RESOURCE, konkurensi tambahan dimungkinkan. Pertimbangkan metode di bawah ini untuk menentukan konkurensi yang dijamin:
[Konkurensi Terjamin] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]
Nota
Ada nilai minimum tingkat layanan tertentu untuk min_percentage_resource. Untuk informasi selengkapnya, lihat Effective Values untuk detail lebih lanjut.
Dengan tidak adanya isolasi beban kerja, permintaan beroperasi di kumpulan sumber daya bersama . Access ke sumber daya di kumpulan bersama tidak dijamin dan ditetapkan berdasarkan kepentingan.
Mengonfigurasi isolasi beban kerja harus dilakukan dengan hati-hati karena sumber daya dialokasikan ke grup beban kerja meskipun tidak ada permintaan aktif dalam grup beban kerja. Mengonfigurasi isolasi secara berlebihan dapat menyebabkan pemanfaatan sistem keseluruhan yang berkurang.
Pengguna harus menghindari solusi manajemen beban kerja yang mengonfigurasi isolasi beban kerja 100%: isolasi 100% dicapai ketika jumlah min_percentage_resource dikonfigurasi di semua grup beban kerja sama dengan 100%. Jenis konfigurasi ini terlalu ketat dan kaku, meninggalkan sedikit ruang untuk permintaan sumber daya yang secara tidak sengaja salah diklasifikasikan. Ada ketentuan untuk mengizinkan satu permintaan dijalankan dari grup beban kerja yang tidak dikonfigurasi untuk isolasi. Sumber daya yang dialokasikan untuk permintaan ini akan muncul sebagai nol dalam sistem DMV dan meminjam tingkat kecil pemberian sumber daya dari sumber daya yang dicadangkan sistem.
Nota
Untuk memastikan pemanfaatan sumber daya yang optimal, pertimbangkan solusi manajemen beban kerja yang memanfaatkan beberapa isolasi untuk memastikan SLA terpenuhi dan dicampur dengan sumber daya bersama yang diakses berdasarkan kepentingan beban kerja.
Penahanan beban kerja
Penahanan beban kerja mengacu pada pembatasan jumlah sumber daya yang dapat dikonsumsi oleh grup beban kerja. Penahanan beban kerja dicapai dengan mengonfigurasi parameter CAP_PERCENTAGE_RESOURCE menjadi kurang dari 100 dalam sintaks CREATE WORKLOAD GROUP. Pertimbangkan skenario di mana pengguna perlu akses baca ke sistem sehingga mereka dapat menjalankan analisis 'what-if' melalui kueri ad-hoc. Jenis permintaan ini dapat berdampak negatif pada beban kerja lain yang berjalan pada sistem. Mengonfigurasi pengendalian memastikan jumlah sumber daya dibatasi.
Mengonfigurasi pembatasan beban kerja secara implisit akan mendefinisikan tingkat konkurensi maksimum. Dengan CAP_PERCENTAGE_RESOURCE diatur menjadi 60% dan REQUEST_MIN_RESOURCE_GRANT_PERCENT diatur menjadi 1%, tingkat konkurensi hingga 60 diperbolehkan untuk grup beban kerja. Pertimbangkan metode yang disertakan di bawah ini untuk menentukan konkurensi maksimum:
[Konkurensi Maks] = [CAP_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]
Nota
Persentase efektif CAP_RESOURCE dari sebuah grup beban kerja tidak akan mencapai 100% ketika grup beban kerja dengan MIN_RESOURCE pada tingkat yang lebih besar dari nol dibuat. Lihat sys.dm_workload_management_workload_groups_stats untuk nilai runtime yang efektif.
Sumber daya per definisi permintaan
Grup beban kerja menyediakan mekanisme untuk menentukan jumlah sumber daya min dan maks yang dialokasikan per permintaan dengan parameter REQUEST_MIN_RESOURCE_GRANT_PERCENT dan REQUEST_MAX_RESOURCE_GRANT_PERCENT dalam sintaks CREATE WORKLOAD GROUP. Sumber daya dalam hal ini adalah memori. Tata kelola sumber daya CPU tercakup dalam bagian Tata kelola sumber daya .
Nota
REQUEST_MAX_RESOURCE_GRANT_PERCENT adalah parameter opsional yang memiliki nilai default berupa nilai yang sama dengan yang ditentukan untuk REQUEST_MIN_RESOURCE_GRANT_PERCENT.
Seperti memilih kelas sumber daya, mengonfigurasi REQUEST_MIN_RESOURCE_GRANT_PERCENT menetapkan nilai untuk sumber daya yang digunakan oleh permintaan. Jumlah sumber daya yang ditunjukkan oleh nilai yang ditentukan dijamin untuk dialokasikan ke permintaan sebelum memulai eksekusi. Untuk pelanggan yang bermigrasi dari kelas sumber daya ke grup beban kerja, pertimbangkan untuk mengikuti artikel Cara memetakan dari kelas sumber daya ke grup beban kerja sebagai titik awal.
Mengonfigurasi REQUEST_MAX_RESOURCE_GRANT_PERCENT ke nilai yang lebih besar dari REQUEST_MIN_RESOURCE_GRANT_PERCENT memungkinkan sistem untuk mengalokasikan lebih banyak sumber daya per permintaan. Saat menjadwalkan permintaan, sistem menentukan alokasi sumber daya aktual untuk permintaan, yang antara REQUEST_MIN_RESOURCE_GRANT_PERCENT dan REQUEST_MAX_RESOURCE_GRANT_PERCENT, berdasarkan ketersediaan sumber daya di kumpulan bersama dan beban saat ini pada sistem. Sumber daya harus ada di kumpulan sumber daya bersama saat kueri dijadwalkan.
Nota
REQUEST_MIN_RESOURCE_GRANT_PERCENT dan REQUEST_MAX_RESOURCE_GRANT_PERCENT memiliki nilai efektif yang bergantung pada nilai MIN_PERCENTAGE_RESOURCE dan CAP_PERCENTAGE_RESOURCE yang efektif. Lihat sys.dm_workload_management_workload_groups_stats untuk nilai runtime yang efektif.
Aturan Pelaksanaan
Pada sistem pelaporan ad-hoc, pengguna dapat secara tidak sengaja menjalankan kueri berlebih yang sangat berdampak pada produktivitas orang lain. Admin sistem terpaksa menghabiskan waktu menghentikan kueri tak terkendali untuk membebaskan sumber daya sistem. Grup beban kerja menawarkan kemampuan untuk mengonfigurasi aturan batas waktu eksekusi kueri untuk membatalkan kueri yang telah melebihi nilai yang ditentukan. Aturan dikonfigurasi dengan mengatur parameter QUERY_EXECUTION_TIMEOUT_SEC dalam sintaks CREATE WORKLOAD GROUP.
Sumber daya kumpulan bersama
Sumber daya kumpulan bersama adalah sumber daya yang tidak dikonfigurasi untuk isolasi. Kelompok beban kerja dengan MIN_PERCENTAGE_RESOURCE ditetapkan ke nol memanfaatkan sumber daya dalam pool bersama untuk menjalankan permintaan. Grup beban kerja dengan CAP_PERCENTAGE_RESOURCE lebih besar dari MIN_PERCENTAGE_RESOURCE juga menggunakan sumber daya bersama. Jumlah sumber daya yang tersedia di kumpulan bersama dihitung sebagai berikut.
[Kumpulan Bersama] = 100 - [jumlah MIN_PERCENTAGE_RESOURCE untuk semua grup beban kerja]
Access ke sumber daya di kumpulan bersama dialokasikan berdasarkan kepentingan. Permintaan dengan tingkat kepentingan yang sama akan mengakses sumber daya kumpulan bersama berdasarkan masuk pertama/keluar pertama.