ssd no banco de dados é bom mesmo?

30
Globalcode – Open4education Trilha banco de dados - SSD no banco de dados é bom mesmo? Dr. Mauro Pichiliani [email protected]

Upload: pichiliani

Post on 14-Apr-2017

1.207 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Trilha banco de dados - SSD no banco de dados é bom mesmo?

Dr. Mauro [email protected]

Page 2: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Quem sou eu

Mestre e doutor em computação pelo ITA

Escritor da SQL Magazine, .NET e Java Magazine

Colaborador do iMasters há 15 anos

Autor do livro “Conversando sobre banco de dados”

Co-produtor do DatabaseCast

Consultor independente e autor de cursos on-line

Page 3: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Agenda

Subsistema de armazenamento

SSD: opções de mercado

Vale a pena? Show me the money!

Análise dos resultados

Conclusão

Page 4: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Subsistema de armazenamento

Possui vários componentes: conheça todos!

Simplificando:Tecnologia de transferênciaHardware/Software

Tecnologias de transferência comuns:USB 2.0: 480 Mbit/sSATA (Seria AT Attachment): 6 Gbit/sSAS (Serial Attached SCSI): 12 Gbit/s

Page 5: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Hardware – HD magnética

HD (Hard Disk) magnética

Também chamada de HDD (High-capacity hard disk drive)Componentes mecânicos (sujeito a falhas)

Grande quantidade de dados (Terabytes)

Memória cache interna

Característica RPM (rotações por minuto):5.400 rpm: notebooks7.200 rpm: desktops15.000 (15k) rpm: servidores

Page 6: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Hardware – SSD

SSD (Solid State Drive): “revolução” na áreaTambém chamado de flash driveSem componentes mecânicos: memória flash + memória cache internaMédia quantidade de dados (Gigabytes)Alta taxa de transferência de dadosRequer alguns cuidados especiaisVelocidades variam muito de acordo com cada fabricanteRelação custo x benefícioNota: não se esqueça do tempo de vida!

Page 7: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Hardware/Software - Ramdrive

Ramdrive: mapear memória RAM em um driveTecnologia “antiga”, mas com novidadesReserva memória RAM de forma exclusivaReduz memória para processos do SOVolátil, porém pode-se exportar drive (ISO)Alta velocidade (barramento interno)Baixa quantidade de armazenamento (gigabytes)Não é limitado pela tecnologia de transferênciaExemplo: SoftPerfect RAM Disk

Page 8: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Hardware/Software - Nuvem

Utilizam ambiente virtualizado: hypervisor (Xen, KVM, Virtual PC, etc)

Custo por uso ou valor fixo mensal Possibilidade de adição de recursos (modelo de

escalonamento horizontal/banco distribuído) Componentes virtualizados Ambiente com recursos compartilhados Baixa velocidade Quantidade de armazenamento variável SLA de IOPS em alguns casos

Page 9: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

SSD: Opções de mercado

Geralmente storage híbrido ou completo (all-flash)Cuidado com DAS (direto) e NAS/SAN (remoto)Fatores: IOPS, latência e throughput Preço varia de acordo com componentes e contratoLinhas de produtos específicos para bancos de dadosDica: canais do YouTube contêm muita informação!

Exemplos:

EMC Unity 300F All-flashhttp://bit.ly/299bxHJ

Dell PowerVault MD1220Híbridohttp://dell.to/2989YxX

Page 10: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Vale a pena? Comparando desempenho

Comparação empírica: medir taxa de acesso para (1) importar/exportar dados; (2) backup/restore; e (3) executar transações

Comparação justa e prática: ambientes devem realizar a mesma tarefa (ler e gravar dados por meio do banco de dados)

Opções comparadas:HD magnética 5400 rpm mSATA (notebook): HD 5400HD magnética 7200 rpm SATA (desktop): HD 7200SSD 250 GB SATA (desktop): SSDRamdrive 10 GB (desktop): ramdrive Nuvem fornecedor X com HD normal: Cloud normalNuvem fornecedor X com HD SSD: Cloud SSD

Comparação apenas com uma instância (sem ambiente distribuído)Testes realizados sem opções de paralelismo e RAID

Page 11: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Ambiente: Hardware e software

Hardware:Desktop Intel Core i950 (4 cores @ 3.06 GHZ), 16GB RAM: HD 7200, SSD, ramdriveNotebook Dell Inspiron 14 (i3, 2 cores @ 1.7Ghz), 4 GB RAM: HD 5400CPU virtual (Intel Xeon 2 cores @ 2.6 Ghz): Cloud normal e Cloud SSD

Software:Crystal Disk Mark 64 bits (baseline)SQL Server 2014 StandardWindows Server 2008Sistema de arquivos NTFS com opções padrão

Ambiente, protoloco do experimento, dados e análises disponíveis futuramente no site da revista SQL Magazine

Page 12: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Ambiente: Dados

Arquivos/Tabela com 11 colunas: 1 int + 10 floatColuna int (sequêncial) + valores float aleatórios (entre 1,00 e 100.000,00)Arquivo CSV com linhas (N) variando de 1.000.000 a 10.000.000Quantidade de transações (N) variando de 10.000 a 100.000Medição da taxa de transferência em Megabytes por segundo (MB/s):

Crystal Disk Mark: informado pela ferramentaBackup/Restore: informado pelo comandoImportação/Exportação: tamanho do arquivo dividido pelo tempo

Medição de transações pelo tempo total gasto em segundosCada teste foi realizado 10 vezes e obtida a médiaArquivos de dados, transaction log e arquivos CSV no mesmo driveEspaço em disco alocado previamente para arquivos de dados e logSem configurações de cache, lock e parâmetros específicosRecovery model: bulk-logged

Page 13: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Baseline: Crystal Disk Mark

Testes com o Crystal Disk Mark mediram taxa de transferência de dados em MB/s: quanto maior, melhor4 testes internos para leitura e gravação:

Seq Q32T1: Leitura/Gravação sequencial (tam. bloco = 128KB) com múltiplas filas (queues) e threads4K Q32T1: Leitura/Gravação randômica (tam. do bloco = 4KB) com múltiplas filas (queues) e threadsSeq: Leitura/Gravação sequencial (tam. do bloco = 1MB) com uma única thread4K: Leitura/Gravação randômica (tam. do bloco = 4KB) com uma thread e uma fila (queue)

Page 14: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Crystal Disk Mark – Resultado leitura

Na média geral SSD foi 73% mais rápido que HD 7200

Page 15: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Crystal Disk Mark – Resultado gravação

Na média geral SSD foi 73% mais rápido que HD 7200

Page 16: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

(1) Testes de backup/restore

Testes de backup/restore mediram taxa de transferência de dados em MB/s: quanto maior, melhorBackup e restore completo (full) do banco Somente um backup por arquivo (backup device)Checagem de arquivo não computada no valor de MB/s retornado

Page 17: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de restore (leitura)

Na média geral SSD foi 53% mais rápido que HD 7200

Page 18: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de backup (gravação)

Na média geral SSD foi 78% vezes mais rápido que HD 7200

Page 19: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

(2) Testes de importação e exportação

Testes de importação/exportação mediram taxa de transferência de dados em MB/s: quanto maior, melhorTestes de importação/exportação divididos em dois grupos:Importação/exportação linha a linha de arquivos CSV (BCP)Importação/exportação direta binária dos arquivos (BULK)

Importação BCP: utilitário de linha de comando bcpImportação BULK: SELECT com função OPENROWSET()

Exportação BCP: utilitário de linha de comando bcpExportação BULK: utilitário de linha de comando bcp com parâmetro -c

A cada operação de importação/exportação:Limpeza do cacheBackup de transaction log

Page 20: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de importação BCP (leitura)

Na média geral SSD e HD 7200 foram praticamente iguais no teste

Page 21: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de exportação BCP (gravação)

Na média geral SSD e HD 7200 foram praticamente iguais no teste

Page 22: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de importação BULK (leitura)

Na média geral SSD foi 53% mais rápido que HD 7200

Page 23: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de exportação BULK (gravação)

Na média geral SSD foi 48% mais rápido que HD 7200

Page 24: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

(3) Testes de transações

Testes de transações mediram o tempo de execução: quanto menor, melhor

Testes de transação divididos em dois grupos:Individuais: cada instrução é uma transação Agrupadas: todas as instruções dentro de uma única transação

Uso do comando INSERT dentro de script com loop: mesmos dados dos arquivos CSV

N variando de 10.000 a 100.000 por motivos de duração de testes

A cada teste de transação:Limpeza do cacheBackup de transaction log

Page 25: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de transações individuais

Na média geral SSD e HD 7200 foram praticamente iguais no teste

Page 26: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Testes de transações agrupadas

Na média geral RAMDRIVE, SSD, HD 7200, HD 5400 foram praticamente iguais no teste

Page 27: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Tabela de resultadosTipo de

testeDetalhe do

testeÚltimo

colocado 

ValorMédio último

colocado (MB/s)

Primeirocolocado

 

Valor médioprimeiro colocado

(MB/s)

Crystal Disk Mark -

Leitura

4K HD 5400 0,3 ramdrive 1.216,4SEQ Cloud SSD 25,2 ramdrive 5.778,6

4K Q32T1 HD 5400 0,5 ramdrive 1.079,1SEQ Q32T1 Cloud SSD 25,2 ramdrive 3.905,8

Crystal Disk Mark -Gravação

4K HD 5400 0,7 ramdrive 937SEQ Cloud SSD 25,2 ramdrive 6.592,5

4K Q32T1 HD 5400 0,7 ramdrive 910,7SEQ Q32T1 Cloud SSD 25,2 ramdrive 5.504,1

Restore(leitura)

Restore  Cloud SSD 3,5 ramdrive 1.024,7

Backup(gravação)

Backup  Cloud SSD 13 ramdrive 2.332,2

Importação(leitura)

BCP HD 5400 5,8 ramdrive 20,4Bulk insert Cloud SSD 52,3 ramdrive 4.071,5

Exportação(gravação)

BCP HD 5400 5,5 ramdrive 11,2Bulk export Cloud SSD 8,8 ramdrive 115,9

Transações Individual Cloud SSD 37,3s ramdrive 1,7s

Agrupado HD 5400 0,6sSSD,

HD 7200,ramdrive

0,4s

Page 28: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Análise dos resultados

ramdrive teve melhor desempenho seguido de SSDSSD é mais rápido ou igual que HD 7200

em todos os testes (média de 63% mais rápida)Opções na nuvem deixaram muito a desejar:

Em alguns casos, resultados piores que HD 5400Diferença de preço de Cloud SSD para Cloud HD não possui boa relação custo x benefício

Opções na nuvem apresentaram muita variações nos testes (fatores externos?)Memória virtual não foi usada em nenhum dos cenários de testesCríticas:

Poucas opções de nuvem testadasSem uso de RAID e storage específicoAmbiente Windows e SQL Server apenas

Page 29: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

ConclusãoP: SSD no banco de dados é bom mesmo?

R: Sim, mas o quão bom depente da tarefa!

Não esqueça de colocar custos na discussão!Há evidências empíricas que sugerem melhor desempenho de opções em memória (ramdrive e SSD) em relação às demaisHá evidência que sugerem que opção na nuvem não é a mais “rápida” Muitas técnicas podem ser aplicadas para melhorar taxas de transferências e tempos de execução

Não concorda com os resultados? Replique o experimentoMe contrate para uma consultoria!

Page 30: SSD no banco de dados é bom mesmo?

Globalcode – Open4education

Perguntas?

Dr. Mauro [email protected]@pichiliani@databasecast