Controlando cargas de trabalho com o resource governor no SQL Server 2014
1. Controlando Cargas de Trabalho com o Resource Governor
no SQL Server 2014
Marcos Freccia
15/05/2015
May 14 – 15, 2015
2015
Microsoft
MVP Virtual
Conference
2. Quem sou eu?
• DBA na Dell
• SQL Server MVP
• Global Portuguese Virtual Chapter Leader
• MCSE Data Plataform
• @sqlfreccia
• http://marcosfreccia.wordpress.com
• freccia@outlook.com
3. Agenda
3
• O Que é Resource Governor?
• Componentes do Resource Governor
• Prós e contras do Resource Governor
• DEMO
• Q&A
4. O que é o Resource Governor
4
• Gerenciar cargas de trabalho
• Isolar recursos
• Controlador de Recursos do sistema
5. Componentes do Resource Governor
5
Resource Pool
Workload
Workload
Workload
SQL Server 2008
pode ter até 18
Resource Pools
SQL Server 2012 e
2014 podem ter até
64 Resource Pools
6. 6
Componentes do Resource Governor – Classifier Function
6
• Considerações • System Functions
A função deve ter seu codigo executado rapidamente
A Implementação deve ser simples
Funções mal escritas podem levar ao time-out
Conexão DAC pode ser utilizada
HOST_NAME()
APP_NAME()
SUSER_NAME()
SUSER_SNAME()
IS_SRVROLEMEMBER()
IS_MEMBER()
CONNECTIONPROPERTY()
7. Componentes do Resource Governor
7
Você não pode
alterar meus
parametros. Sou
Independente
Eu decido, qual requisição vai
para qual Workload Group
Eu decido o
quanto de
memoria e CPU
você pode obter.
Se você não esta em
nenhum grupo, então
venha para o default!
Essa é a minha
requisição
Com o SQL
Server 2012 você
pode realmente
limitar CPU!
Com o SQL Server
2014 você pode
controlar o
numero de IOPS
9. Resource Governor - Pros
Run-away queries no servidor. Nesse cenário uma consulta que utiliza muitos recursos do servidor pode
comprometer todo o ambiente.
Cargas de trabalho desconhecidas. Aplicações concorrentes podem ser controladas, limitando uma
porção de memoria, CPU e IO.
Prioridades de execução do workload. Com a opção de workload priority conseguimos determinar que
um workload pode ser executado mais rapido que outro, eliminando assim contenção dentro do proprio
Resource Pool
9
10. Resource Governor - Contras
Limitado apenas ao Database Engine, não podendo ser utilizado para Analysis Services, Integration
Services, e Reporting Services.
Somente uma unica instancia pode ser gerenciada pela mesma. Em multiplas instancias, você precisa
ter o Resource Governor configurado em cada uma delas.
Até o SQL Server 2014, só conseguimos controlar CPU, memory e IOPS.
Resource Governor está disponível somente nas versões Enterprise, Developer, e Edição de Avaliação
1
0
11. Q&A
Podemos limitar Jobs de Manutenção?
– Resource Governor não realiza limitação quando não existe consume de recursos. Porem, a função classificadora, pode ser realizada
através do program name.
Podemos limitar backups agendados e backups manuais?
– Se o backup é executado utilizando um usuario, podemos sim utilizá-lo. No SQL Server 2012 podemos utilizer a propriedade
CAP_CPU_PERCENT para limitar o uso de CPU, mesmo que não exista pressão de CPU.
Podemos limitar processos de aplicação, na qual são agendados regularmente? Ex:
Relatórios ou Processos de archiving.
– Se o processo de relatório ou the archiving estão utilizando outro usuario, ou outro program name, então podemos controlar utilizando
RG. É importante lembrar que se nada estiver sendo executado na mesma CPU ou no mesmo volume, o SQL Server deixará a thread
utilizar toda a CPU, memoria e IOPS necessario.
Podemos limitar processos de aplicação que utilizam grupos do AD? E nesse caso apenas
durante o horario de negócio??
– Podemos sim controlar utilizando grupos do AD, porem o RG não possui uma propriedade capaz de controlar durante horarios
especificos.
1
1