teched 2010: escalando aplicações oltp:design de aplicação e considerações para hardware

40
Fabricio Catae Premier Field Engineer Microsoft Escalando aplicações OLTP:Design de aplicação e considerações para hardware CÓDIGO DA SESSÃO: DBP203 Luciano Caixeta Moreira Consultor/Instrutor SQL Server Sr. Nimbus

Upload: fabricio-catae

Post on 21-Feb-2017

80 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

Fabricio CataePremier Field EngineerMicrosoft

Escalando aplicações OLTP:Design de aplicação e considerações para hardware

CÓDIGO DA SESSÃO: DBP203

Luciano Caixeta MoreiraConsultor/Instrutor SQL ServerSr. Nimbus

Page 2: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

4

AgendaVários aspectos juntos....

HardwarePlanejamento de capacidadeCPU, Memória, Disco, Rede

Software - SQL ServerInstâncias e bancos de dadosÍndices e bloqueiosManutenção e Resource GovernorPlanos de execução e plan cacheParalelismo

Software – AplicaçõesConnection pool, round-trips e sp_executesql.

Page 3: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

ProcessadorMemóriaRedeSubsistema de Disco

Hardware

Page 4: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

6

HardwarePlanejamento de capacidade

Decisão sobre o Hardware

MétricasTransações por segundoConsultas por minutoCaracterísticas das transações

RecursosProcessadorMemóriaDiscos

Virtualização x Consolidação

Page 5: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

7

HardwareQual o significado do Hardware?

Page 6: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

8

HardwareProcessador

Aumento na capacidade de processamentoDual-coreQuad-coreMulti-core...

Domínio da plataforma 64-Bitsx64Itanium

Benefícios do 64-Bits

Paralelismo de rotinas

Page 7: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

9

HardwareMemória

Simples: Quanto mais memória melhor.

Memória Livre = memória que pode ser usada

Memória Disponível = memória que pode ser facilmente convertida em memória livre

Eficiência na utilização da memória

Page 8: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

10

HardwareRede (Network)

Interface Padrão 1GBit limitada a 60-80 MB/seg

BenchmarkSistemas altamente transacionais = 10-20MB/s

Possíveis GargalosRotinas de importação (BULK INSERT)Rotinas de backup de redeCópia de arquivos

Page 9: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

11

HardwareSubsistema de Disco

CPU/MEMORIA DISCO(STORAGE)

Page 10: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

12

HardwareCapacidade de Disco

Capacidade de disco (simplificado)Tamanho: 150 GBTransferênciaOperações (IOPS = I/O per Seconds)

Exemplo: Disco 15k.6 147GB Ultra320 SCSI

Page 11: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

13

HardwareCapacidade de Disco

Capacidade de disco (simplificado)Tamanho: 150 GBTransferência: 160 MB/sOperações (IOPS): 180-210 IOPS

Exemplo: Disco 15k.6 147GB Ultra320 SCSIVelocidade IOPS

7200 RPM 80-100

10000 (10k) RPM 130-150

15000 (15k) RPM 180-210

Page 12: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

14

HardwareCapacidade de Disco

Capacidade de disco (simplificado)Tamanho: 150 GBTransferência: 160 MB/sOperações (IOPS): 150 IOPS

Exemplo: Disco 15k.6 147GB Ultra320 SCSIInterface Transferência

Ultra ATA/133 133 MB/s

SATA 300 300 MB/s

Ultra320 SCSI 320 MB/s

FC 4Gb 400 MB/s

USB 1.0 1.2 MB/s

USB 2.0 60 MB/s

Page 13: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

15

HardwareCalculando a capacidade (simplificado)

Discos Tamanho Transferência IOPS

1 disco 150 GB 25 MB/s 100

2 discos 300 GB 50 MB/s 200

3 discos 450 GB 75 MB/s 300

4 discos 600 GB 100 MB/s 400

Page 14: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

16

HardwareCalculando a capacidade (simplificado)

Discos Tamanho Transferência IOPS

1 disco 150 GB 25 MB/s 100

2 discos 300 GB 50 MB/s 200

3 discos 450 GB 75 MB/s 300

4 discos 6000 GB 100 MB/s 400

… … … …

N discos 320 MB/s

N+1 discos 320 MB/s

N+2 discos 320 MB/s

Page 15: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

17

HardwareConsiderações do Subsistema de Disco

Configuração da storageRAID1/RAID1+0/RAID5/RAID10Cache (Escrita/Leitura)

Alinhamento de partição (DISKPART)Windows 2003 – DesalinhadoWindows 2008 – Alinhado em 1 MB

Considerações adicionais...

Page 16: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

18

HardwareDesign de aplicação e considerações para Hardware

ObjetivoMaximizar a utilização de recursos em 100%Evitar ao máximo o enfileiramento de recursos

ExemplosContenção e bloqueios Particionamento de dadosÍndicesCache de dados e planosParalelismo

Page 17: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

Instâncias e bancos de dadosÍndices e bloqueiosManutenção e Resource GovernorPlanos de execução e plan cacheParalelismo

SQL Server

Page 18: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

20

CenárioContenção e bloqueios

SintomasBaixo consumo de CPUBaixa demanda por recurso de disco

ResultadoNão atingimos o objetivo de 100% de utilizaçãoMaior tempo para completar uma tarefa

Page 19: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

21

SQL ServerBloqueios

Escritor vs. Múltiplos Leitores?E o famoso NOLOCK?

Possui algum efeito colateral?Lock EscalationNíveis de isolamento

Read UncommittedRead committed (suficiente na maioria dos casos)Repeatable ReadSerializableSnapshot Isolation Level

Habilitar Read Committed Snapshot

Page 20: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

22

CenárioDistribuição de Dados

Balanceamento dos recursos utilizadosUtilização individual dos discosUtilização coletiva do canal de comunicação e da controladora

Disco 1

Tabela A

Tabela X(parte 3)

Disco 2

Tabela B

Tabela X(parte 2)

Disco 3

Tabela C

Tabela X(parte 3)

Page 21: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

23

Software – SQL ServerBancos de dados

Faça a divisão dos seus dados em diversos filegroups (cuidado com LUNs x RAID groups).Cuide do crescimento dos seus arquivos.Particionamento é muito importante

SQL Server 2000: tabelas, constraints e view.SQL Server 2005: partition functions e schemes.

Alinhe o particionamento de seus dados e índices.Separar dados e índices é realmente proveitoso?Existe vantagem em criar diversos arquivos de log?

Page 22: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

24

CenárioÍndices

Uma busca através de um índice é milhares de vezes mais rápido do que uma busca sem índice

Dependendo do tamanho do índice, o ganho pode ser anulado

Maior espaço em discoMaior utilização de memóriaMaios consumo de CPU para ler todos os dados

Page 23: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

25

Software – SQL ServerÍndices

ClusterPesquisa por intervalos.Chaves sequenciais, sem alteração e pequenasHot-spot podem trazer gargalos?

Não-clusterVerifique quais índices realmente estão sendo utilizadosSomente trabalhe com o essencial

Covered index é essencialÍndice com include x índice compostoNão vá duplicar sua tabela!

Page 24: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

26

Software – SQL ServerÍndices

Primary key e Foreign key são boas candidatas para índices não cluster.Índices com filtro

Minimizam tamanho do seu índice NCL.Cláusulas where devem estar alinhadas com definição.

Views indexadasPotencializa consultas complexas... Bom para ambientes OLTP?

Page 25: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

27

Software – SQL ServerManutenção

Estatísticas são bem vindas e custo de armazenamento é muito baixo.

O threshold de atualização automática das estatísticas pode ser muito alto.Necessidade de planos de manutenção.AUTO CREATE STATISTICS

Mantenha os índices com baixa fragmentação interna e fragmentação lógica.

REORGANIZE é seu amigo.REBUILD [ONLINE]

Page 26: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

28

Software – SQL ServerManutenção

Compressão de dadosMelhora a proporção de registros por páginaCusto de CPU x memória e disco

FILL FACTOR = 80% ~ 100% ocupadoQueremos uma boa utilização do cacheNão para fórmulas mágicasNo caso de page splits + particionamento, histórico recebe um fill factor diferenciado.

Page 27: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

29

CenárioCache de dados e planos

Compilar e otimizar uma Query consome muito recurso de CPU e pode demorar segundos

O tempo de acesso ao disco é de milissegundos

Por que não manter essas informações em Cache?

O tempo de acesso à memória é de nanossegundos

Page 28: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

30

Software – SQL ServerCache de planos

Cuidado com workloads adhoc“Poluem” a cache de planos com muitos planos que potencialmente não mais serão utilizados.OPTIMIZE FOR ADHOC WORKLOADS

Alterações de estatísticas ou outras alterações estruturais podem causar recompilação.

Opção ASYNC é uma boa alternativa

Page 29: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

31

Software – SQL ServerPlanos de execução

HintsUse com cautela

Parametrização correta e plano com comportamento “bom na média” é muito importante.

OPTION (Optimize for X)OPTION (Optimize for unknown)

Plan guidesCasos mais extremos e maior controle

Page 30: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

32

HardwareProcessamento

O que há de errado na figura abaixo?

Page 31: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

33

Software – SQL ServerParalelismo

Como configurar o paralelismo?0, 1, 4, 8 ou N?SP_Configure `Max Degree of Paralellism`Hint MAXDOPResource Governor

Uma eterna discussão entre DBAs...Paralelismo é ruim?

Page 32: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

34

Software – SQL ServerResource Governor

Ajuda eficiente para controlar as prioridades dos workloads no SQL Server.Aplicação eficiente da função de classificação e dos grupos para se ter um bom resultado.

A fila de tarefas não é infinita, então modere o número de pools e grupos.

Memória, CPU, Paralelismo, importância, etc.Novas aplicações não precisam atrapalhar as soluções mais críticas e entram em um pool com menos recursos.

Page 33: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

36

Software – SQL ServerOutras considerações

Configurações importantes e comumente fonte de problemas:

Max worker threadsPriority boost

TempDBMais arquivos de dadosTrace flag 1118

Auto ShrinkNão recomendado!Shrink leva a fragmentação lógica

Page 34: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

Connection poolRound-tripsSP_ExecuteSQL

Aplicações

Page 35: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

38

SoftwareAplicação cliente

Pool de conexãoMin Pool SizeMax Pool Size

Minimize tráfego de dados e round-tripsComo fazer uma paginação eficiente

sp_executeSQL ou stored procedures

Page 36: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

39

ConclusãoMuita coisa, e agora?

Achar o balanço ideal para sua solução nem sempre é simples.

Porém existem diversas boas práticas (e ações simples) que podem melhorar seu ambiente.

Desenvolvedores e DBAs devem trabalhar juntos.

Sim, pode até doer, mas...Novos recursos exigem novas soluções e adaptações continuas dos recursos, então não pare no tempo.

Page 37: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

40

Page 38: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

41

Conteúdo relacionado

DBP402 - Compilação, planos de execução e cache de planos: como evitar as armadilhas

SUP403 - SQL Server com foco em Diagnóstico de Desempenho

DBP301 - Mitos e realidades sobre consolidação e virtualização com Microsoft SQL Server

DBP305 - Estratégias para otimizar a concorrência dentro do Microsoft SQL Server 2008 R2

Page 39: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

© 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos são ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros países.Este documento é meramente informativo e representa a visão atual da Microsoft Corporation a partir da data desta apresentação. Como a Microsoft deve atender a condições de mercado em constante alteração, este

documento não deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft não pode garantir a precisão de qualquer informação fornecida após a data desta apresentação. A MICROSOFT NÃO DÁ QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPLÍCITA OU ESTATUTÁRIA, REFERENTE ÀS INFORMAÇÕES DESTA APRESENTAÇÃO.

Page 40: TechEd 2010: Escalando aplicações OLTP:Design de aplicação e considerações para hardware

Por favor preencha a avaliação