Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2016 (13.x) a novější verze
Zjistěte, jak můžete vytvořit a použít fond zdrojů pro správu úloh Python a R ve službě SQL Server Machine Learning Services.
Tento proces zahrnuje několik kroků:
- Zkontrolujte stav všech existujících fondů zdrojů. Je důležité pochopit, jaké služby používají existující prostředky.
- Upravte fondy zdrojů serveru.
- Vytvořte nový fond zdrojů pro externí procesy.
- Vytvořte klasifikační funkci pro identifikaci požadavků externích skriptů.
- Ověřte, že nový externí fond zdrojů zachycuje úlohy R nebo Python ze zadaných klientů nebo účtů.
Kontrola stavu existujících fondů zdrojů
Pomocí příkazu, jako je následující, zkontrolujte prostředky přiřazené k výchozímu fondu pro server.
SELECT * FROM sys.resource_governor_resource_pools WHERE name = 'default'Ukázkové výsledky
pool_id name min_cpu_percent max_cpu_percent min_memory_percent max_memory_percent cap_cpu_percent min_iops_per_volume max_iops_per_volume 2 výchozí 0 100 0 100 100 0 0 Zkontrolujte prostředky přiřazené k výchozímu externímu fondu zdrojů.
SELECT * FROM sys.resource_governor_external_resource_pools WHERE name = 'default'Ukázkové výsledky
external_pool_id name max_cpu_percent max_memory_percent max_processes verze 2 výchozí 100 20 0 2 V rámci těchto výchozích nastavení serveru bude externí modul runtime pravděpodobně mít nedostatek prostředků k dokončení většiny úloh. Pokud chcete zlepšit prostředky, musíte upravit využití prostředků serveru následujícím způsobem:
Snižte maximální paměť počítače, kterou může databázový stroj používat.
Zvyšte maximální paměť počítače, kterou může externí proces použít.
Úprava využití prostředků serveru
Spuštěním následujícího příkazu v sadě Management Studio omezte využití paměti SQL Server na 60% hodnoty v nastavení maximální paměti serveru.
ALTER RESOURCE POOL "default" WITH (max_memory_percent = 60);Spuštěním následujícího příkazu omezte využití paměti externími procesy na 40% celkových prostředků počítače.
ALTER EXTERNAL RESOURCE POOL "default" WITH (max_memory_percent = 40);Pokud chcete tyto změny vynutit, musíte překonfigurovat a restartovat Resource Governor následujícím způsobem:
ALTER RESOURCE GOVERNOR RECONFIGURE;Note
Jedná se pouze o navrhovaná nastavení, se kterými můžete začít; Úlohy strojového učení byste měli vyhodnotit s ohledem na jiné procesy serveru, abyste zjistili správnou rovnováhu pro vaše prostředí a úlohy.
Vytvoření uživatelem definovaného fondu externích zdrojů
Všechny změny konfigurace Resource Governor se vynucují na celém serveru. Změny ovlivňují úlohy, které používají výchozí fondy pro server, a také úlohy, které používají externí fondy.
Pokud chcete zajistit jemněji odstupňovanou kontrolu nad tím, které úlohy mají mít přednost, můžete vytvořit nový uživatelsky definovaný externí fond zdrojů. Definujte klasifikační funkci a přiřaďte ji k externímu fondu zdrojů. Klíčové slovo EXTERNAL je nové.
Vytvořte nový uživatelsky definovaný externí fond zdrojů. V následujícím příkladu má fond název ds_ep.
CREATE EXTERNAL RESOURCE POOL ds_ep WITH (max_memory_percent = 40);Vytvořte skupinu úloh s názvem
ds_wg, kterou použijete pro správu požadavků na relace. Pro dotazy SQL použijete výchozí pool; pro všechny dotazy externích procesů použijete poolds_ep.CREATE WORKLOAD GROUP ds_wg WITH (importance = medium) USING "default", EXTERNAL "ds_ep";Žádosti se přiřazují výchozí skupině vždy, když požadavek nejde klasifikovat nebo pokud dojde k jinému selhání klasifikace.
Další informace najdete v tématech skupina úloh Resource Governor a CREATE WORKLOAD GROUP (Transact-SQL).
Vytvoření klasifikační funkce pro strojové učení
Klasifikační funkce zkoumá příchozí úkoly. Určuje, zda je úkol, který lze spustit pomocí aktuálního fondu zdrojů. Úkoly, které nesplňují kritéria klasifikační funkce, se přiřazují zpět k výchozímu fondu zdrojů serveru.
Začněte tím, že určíte, že funkce klasifikátoru by měla být použita Resource Governor k určení fondů zdrojů. Funkci klasifikátoru můžete přiřadit jako zástupný symbol null .
ALTER RESOURCE GOVERNOR WITH (classifier_function = NULL); ALTER RESOURCE GOVERNOR RECONFIGURE;Další informace najdete v tématu ALTER RESOURCE GOVERNOR (Transact-SQL).
Ve funkci klasifikátoru pro každý fond zdrojů definujte typ příkazů nebo příchozích požadavků, které by měly být přiřazeny fondu zdrojů.
Například následující funkce vrátí název schématu přiřazeného uživatelsky definovanému fondu externích prostředků, pokud aplikace, která odeslala požadavek, je „Microsoft R Host“, „RStudio“ nebo „Mashup“; v opačném případě vrátí výchozí fond prostředků.
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; GOPo vytvoření funkce překonfigurujte skupinu prostředků tak, aby přiřadila novou funkci klasifikátoru externí skupině prostředků, kterou jste definovali dříve.
ALTER RESOURCE GOVERNOR WITH (classifier_function = dbo.is_ds_apps); ALTER RESOURCE GOVERNOR RECONFIGURE; GO
Ověřte nové fondy zdrojů a afinitu
Zkontrolujte konfiguraci paměti serveru a procesor pro každou skupinu úloh. Ověřte, zda byly provedeny změny prostředků instance, kontrolou:
- výchozí fond pro server SQL Server
- výchozí fond zdrojů pro externí procesy
- fond definovaný uživatelem pro externí procesy
Spuštěním následujícího příkazu zobrazte všechny skupiny úloh:
SELECT * FROM sys.resource_governor_workload_groups;Ukázkové výsledky
group_id name důležitost 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 interní Středně 25 0 0 0 0 1 2 2 výchozí Středně 25 0 0 0 0 2 2 256 ds_wg Středně 25 0 0 0 0 2 256 Pomocí nového zobrazení katalogu sys.resource_governor_external_resource_pools (Transact-SQL) zobrazte všechny fondy externích zdrojů.
SELECT * FROM sys.resource_governor_external_resource_pools;Ukázkové výsledky
external_pool_id name max_cpu_percent max_memory_percent max_processes verze 2 výchozí 100 20 0 2 256 ds_ep 100 40 0 1 Další informace naleznete v tématu Zobrazení katalogu nástroje Resource Governor (Transact-SQL).
Spuštěním následujícího příkazu zobrazíte informace o počítačových prostředcích, které jsou přiřazeny k externímu fondu zdrojů, pokud je to relevantní:
SELECT * FROM sys.resource_governor_external_resource_pool_affinity;Nebudou zobrazeny žádné informace, protože fondy byly vytvořeny spřažením funkce AUTO. Další informace najdete v tématu sys.dm_resource_governor_resource_pool_affinity (Transact-SQL).
Další kroky
Další informace o správě prostředků serveru najdete tady:
- Správce prostředků
- Dynamické pohledy pro správu související s nástrojem Resource Governor (Transact-SQL)
Přehled zásad správného řízení prostředků pro strojové učení najdete tady: