Membuat kumpulan sumber daya untuk SQL Server Pembelajaran Mesin Services
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru
Pelajari cara membuat dan menggunakan kumpulan sumber daya untuk mengelola beban kerja Python dan R di SQL Server Pembelajaran Mesin Services.
Proses ini mencakup beberapa langkah:
- Tinjau status kumpulan sumber daya yang ada. Penting bahwa Anda memahami layanan apa yang menggunakan sumber daya yang ada.
- Mengubah kumpulan sumber daya server.
- Buat kumpulan sumber daya baru untuk proses eksternal.
- Buat fungsi klasifikasi untuk mengidentifikasi permintaan skrip eksternal.
- Verifikasi bahwa kumpulan sumber daya eksternal baru menangkap pekerjaan R atau Python dari klien atau akun yang ditentukan.
Tinjau status kumpulan sumber daya yang ada
Gunakan pernyataan seperti berikut ini untuk memeriksa sumber daya yang ditetapkan ke kumpulan default untuk server.
SELECT * FROM sys.resource_governor_resource_pools WHERE name = 'default'
Hasil sampel
pool_id nama min_cpu_percent max_cpu_percent min_memory_percent max_memory_percent cap_cpu_percent min_iops_per_volume max_iops_per_volume 2 Default 0 100 0 100 100 0 0 Periksa sumber daya yang ditetapkan ke kumpulan sumber daya eksternal default.
SELECT * FROM sys.resource_governor_external_resource_pools WHERE name = 'default'
Hasil sampel
external_pool_id nama max_cpu_percent max_memory_percent max_processes versi 2 Default 100 20 0 2 Di bawah pengaturan default server ini, runtime eksternal mungkin akan memiliki sumber daya yang tidak cukup untuk menyelesaikan sebagian besar tugas. Untuk meningkatkan sumber daya, Anda harus memodifikasi penggunaan sumber daya server sebagai berikut:
Kurangi memori komputer maksimum yang dapat digunakan oleh mesin database.
Tingkatkan memori komputer maksimum yang dapat digunakan oleh proses eksternal.
Mengubah penggunaan sumber daya server
Di Management Studio, jalankan pernyataan berikut untuk membatasi penggunaan memori SQL Server hingga 60% dari nilai dalam pengaturan 'memori server maks'.
ALTER RESOURCE POOL "default" WITH (max_memory_percent = 60);
Jalankan pernyataan berikut untuk membatasi penggunaan memori dengan proses eksternal hingga 40% dari total sumber daya komputer.
ALTER EXTERNAL RESOURCE POOL "default" WITH (max_memory_percent = 40);
Untuk menerapkan perubahan ini, Anda harus mengonfigurasi ulang dan memulai ulang Resource Governor sebagai berikut:
ALTER RESOURCE GOVERNOR RECONFIGURE;
Catatan
Ini hanya pengaturan yang disarankan untuk memulai; Anda harus mengevaluasi tugas pembelajaran mesin Anda mengingat proses server lain untuk menentukan keseimbangan yang benar untuk lingkungan dan beban kerja Anda.
Membuat kumpulan sumber daya eksternal yang ditentukan pengguna
Semua perubahan pada konfigurasi Resource Governor diberlakukan di seluruh server secara keseluruhan. Perubahan memengaruhi beban kerja yang menggunakan kumpulan default untuk server, serta beban kerja yang menggunakan kumpulan eksternal.
Untuk memberikan kontrol yang lebih halus di atas beban kerja mana yang harus diutamakan, Anda dapat membuat kumpulan sumber daya eksternal baru yang ditentukan pengguna. Tentukan fungsi klasifikasi dan tetapkan ke kumpulan sumber daya eksternal. Kata kunci EXTERNAL baru.
Buat kumpulan sumber daya eksternal baru yang ditentukan pengguna. Dalam contoh berikut, kumpulan diberi nama ds_ep.
CREATE EXTERNAL RESOURCE POOL ds_ep WITH (max_memory_percent = 40);
Buat grup beban kerja bernama
ds_wg
untuk digunakan dalam mengelola permintaan sesi. Untuk kueri SQL, Anda akan menggunakan kumpulan default; untuk semua kueri proses eksternal akan menggunakan kumpulands_ep
.CREATE WORKLOAD GROUP ds_wg WITH (importance = medium) USING "default", EXTERNAL "ds_ep";
Permintaan ditetapkan ke grup default setiap kali permintaan tidak dapat diklasifikasikan, atau jika ada kegagalan klasifikasi lainnya.
Untuk informasi selengkapnya, lihat Grup Beban Kerja Resource Governor dan CREATE WORKLOAD GROUP (Transact-SQL).
Membuat fungsi klasifikasi untuk pembelajaran mesin
Fungsi klasifikasi memeriksa tugas masuk. Ini menentukan apakah tugas adalah tugas yang dapat dijalankan menggunakan kumpulan sumber daya saat ini. Tugas yang tidak memenuhi kriteria fungsi klasifikasi ditetapkan kembali ke kumpulan sumber daya default server.
Mulailah dengan menentukan bahwa fungsi pengklasifikasi harus digunakan oleh Resource Governor untuk menentukan kumpulan sumber daya. Anda dapat menetapkan null sebagai tempat penampung untuk fungsi pengklasifikasi.
ALTER RESOURCE GOVERNOR WITH (classifier_function = NULL); ALTER RESOURCE GOVERNOR RECONFIGURE;
Untuk informasi selengkapnya, lihat ALTER RESOURCE GOVERNOR (Transact-SQL).
Dalam fungsi pengklasifikasi untuk setiap kumpulan sumber daya, tentukan jenis pernyataan atau permintaan masuk yang harus ditetapkan ke kumpulan sumber daya.
Misalnya, fungsi berikut mengembalikan nama skema yang ditetapkan ke kumpulan sumber daya eksternal yang ditentukan pengguna jika aplikasi yang mengirim permintaan adalah 'Microsoft R Host', 'RStudio', atau 'Mashup'; jika tidak, ia mengembalikan kumpulan sumber daya default.
USE master GO CREATE FUNCTION is_ds_apps() RETURNS sysname WITH schemabinding AS BEGIN IF program_name() in ('Microsoft R Host', 'RStudio', 'Mashup') RETURN 'ds_wg'; RETURN 'default' END; GO
Ketika fungsi telah dibuat, konfigurasi ulang grup sumber daya untuk menetapkan fungsi pengklasifikasi baru ke grup sumber daya eksternal yang Anda tentukan sebelumnya.
ALTER RESOURCE GOVERNOR WITH (classifier_function = dbo.is_ds_apps); ALTER RESOURCE GOVERNOR RECONFIGURE; GO
Memverifikasi kumpulan sumber daya dan afinitas baru
Periksa konfigurasi memori server dan CPU untuk setiap grup beban kerja. Verifikasi bahwa perubahan sumber daya instans telah dilakukan, dengan meninjau:
- kumpulan default untuk server SQL Server
- kumpulan sumber daya default untuk proses eksternal
- kumpulan yang ditentukan pengguna untuk proses eksternal
Jalankan pernyataan berikut untuk melihat semua grup beban kerja:
SELECT * FROM sys.resource_governor_workload_groups;
Hasil sampel
group_id nama pentingnya request_max_memory_grant_percent request_max_cpu_time_sec request_memory_grant_timeout_sec max_dop group_max_requests pool_id pool_idd external_pool_id 1 internal Medium 25 0 0 0 0 1 2 2 Default Medium 25 0 0 0 0 2 2 256 ds_wg Medium 25 0 0 0 0 2 256 Gunakan tampilan katalog baru, sys.resource_governor_external_resource_pools (Transact-SQL), untuk melihat semua kumpulan sumber daya eksternal.
SELECT * FROM sys.resource_governor_external_resource_pools;
Hasil sampel
external_pool_id nama max_cpu_percent max_memory_percent max_processes versi 2 Default 100 20 0 2 256 ds_ep 100 40 0 1 Untuk informasi selengkapnya, lihat Tampilan Katalog Gubernur Sumber Daya (Transact-SQL).
Jalankan pernyataan berikut untuk mengembalikan informasi tentang sumber daya komputer yang diafinisiskan ke kumpulan sumber daya eksternal, jika berlaku:
SELECT * FROM sys.resource_governor_external_resource_pool_affinity;
Tidak ada informasi yang akan ditampilkan karena kumpulan dibuat dengan afinitas AUTO. Untuk informasi selengkapnya, lihat sys.dm_resource_governor_resource_pool_affinity (Transact-SQL).
Langkah berikutnya
Untuk informasi selengkapnya tentang mengelola sumber daya server, lihat:
Untuk gambaran umum tata kelola sumber daya untuk pembelajaran mesin, lihat: