22
Levando o RDS ao Máximo

Levando o rds ao Máximo

Embed Size (px)

Citation preview

Page 1: Levando o rds ao Máximo

Levando o RDS ao Máximo

Page 2: 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çõ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

Page 3: Levando o rds ao Máximo

Dúvida

Page 4: Levando o rds ao Máximo

Problemas

TransaçãoNível de

Isolamento

Updates concorrentes

RDS

Discos Magnéticos / SSD / PIOPS

FILA

Preocupação com

processamentos concorrentes

Page 5: Levando o rds ao Máximo

Fase 1 - Nível de Isolamento

Read Commited

Read Uncommited

Page 6: Levando o rds ao Máximo

Fase 2 - Fila

Acelerar Importa

ção

Concorrência

Escalar dinamicamente

Page 7: Levando o rds ao Máximo

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

Page 8: Levando o rds ao Máximo

RESOLVEMOS NOSSOS PROBLEMAS

Page 9: Levando o rds ao Máximo

#SQN

Page 10: Levando o rds ao Máximo

Frustração

•SONHÁVAMOS CHEGAR AOS 3 MIL IOPS.

•NÃO CHEGAMOS NEM A 200 IOPS =/

•PARALELIZAR AS OPERAÇÕES DEGRADAVA MUITO A PERFORMANCE

Page 11: Levando o rds ao Máximo

Updates Concorrentes

Page 12: Levando o rds ao Máximo

Updates Concorrentes

Page 13: Levando o rds ao Máximo

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;

Page 14: Levando o rds ao Máximo
Page 15: Levando o rds ao Máximo

RESULTADOS – READ IOPS

Page 16: Levando o rds ao Máximo

RESULTADOS – WRITE IOPS

Page 17: Levando o rds ao Máximo

Acúmulo de créditos

Page 18: Levando o rds ao Máximo

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

Page 19: Levando o rds ao Máximo

CHEGAMOS ONDE QUERÍAMOS!

YES

Page 20: Levando o rds ao Máximo

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;

Page 21: Levando o rds ao Máximo

DÚVIDAS?

Page 22: Levando o rds ao Máximo

OBRIGADO!HENRYLLE MAIAARQUITETO DE SOFTWARE – GRUPO FORTESTWITTER: @henryllewww.oregonead.com.br