300 likes | 398 Views
Francesco Diaz http://blogs.technet.com/francesco_diaz Partner Technical Consultant - Microsoft. Sql Server 2008 Resource Governor. Agenda. Introduzione I componenti di Sql Server Resource Governor Come funziona Sql Server Resource Governor Monitorare Sql Server Resource Governor
E N D
Francesco Diaz http://blogs.technet.com/francesco_diaz Partner Technical Consultant - Microsoft Sql Server 2008 Resource Governor
Agenda • Introduzione • I componentidiSql Server Resource Governor • Come funzionaSql Server Resource Governor • MonitorareSql Server Resource Governor • UtilizzodiSql Server Resource Governor • DEMO
Introduzione • Cosa è Resource Governor? • Un modo per segmentareicarichidilavorodi SQL Server • Un modo per gestire le risorsediunaistanzaSql Server
Introduzione • Perchèsiamointeressati a Resource Governor ? • Vogliamosceglierequalidevonoessere I carichidilavoro a doverricevereuna “migliorequalità” del servizio • Vogliamomaggioregranularitànellagestionedeicarichidilavoro • Vogliamomonitorareicarichidilavoro del nostro RDBMS • Abbiamo la necessitàdigestire in tempo realeilcaricodilavoro
Introduzione • Quando è utile ? • Quando un singolo server condividepiù workload e applicazioni • Quando I carichidilavorosono in qualchemodouniformi e predicibili • Quandovogliamoridurreilnumerodiistanzedi SQL
Introduzione • Scenaridiesempio • Applicazionichedevonosemprefunzionareanchequandoil server è sotto stress • Limitare le query run-away • Dare precedenzaaiprocessidialcuniutenti/gruppi
I componentidi Resource Governor • Componenti e terminologia • Resource Pools • Workload Groups • Sessioniutente • Funzionediclassificazionedellesessioni
I componentidi Resource Governor • Resource Pools • Un pool puòesseredefinito come un server virtualeall’internodell’istanzadi SQL • Un modo per segmentare le risorsefisichediSql Server (CPU e memoria) • Fino a 18 user defined pools per instanza (+ 2 system pools) • ‘internal’ pool è utilizzatoda SQL Server – richiesto, non modificabile, puòaccedere se necessario a tutte le risorse • ‘default’ pool è ilgruppopredefinito – richiesto, modificabile
I componentidi Resource Governor • Resource Pools • Compostida : • Gestionedellerisorse MIN : iltotaledellerisorseminimeditutti I pools non puòsuperare 100 • Gestionedellerisorse MAX : iltotalepuòancheessere 100, ma ilvalore MAX vienericonfiguratosulla base dei MIN deglialtri pool • Ogni resource group puòavere + workload group, eccettointernal
I componentidi Resource Governor • Workload Group • Rappresentailcontenitore per le sessionisimili, secondo le classificazioniapplicate a ciascunarichiesta • 2 disistema (internal, default) + un numeroillimitato custom • Usato per segmentare I resource pool • Ogni workload group puòesistere solo in un resource pool • Posso fare modifiche “al volo” ma con alcunelimitazioni • Riclassificazioneconnessioniesistenti
Come funziona Resource Governor • Workload Groups disistema • Default • Ognisessioneche non vieneassegnata ad un gruppofinisce qui (catch-all) • Puòesseremodificato • Internal • Operazionidisistemagirano in questogruppo • DAC gira in questogruppo • NON modificabile
I componentidi Resource Governor • Sessioni • Unaconnessioneutente a Sql Server • Verificataognivoltachel’utentesiconnette (anche se il connection pooling è abilitato) • Collegato ad un gruppofinchè la sessioneesiste • Puòesistere in un solo gruppoallavolta
Funzionediclassificazione • Separa le sessioni in gruppi • Unafunzionediclassificazione per istanza • Vienesalvata come UDF scalarenel MASTER • Non accettaparametri • Puòimpattarenegativamentesulleprestazioni del server
Funzionediclassificazione • Vieneeseguitasuogninuovaconnessionedopoi LOGON TRIGGER • Vieneeseguita per ogniconnessioneanche in presenzadi connection pooling • Schemabinding • Salvatanel master • Non è modificabilenècancellabilequandovieneusata come funzionediclassificazione • Restituisce un sysname con il workload group • Non puòrestituireinternal
Funzionediclassificazione • Possonoessereusatefunzioniesistenti • HOST_NAME(), APP_NAME(), SUSER_NAME(), SUSER_SNAME(), IS_SRVROLEMEMBER(), IS_MEMBER() • Nuovefunzioni e nuoveopzioni • CONNECTIONPROPERTY (option) • Opzioni: NET_TRANSPORT, PROTOCOL_TYPE, AUTH_SCHEME, LOCAL_NET_ADDRESS, LOCAL_TCP_PORT, CLIENT_NET_ADDRESS • ORIGINAL_DB_NAME() • Nuoveopzioni per LOGINPROPERTY() • DefaultDatabase, DefaultLanguage
Funzionediclassificazione • Segmentare I workload basandosisu… • Il database didestinazione • SQL\Domain user\Gruppodi AD • Applicazione client • Host • In generaletutte le informazionisullestringhediconnessione + informazionidirete
Funzionediclassificazione CREATE FUNCTION dbo.fnTest() RETURNS SYSNAME WITH SCHEMABINDING AS BEGIN DECLARE @group SYSNAME --FD workload group name is CASE SENSITIVE IF suser_sname() = ‘testuser' SET @group = ‘testgroup‘ ELSE SET @group = ‘default’ RETURN @GROUP END
Come funzionail Resource Governor • Si applicaallerisorsegestitedaSql Server • Le limitazionisullamemoriasiapplicano solo alla RAM assegnata a SQL • 100% della CPU è accessibile (eccetto Processor Affinity) • Percentualidi CPU… • …Sono solo unalineaguida • …Vengonoimplementate solo quando le risorsevengonocontese • Percentualidimemoria… • … Sonoassolute • …vengonoassegnatequandoil pool vienecreato • …vausato con cura
Usare Resource Governor • Possocambiaredinamicamente I carichidilavoro • In risposta a stimoliesterni • Basandomisuuno schedule • Tracciarel’utilizzo del Resource Governor • I workload groups possonoesseremonitorati
Suggerimenti • Test • Verificare con cura le performance della UDF • Monitorareaccuratamente in seguito ad unamodificadella UDF • Debug • Usare le viste e I performance counter disponibili
Autorizzazioni • Autorizzazioni • CONTROL SERVER per la configurazionedi Resource Governor • VIEW SERVER STATE per visualizzare la configurazioneattiva
Limitazioni di Resource Governor • Solo Database Engine • Analysis Services, Reporting Services, etc. non vengonogestiti • Single instance • Ogniistanzavienegestitaindividualmente • Controls per CPU e Memoria • No I/O
Monitorare Resource Governor • Resource Governor – configurazionecorrente e statistiche • sys.dm_resource_governor_configuration • sys.dm_resource_governor_resource_pools • sys.dm_resource_governor_workload_groups • Resource Governor – valorimemorizzati ma non è dettochesianoancorastatiapplicati • sys.resource_governor_configuration • sys.resource_governor_resource_pools • sys.resource_governor_workload_groups
Monitorare Resource Governor • DMV con informazionisu Resource Governor • sys.dm_exec_query_memory_grants • sys.dm_exec_query_resource_semaphores • sys.dm_exec_sessions • sys.dm_exec_requests • sys.dm_exec_cached_plans • sys.dm_os_memory_brokers • sys.dm_os_wait_stats
Monitorare Resource Governor • Resource Governor - eventi • Errori e Warnings - CPU Threshold Exceeded Event • Segnalauna query che ha violato REQUEST_MAX_CPU_TIME_SEC • Sessioni - PreConnect:Starting Event • Segnalal’iniziodell’esecuzionedi un trigger di LOGON o dellafunzionediclassificazione • Sessioni - PreConnect:Completed Event • Segnala la fine dell’esecuzione del LOGON trigger o della UDF • Resource Governor - contatori • SQLServer:Resource Pool Stats • SQLServer:Workload Group Stats
Resource governor : comandiutili • ALTER RESOURCE GOVERNOR RECONFIGURE • Vienefatto in automaticodalla GUI • ALTER RESOURCE GOVERNOR DISABLE • Vengonousatiivaloridi default, la UDF vieneignorata • ALTER RESOURCE GOVERNOR RESET STATISTICS
Resource Governor DEMO
SOMMARIO • I componentidi Resource Governor • Come funziona • Monitoraggio • Utilizzo
Riferimentiutili • Resource Governor sutechnet • http://msdn.microsoft.com/en-us/library/bb933866.aspx • Blog team sviluppo • http://blogs.technet.com/sqlos/archive/2007/12/14/part-1-anatomy-of-sql-server-2008-resource-governor-cpu-demo.aspx • Sql Load Generator suCodeplex • http://sqlloadgenerator.codeplex.com/
Grazie! BLOG : http://blogs.technet.com/francesco_diaz Email : francesco.diaz@microsoft.com