Levando o RDS ao Máximo
Cenário
• 5 operações : SQS, S3, serialização, unzip
• 15 operações relacionais
• Cada ciclo está uma transação
20 operaçõ...
Dúvida
Problemas
Transação
Nível de
Isolamento
Updates
concorrentes
RDS
Discos
Magnéticos /
SSD / PIOPS
FILA
Preocupação
com
proc...
Fase 1 - Nível de Isolamento
Read
Commited
Read
Uncommited
Fase 2 - Fila
Acelerar
Importação
Concorrência
Escalar
dinamicamente
Fase 3 – Disco RDS
• Média de 100 IOPS
• Picos de centenas de IOPSMagnético
• Média de 3 IOPS / GB
• Picos de 3000 IOPS / ...
RESOLVEMOS NOSSOS
PROBLEMAS
#SQN
Frustração
•SONHÁVAMOS CHEGAR AOS 3 MIL IOPS.
•NÃO CHEGAMOS NEM A 200 IOPS =/
•PARALELIZAR AS OPERAÇÕES DEGRADAVA MUITO A
...
Updates Concorrentes
Updates Concorrentes
FASE 4 – Eliminar Updates
Concorrentes
•UPDATES SÓ GERAM SCRIPTS QUANDO OS DADOS
EFETIVAMENTE MUDAM;
•OS DADOS MUDAM BASTA...
RESULTADOS – READ IOPS
RESULTADOS – WRITE IOPS
Acúmulo de créditos
Números Finais
• ~600 ciclos em 15 min
• Paralelização limitada com
degradação de performance
Antes
• ~50 mil ciclos em 15...
CHEGAMOS ONDE QUERÍAMOS!
YES
Dicas
•Log;
•Use uma boa ferramenta de profiler;
•Teste com massa de dados. Preferência que seja espelho
de PRD (Foi assim...
DÚVIDAS?
OBRIGADO!
HENRYLLE MAIA
ARQUITETO DE SOFTWARE – GRUPO FORTES
TWITTER: @henrylle
www.oregonead.com.br
Levando o rds ao Máximo
Próximos SlideShares
Carregando em…5
×

Levando o rds ao Máximo

172 visualizações

Publicada em

Técnicas para extrair todo o poder do RDS.

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
172
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Levando o rds ao Máximo

  1. 1. Levando o RDS ao Máximo
  2. 2. Cenário • 5 operações : SQS, S3, serialização, unzip • 15 operações relacionais • Cada ciclo está uma transação 20 operações por ciclo • Ciclos levando em média 1 segundo • Degradação de performance com a paralelização • 600 ~ 900 ciclos processados em 15 minutos Centenas de Milhares de ciclos para processar
  3. 3. Dúvida
  4. 4. Problemas Transação Nível de Isolamento Updates concorrentes RDS Discos Magnéticos / SSD / PIOPS FILA Preocupação com processamentos concorrentes
  5. 5. Fase 1 - Nível de Isolamento Read Commited Read Uncommited
  6. 6. Fase 2 - Fila Acelerar Importação Concorrência Escalar dinamicamente
  7. 7. Fase 3 – Disco RDS • Média de 100 IOPS • Picos de centenas de IOPSMagnético • Média de 3 IOPS / GB • Picos de 3000 IOPS / segSSD • SSD com provisionamento de IOPSPIOS
  8. 8. RESOLVEMOS NOSSOS PROBLEMAS
  9. 9. #SQN
  10. 10. Frustração •SONHÁVAMOS CHEGAR AOS 3 MIL IOPS. •NÃO CHEGAMOS NEM A 200 IOPS =/ •PARALELIZAR AS OPERAÇÕES DEGRADAVA MUITO A PERFORMANCE
  11. 11. Updates Concorrentes
  12. 12. Updates Concorrentes
  13. 13. FASE 4 – Eliminar Updates Concorrentes •UPDATES SÓ GERAM SCRIPTS QUANDO OS DADOS EFETIVAMENTE MUDAM; •OS DADOS MUDAM BASTANTE?? ENTÃO TIRA ISSO DA TRANSAÇÃO;
  14. 14. RESULTADOS – READ IOPS
  15. 15. RESULTADOS – WRITE IOPS
  16. 16. Acúmulo de créditos
  17. 17. Números Finais • ~600 ciclos em 15 min • Paralelização limitada com degradação de performance Antes • ~50 mil ciclos em 15 min (+80x) • Paralelização de até 55 consoles SEM degradação de performance Depois
  18. 18. CHEGAMOS ONDE QUERÍAMOS! YES
  19. 19. Dicas •Log; •Use uma boa ferramenta de profiler; •Teste com massa de dados. Preferência que seja espelho de PRD (Foi assim que avançamos); •Use snapshots; •Automatize a construção do cenário para otimização;
  20. 20. DÚVIDAS?
  21. 21. OBRIGADO! HENRYLLE MAIA ARQUITETO DE SOFTWARE – GRUPO FORTES TWITTER: @henrylle www.oregonead.com.br

×