Isolasi grup beban kerja Azure Synapse Analytics

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 serangkaian permintaan dan merupakan dasar untuk bagaimana manajemen beban kerja, termasuk isolasi beban kerja, dikonfigurasi pada sistem. Grup beban kerja dibuat menggunakan sintaksis CREATE WORKLOAD GROUP. Konfigurasi manajemen beban kerja 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, meminta definisi sumber daya, dan mematuhi aturan eksekusi.

Tata kelola sumber daya

Kelompok beban kerja mengatur memori dan sumber daya CPU. Disk dan jaringan IO serta tempdb tidak diatur. Tata kelola sumber daya untuk memori dan CPU adalah sebagai berikut:

Memori diatur pada tingkat permintaan dan diadakan selama durasi permintaan. Lihat Sumber daya per definisi 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 pada tingkat grup beban kerja dan dibagikan oleh semua permintaan dalam grup beban kerja. Sumber daya CPU bersifat fluid dibandingkan dengan memori yang didedikasikan untuk permintaan durasi eksekusi. Mengingat CPU adalah sumber daya fluid, sumber daya CPU yang tidak terpakai dapat dikonsumsi oleh semua grup beban 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 yang sulit seperti memori. Ketika sumber daya CPU berada di dalam ketidaksesuaian, pemanfaatan akan selaras dengan definisi CAP_PERCENTAGE_RESOURCE untuk grup beban kerja.

Isolasi beban kerja

Isolasi beban kerja berarti sumber daya dicadangkan secara eksklusif, untuk grup beban kerja. Isolasi beban kerja dicapai dengan mengonfigurasi parameter MIN_PERCENTAGE_RESOURCE lebih besar dari nol dalam sintaksis CREATE WORKLOAD GROUP. Untuk beban kerja eksekusi berkelanjutan yang harus mematuhi SLA yang ketat, isolasi memastikan sumber daya selalu tersedia untuk grup beban kerja.

Mengonfigurasi isolasi beban kerja secara implisit mendefinisikan tingkat konkurensi terjamin. Misalnya, grup beban kerja dengan MIN_PERCENTAGE_RESOURCE ditetapkan hingga 30% dan REQUEST_MIN_RESOURCE_GRANT_PERCENT ditetapkan menjadi 2% dijamin 15 konkurensi. 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 terjamin:

[Konkurensi Terjamin] = [MIN_PERCENTAGE_RESOURCE] / [REQUEST_MIN_RESOURCE_GRANT_PERCENT]

Catatan

Ada nilai minimum tingkat layanan khusus untuk min_percentage_resource. Untuk informasi selengkapnya, lihat Nilai Efektif untuk detail selengkapnya.

Dengan tidak adanya isolasi beban kerja, permintaan beroperasi di kumpulan bersama sumber daya. Akses ke sumber daya di kumpulan bersama tidak dijamin dan ditetapkan pada basis tingkat 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. Isolasi dengan konfigurasi berlebihan dapat menyebabkan berkurangnya pemanfaatan sistem secara keseluruhan.

Pengguna harus menghindari solusi manajemen beban kerja yang mengonfigurasi isolasi beban kerja 100%: isolasi 100% tercapai ketika jumlah min_percentage_resource yang 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 memungkinkan satu permintaan untuk dieksekusi 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 disediakan sistem.

Catatan

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 tingkat kepentingan beban kerja.

Penampungan beban kerja

Penampungan beban kerja mengacu pada pembatasan jumlah sumber daya yang dapat dikonsumsi oleh kelompok beban kerja. Penahanan beban kerja dicapai dengan mengonfigurasi parameter CAP_PERCENTAGE_RESOURCE menjadi kurang dari 100 dalam sintaksis CREATE WORKLOAD GROUP. Pertimbangkan skenario di mana pengguna memerlukan akses baca ke sistem, sehingga mereka dapat menjalankan analisis bagaimana-jika melalui kueri ad-hoc. Jenis permintaan ini dapat berdampak negatif pada beban kerja lain yang berjalan pada sistem. Mengonfigurasi penampungan memastikan jumlah sumber daya terbatas.

Mengonfigurasi penampungan beban kerja secara implisit menentukan 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]

Catatan

Jumlah efektif CAP_PERCENTAGE_RESOURCE beban kerja tidak akan mencapai 100% ketika grup beban kerja dengan MIN_PERCENTAGE_RESOURCE pada tingkat yang lebih besar dari nol dibuat. Lihat sys.dm_workload_management_workload_groups_stats untuk nilai runtime yang efektif.

Definisi per permintaan sumber daya

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 sintaksis CREATE WORKLOAD GROUP. Sumber daya dalam hal ini adalah memori. Tata kelola sumber daya CPU tercakup dalam bagian tata kelola Sumber Daya.

Catatan

REQUEST_MAX_RESOURCE_GRANT_PERCENT adalah parameter opsional yang secara default ke nilai sama 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 ditetapkan dijamin untuk alokasi permintaan sebelum memulai eksekusi. Untuk pelanggan yang bermigrasi dari kelas sumber daya ke grup beban kerja, pertimbangkan artikel Petunjuk untuk 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 mengizinkan sistem untuk mengalokasikan lebih banyak sumber daya per permintaan. Saat menjadwalkan permintaan, sistem menentukan alokasi sumber daya yang sebenarnya untuk permintaan, yaitu 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 bersama sumber daya saat kueri dijadwalkan.

Catatan

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 Eksekusi

Pada sistem pelaporan ad-hoc, pelanggan dapat secara tidak sengaja menjalankan kueri runaway yang sangat berdampak pada produktivitas lainnya. Admin sistem dipaksa untuk menghabiskan waktu untuk menonaktifkan kueri runaway 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 ini dikonfigurasi dengan mengatur parameter QUERY_EXECUTION_TIMEOUT_SEC dalam sintaks CREATE WORKLOAD GROUP.

Kumpulan bersama sumber daya

Kumpulan bersama sumber daya adalah sumber daya yang tidak dikonfigurasi untuk isolasi. Grup beban kerja dengan MIN_PERCENTAGE_RESOURCE ke nol pemanfaatan sumber daya di kumpulan bersama untuk menjalankan permintaan. Grup beban kerja dengan CAP_PERCENTAGE_RESOURCE greater than 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 di semua grup beban kerja]

Akses ke sumber daya di kumpulan bersama dialokasikan dengan basis tingkat kepentingan. Permintaan dengan tingkat kepentingan yang sama akan mengakses kumpulan bersama sumber daya dengan basis pertama masuk pertama keluar.

Langkah berikutnya