Condividi tramite


Gestore delle risorse

Si applica a:SQL ServerIstanza gestita di SQL di Azure

È possibile usare Resource Governor per gestire il consumo delle risorse del motore di database e applicare criteri per i carichi di lavoro degli utenti. Resource Governor consente di riservare o limitare la quantità di CPU, memoria e I/O fisica che i carichi di lavoro di query utente possono usare. È anche possibile modificare il comportamento di utilizzo delle risorse di ogni query, ad esempio il grado di parallelismo o le dimensioni di una concessione di memoria.

Per esempi di configurazione e monitoraggio e per informazioni sulle procedure consigliate di Resource Governor, vedere Esercitazione: Esempi di configurazione di Resource Governor e procedure consigliate.

Nota

Anche se Azure SQL Database sfrutta il resource governor (tra le altre tecniche) per gestire le risorse, la configurazione da parte dell'utente di pool di risorse e gruppi di carico di lavoro in Azure SQL Database non è supportata.

Azure Synapse Analytics ha un'implementazione diversa di un comportamento di governance delle risorse simile tramite la funzionalità di classificazione del carico di lavoro .

Vantaggi di Resource Governor

Resource Governor consente di gestire i carichi di lavoro e le risorse del motore di database specificando prenotazioni e limiti sul consumo di risorse in base alle richieste. Nel contesto di Resource Governor un carico di lavoro è un set di query (richieste) che possono e devono essere considerate come una singola entità. Ad esempio, tutte le query eseguite da una determinata applicazione potrebbero essere considerate un carico di lavoro. Anche se questo non è un requisito, più uniforme è il modello di utilizzo delle risorse di un carico di lavoro, maggiore è il vantaggio che è probabile che derivi da Resource Governor.

Se nello stesso server sono presenti più carichi di lavoro distinti, Resource Governor consente di allocare risorse in modo diverso a carichi di lavoro diversi, in base ai limiti specificati.

Alcuni degli scenari di utilizzo supportati da Resource Governor sono:

  • Fornire multi-tenancy e isolamento delle risorse in singole istanze di SQL Server che servono più carichi di lavoro client. In pratica, è possibile dividere le risorse disponibili su un server tra i carichi di lavoro e ridurre al minimo i problemi che possono verificarsi quando i carichi di lavoro si contendono le risorse.
  • Offrire prestazioni prevedibili e supportare contratti di servizio per i carichi di lavoro in un ambiente multi-carico di lavoro e multiutente.
  • Isolare e limitare le query incontrollate o limitare le risorse di I/O per operazioni ad alto consumo di I/O che possono saturare il sottosistema di I/O e influire negativamente su altri carichi di lavoro.
  • Aggiungere un monitoraggio dettagliato delle risorse per gli addebiti basati sull'uso delle risorse e fornire una fatturazione prevedibile ai consumatori delle risorse del server.

Limitazioni del Resource Governor

Resource Governor presenta le limitazioni seguenti:

  • La gestione delle risorse è limitata al motore di database di SQL Server. Resource Governor non può essere usato per Analysis Services, Integration Services e Reporting Services.
  • Resource Governor non fornisce il monitoraggio del carico di lavoro o la gestione del carico di lavoro in più istanze di SQL Server.
  • Query molto brevi, ad esempio query in alcuni carichi di lavoro OLTP, potrebbero non usare la CPU abbastanza a lungo per applicare i controlli della larghezza di banda della CPU. Ciò potrebbe inclinare le statistiche di utilizzo della CPU e limitare l'efficacia della governance delle risorse della CPU.
  • La possibilità di gestire le operazioni di I/O fisiche si applica solo alle operazioni utente e non alle attività di sistema. Le attività di sistema eseguono il log delle transazioni, i checkpoint e l'I/O del lazy writer. Resource Governor gestisce le operazioni di I/O fisiche degli utenti, ma non le operazioni di I/O di scrittura eseguite dalle attività di sistema.
  • Non è possibile modificare i controlli di governance delle risorse per il pool di risorse internal e il gruppo di carico di lavoro.
  • Resource Governor funziona a livello di istanza. Resource Governor con un gruppo di disponibilità contenuto non è applicabile.

Concetti relativi alle risorse

I tre concetti seguenti sono fondamentali per comprendere e usare Resource Governor:

  • pool di risorse. Un pool di risorse rappresenta un contenitore per le risorse fisiche del server, ad esempio CPU, memoria e I/O. Sono sempre presenti due pool di risorse predefiniti, internal e default. Resource Governor supporta anche i pool di risorse definiti dall'utente. A seconda della configurazione, le risorse in un pool di risorse possono essere condivise con altri pool o riservati. Per altre informazioni, vedere pool di risorse di Resource Governor.
  • gruppo di carico di lavoro. Un gruppo di carico di lavoro rappresenta un contenitore per le sessioni classificate nello stesso modo. Un gruppo di carico di lavoro consente il monitoraggio aggregato del consumo di risorse di sessione e richiesta e definisce i criteri di richiesta. Ciascun gruppo di carico di lavoro si trova in un pool di risorse. Due gruppi di carico di lavoro predefiniti, internal e default, esistono sempre e vengono mappati rispettivamente ai pool di risorse internal e default. Resource Governor supporta anche i gruppi di carico di lavoro definiti dall'utente. Per ulteriori informazioni, consultare il gruppo di lavoro di Resource Governor .
  • classificazione. Il processo di classificazione assegna sessioni in ingresso a un gruppo di carico di lavoro in base agli attributi della sessione, ad esempio nome account di accesso o nome programma, usando la logica di classificazione personalizzata. Dopo che una sessione è classificata in un gruppo di carico di lavoro, tutte le richieste in esecuzione in tale sessione sono soggette ai criteri di gruppo del carico di lavoro. Per definire la logica di classificazione, scrivere una funzione scalare definita dall'utente, denominata funzione di classificazione. Per ulteriori informazioni, vedere la funzione di classificazione di Resource Governor .

Nota

Resource Governor non impone alcun controllo su una connessione dedicata per amministratori . Le query DAC vengono sempre eseguite nel gruppo di lavoro internal e nel pool di risorse.

La figura seguente illustra i componenti di Resource Governor e la relativa relazione tra loro all'interno del motore di database. Da una prospettiva di elaborazione, il flusso semplificato è il seguente:

  • È presente una connessione in ingresso per una sessione (sessione 1 di n).
  • La sessione è classificata.
  • Usando il risultato della classificazione, la sessione viene assegnata a un gruppo di carico di lavoro, ad esempio Group 4.
  • Il gruppo di lavoro applica le sue politiche a tutte le richieste e utilizza il pool di risorse con cui è associato, ad esempio, Pool 2.
  • Il pool di risorse fornisce e limita le risorse richieste dall'applicazione, ad esempio Application 3.

Diagramma che mostra i componenti di Resource Governor e l'elaborazione delle sessioni in ingresso.

Attività del gestore delle risorse

Descrizione attività Articolo
Visualizzare esempi di configurazione Gli esempi di configurazione del Resource Governor e le migliori pratiche
Abilitare Resource Governor Abilitare il Resource Governor
Disabilitare Resource Governor Disabilitare il Resource Governor
Creare, modificare ed eliminare un pool di risorse pool di risorse di Resource Governor
Creare, modificare, spostare ed eliminare un gruppo di carico di lavoro Gruppo di gestione delle risorse di Resource Governor
Creare e testare una funzione definita dall'utente di un classificatore funzione di classificazione di Resource Governor
Configurare Resource Governor usando un modello Configurare Resource Governor usando un modello
Visualizzare le proprietà di Resource Governor Visualizzare e modificare le proprietà di Resource Governor