Kumpulan Sumber Daya Resource Governor

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Di SQL Server Resource Governor, kumpulan sumber daya mewakili subset sumber daya fisik instans Mesin Database. Resource Governor memungkinkan Anda menentukan batasan jumlah CPU, IO fisik, dan memori yang dapat digunakan permintaan aplikasi masuk dalam kumpulan sumber daya. Setiap kumpulan sumber daya dapat berisi satu atau beberapa grup beban kerja. Saat sesi dimulai, pengklasifikasi Resource Governor menetapkan sesi ke grup beban kerja tertentu, dan sesi harus berjalan menggunakan sumber daya yang ditetapkan ke grup beban kerja.

Konsep Kumpulan Sumber Daya

Kumpulan sumber daya, atau kumpulan, mewakili sumber daya fisik server. Anda dapat menganggap kumpulan sebagai instans SQL Server virtual di dalam instans SQL Server. Sebuah kumpulan memiliki dua bagian. Satu bagian tidak tumpang tindih dengan kumpulan lain, yang memungkinkan reservasi sumber daya minimum. Bagian lain dibagikan dengan kumpulan lain, yang mendukung konsumsi sumber daya maksimum yang mungkin. Sumber daya kumpulan ditentukan dengan menentukan satu atau beberapa pengaturan berikut untuk setiap sumber daya (CPU, memori, dan IO fisik):

MIN_CPU_PERCENT dan MAX_CPU_PERCENT

Pengaturan ini adalah bandwidth CPU rata-rata minimum dan maksimum yang dijamin untuk semua permintaan di kumpulan sumber daya ketika ada ketidakcocokan CPU. Anda dapat menggunakan pengaturan ini untuk menetapkan penggunaan sumber daya CPU yang dapat diprediksi untuk beberapa beban kerja yang didasarkan pada kebutuhan setiap beban kerja. Misalnya, asumsikan departemen Penjualan dan Pemasaran di perusahaan memiliki database yang sama. Departemen Penjualan memiliki beban kerja intensif CPU dengan kueri berprioritas tinggi. Departemen Pemasaran juga memiliki beban kerja intensif CPU, tetapi memiliki kueri prioritas yang lebih rendah. Dengan membuat kumpulan sumber daya terpisah untuk setiap departemen, Anda dapat menetapkan persentase CPU minimum 70 untuk kumpulan sumber daya Penjualan dan persentase CPU maksimum 30 untuk kumpulan sumber daya Pemasaran. Konfigurasi ini memastikan bahwa beban kerja Penjualan menerima sumber daya CPU yang diperlukannya dan beban kerja Pemasaran diisolasi dari tuntutan CPU beban kerja Penjualan. Persentase CPU maksimum adalah maksimum yang oportunistik. Jika ada kapasitas CPU yang tersedia, utas pekerja menggunakan semuanya, hingga 100 persen. Nilai maksimum hanya berlaku ketika ada pertikaian untuk sumber daya CPU. Dalam contoh ini, jika beban kerja Penjualan dinonaktifkan, beban kerja Pemasaran dapat menggunakan 100 persen CPU jika diperlukan.

CAP_CPU_PERCENT

Pengaturan CAP_CPU_PERCENT adalah batas hard cap pada bandwidth CPU untuk semua permintaan di kumpulan sumber daya. Beban kerja yang terkait dengan kumpulan dapat menggunakan kapasitas CPU di atas nilai MAX_CPU_PERCENT jika tersedia, tetapi tidak di atas nilai CAP_CPU_PERCENT. Berdasarkan contoh di bagian sebelumnya, mari kita asumsikan bahwa departemen Pemasaran ditagih untuk penggunaan sumber daya mereka. Mereka menginginkan penagihan yang dapat diprediksi dan tidak ingin membayar lebih dari 30 persen CPU. Tujuan ini dapat dicapai dengan mengatur CAP_CPU_PERCENT ke 30 untuk kumpulan sumber daya Pemasaran.

MIN_MEMORY_PERCENT dan MAX_MEMORY_PERCENT

Pengaturan ini adalah jumlah memori minimum dan maksimum yang dicadangkan untuk kumpulan sumber daya yang tidak dapat dibagikan dengan kumpulan sumber daya lainnya. Untuk database tanpa tabel yang dioptimalkan memori, memori yang dirujuk adalah eksekusi kueri memberikan memori, bukan memori kumpulan buffer (halaman data dan indeks). Untuk informasi selengkapnya tentang pemberian memori eksekusi kueri, lihat Pertimbangan Pemberian Memori. Mengatur nilai memori minimum untuk kumpulan memastikan bahwa persentase memori yang ditentukan tersedia untuk setiap permintaan yang berjalan di kumpulan sumber daya ini. Pengaturan ini berbeda dari MIN_CPU_PERCENT, karena dalam hal ini memori mungkin tetap berada di kumpulan sumber daya yang diberikan bahkan ketika kumpulan tidak memiliki permintaan apa pun dalam grup beban kerja milik kumpulan ini. Oleh karena itu, berhati-hatilah saat menggunakan pengaturan ini karena memori ini tidak tersedia untuk digunakan oleh kumpulan lain, bahkan ketika tidak ada permintaan aktif. Mengatur nilai memori maksimum untuk kumpulan berarti bahwa ketika permintaan berjalan di kumpulan ini, mereka tidak pernah mendapatkan lebih dari persentase memori keseluruhan ini.

Untuk mengatur memori untuk tabel yang dioptimalkan memori dengan Resource Governor, Anda harus mengikat database ke kumpulan sumber daya terpisah. Untuk informasi selengkapnya, lihat Mengikat Database dengan Tabel yang Dioptimalkan Memori ke Kumpulan Sumber Daya.

AFINITAS

Pengaturan ini memungkinkan Anda mendefinisikan kumpulan sumber daya ke satu atau beberapa penjadwal atau simpul NUMA untuk isolasi sumber daya CPU yang lebih besar. Untuk menggunakan skenario Penjualan dan Pemasaran dari bagian sebelumnya, mari kita asumsikan bahwa departemen Penjualan membutuhkan lingkungan yang lebih terisolasi dan menginginkan 100 persen inti CPU setiap saat. Dengan menggunakan opsi AFFINITY, beban kerja Penjualan dan Pemasaran dapat dijadwalkan pada CPU yang berbeda. Dengan asumsi CAP_CPU_PERCENT pada kumpulan Pemasaran masih diberlakukan, beban kerja Pemasaran terus menggunakan maksimum 30 persen dari satu inti, sementara beban kerja Penjualan menggunakan 100 persen dari inti lainnya. Sejauh menyangkut beban kerja Penjualan dan Pemasaran, beban kerja tersebut berjalan pada dua mesin yang terisolasi.

MIN_IOPS_PER_VOLUME dan MAX_IOPS_PER_VOLUME

Pengaturan ini adalah operasi IO fisik minimum dan maksimum per detik (IOPS) per volume disk untuk kumpulan sumber daya. Anda dapat menggunakan pengaturan ini untuk mengontrol IO fisik yang dikeluarkan untuk utas pengguna untuk kumpulan sumber daya tertentu. Misalnya, departemen Penjualan menghasilkan beberapa laporan akhir bulan dalam batch besar. Kueri dalam batch ini dapat menghasilkan IO yang dapat menjenuhkan volume disk dan memengaruhi performa beban kerja prioritas lain yang lebih tinggi dalam database. Untuk mengisolasi beban kerja ini, MIN_IOPS_PER_VOLUME diatur ke 20 dan MAX_IOPS_PER_VOLUME diatur ke 100 untuk kumpulan sumber daya departemen Penjualan. Pengaturan ini mengontrol tingkat IO yang dapat dikeluarkan untuk beban kerja.

Kumpulan sumber daya yang ditentukan sistem dan pengguna

Resource Governor telah menentukan dua kumpulan sumber daya, kumpulan internal, dan kumpulan default. Anda dapat membuat kumpulan tambahan.

Kumpulan Internal

Kumpulan internal mewakili sumber daya yang digunakan oleh SQL Server itu sendiri. Kumpulan ini selalu hanya berisi grup internal, dan kumpulan tidak dapat dimodifikasi dengan cara apa pun. Konsumsi sumber daya oleh kumpulan internal tidak dibatasi. Beban kerja apa pun di kumpulan dianggap penting untuk fungsi server. Oleh karena itu, Resource Governor memungkinkan kumpulan internal untuk menekan kumpulan lain bahkan jika itu berarti pelanggaran batas yang ditetapkan untuk kumpulan lain.

Catatan

Kumpulan internal dan penggunaan sumber daya grup internal tidak dikurangi dari penggunaan sumber daya secara keseluruhan. Persentase dihitung dari sumber daya keseluruhan yang tersedia.

Kumpulan Default

Kumpulan default adalah kumpulan pengguna pertama yang telah ditentukan sebelumnya. Sebelum konfigurasi apa pun, kumpulan default hanya berisi grup default. Anda tidak dapat membuat atau menghilangkan kumpulan default tetapi Anda dapat mengubahnya. Kumpulan default dapat berisi grup yang ditentukan pengguna selain grup default. Dimulai dengan SQL Server 2016 (13.x) ada kumpulan sumber daya default untuk operasi SQL Server rutin, dan kumpulan sumber daya eksternal default untuk proses eksternal, seperti menjalankan skrip R.

Catatan

Grup default dapat diubah tetapi tidak dapat dipindahkan dari kumpulan default.

Kumpulan Eksternal

Pengguna dapat membuat kumpulan eksternal untuk menentukan sumber daya untuk proses eksternal. Untuk Layanan R, kumpulan ini secara khusus mengatur rterm.exe, , BxlServer.exepython.exe dan proses lain yang diluncurkan oleh mereka. Untuk informasi selengkapnya, lihat MEMBUAT KUMPULAN SUMBER DAYA EKSTERNAL

Kumpulan Sumber Daya yang Ditentukan Pengguna

Kumpulan sumber daya yang ditentukan pengguna adalah kumpulan sumber daya yang Anda buat untuk beban kerja tertentu di lingkungan Anda. Resource Governor menyediakan pernyataan DDL untuk membuat, mengubah, dan menghilangkan kumpulan sumber daya. Untuk informasi selengkapnya, lihat Membuat Kumpulan Sumber Daya, Menghapus Kumpulan Sumber Daya, dan Mengubah Pengaturan Kumpulan Sumber Daya.

Alokasi sumber daya antar kumpulan

Saat mengonfigurasi CPU atau Memori, jumlah nilai MIN di semua kumpulan tidak boleh melebihi 100 persen sumber daya server. Selain itu, saat mengonfigurasi nilai CPU atau Memori, MAX dan CAP dapat diatur di mana saja dalam rentang antara MIN dan 100 persen inklusif.
Jika kumpulan memiliki MIN nonzero yang ditentukan, nilai MAX yang efektif dari kumpulan lain akan dibaca. Minimum nilai MAX yang dikonfigurasi dari kumpulan dan jumlah nilai MIN dari kumpulan lain dikurangi dari 100 persen.

Tabel berikut mengilustrasikan beberapa konsep sebelumnya. Tabel memperlihatkan pengaturan untuk kumpulan internal, kumpulan default, dan dua kumpulan yang ditentukan pengguna.

Nama kumpulan Pengaturan MIN % Pengaturan MAX % MAX % efektif terhitung Berbagi terhitung % Komentar
internal 0 100 100 0 MAX% dan shared% yang efektif tidak berlaku untuk kumpulan internal.
Default 0 100 30 30 Nilai MAX yang efektif dihitung sebagai: min(100.100-(20+50)) = 30. % bersama yang dihitung efektif MAX - MIN = 30.
Kumpulan 1 20 100 50 30 Nilai MAX yang efektif dihitung sebagai: min(100.100-50) = 50. % Bersama yang dihitung efektif MAX - MIN = 30.
Kumpulan 2 50 70 70 20 Nilai MAX yang efektif dihitung sebagai: min(70.100-20) = 70. % Bersama yang dihitung efektif MAX - MIN = 20.

Rumus berikut digunakan untuk menghitung MAX% yang efektif dan % bersama dalam tabel:

  • Min(X,Y) berarti nilai X dan Y yang lebih kecil.

  • Sum(X) berarti jumlah nilai X di semua kumpulan.

  • Total berbagi % = 100 - sum(MIN %).

  • EFEKTIF MAX % = min(X,Y).

  • Bersama % = EFEKTIF MAX % - MIN %.

Dengan menggunakan tabel sebelumnya sebagai contoh, kita dapat mengilustrasikan lebih lanjut penyesuaian yang terjadi ketika kumpulan lain dibuat. Kumpulan ini adalah Pool 3 dan memiliki pengaturan MIN % 5.

Nama kumpulan Pengaturan MIN % Pengaturan MAX % MAX % efektif terhitung Berbagi terhitung % Komentar
internal 0 100 100 0 MAX % dan shared % yang efektif tidak berlaku untuk kumpulan internal.
Default 0 100 25 25 Nilai MAX yang efektif dihitung sebagai: min(100,100-(20+50+5)) = 25. % bersama yang dihitung adalah MAX Efektif - MIN = 25.
Kumpulan 1 20 100 45 25 Nilai MAX yang efektif dihitung sebagai: min(100.100-55) = 45. % Bersama yang dihitung efektif MAX - MIN = 25.
Kumpulan 2 50 70 70 20 Nilai MAX yang efektif dihitung sebagai: min(70.100-25) = 70. Terhitung Bersama % efektif MAX - MIN = 20.
Kumpulan 3 5 100 30 25 Nilai MAX yang efektif dihitung sebagai: min(100.100-70) = 30. % Bersama yang dihitung efektif MAX - MIN = 25.

Bagian bersama dari kumpulan digunakan untuk menunjukkan ke mana sumber daya yang tersedia dapat digunakan jika sumber daya tersedia. Namun, ketika sumber daya dikonsumsi, sumber daya tersebut masuk ke kumpulan yang ditentukan dan tidak dibagikan. Perilaku ini dapat meningkatkan pemanfaatan sumber daya jika tidak ada permintaan di kumpulan tertentu dan sumber daya yang dikonfigurasi ke kumpulan dapat dibebaskan untuk kumpulan lain.

Beberapa kasus ekstrem konfigurasi kumpulan adalah:

  • Semua kumpulan menentukan minimum yang secara total mewakili 100 persen sumber daya server. Dalam hal ini, maksimum efektif sama dengan minimum. Ini setara dengan membagi sumber daya server menjadi potongan yang tidak tumpang tindih terlepas dari sumber daya yang digunakan di dalam kumpulan tertentu.

  • Semua kumpulan memiliki minimum nol. Semua kumpulan bersaing untuk sumber daya yang tersedia dan ukuran akhirnya didasarkan pada konsumsi sumber daya di setiap kumpulan. Faktor lain seperti kebijakan memainkan peran dalam membentuk ukuran kumpulan akhir.

Tugas Kumpulan Sumber Daya

Deskripsi Tugas Artikel
Menjelaskan cara membuat kumpulan sumber daya. Membuat Pusat Sumber Daya
Menjelaskan cara mengubah pengaturan kumpulan sumber daya. Mengubah Pengaturan Pusat Sumber Daya
Menjelaskan cara menghapus kumpulan sumber daya. Menghapus Kumpulan Sumber Daya

Lihat juga