Download - Levando o rds ao Máximo
![Page 1: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/1.jpg)
Levando o RDS ao Máximo
![Page 2: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/3.jpg)
Dúvida
![Page 4: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/5.jpg)
Fase 1 - Nível de Isolamento
Read Commited
Read Uncommited
![Page 6: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/6.jpg)
Fase 2 - Fila
Acelerar Importa
ção
Concorrência
Escalar dinamicamente
![Page 7: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/8.jpg)
RESOLVEMOS NOSSOS PROBLEMAS
![Page 9: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/9.jpg)
#SQN
![Page 10: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/11.jpg)
Updates Concorrentes
![Page 12: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/12.jpg)
Updates Concorrentes
![Page 13: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/14.jpg)
![Page 15: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/15.jpg)
RESULTADOS – READ IOPS
![Page 16: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/16.jpg)
RESULTADOS – WRITE IOPS
![Page 17: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/17.jpg)
Acúmulo de créditos
![Page 18: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/19.jpg)
CHEGAMOS ONDE QUERÍAMOS!
YES
![Page 20: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/21.jpg)
DÚVIDAS?
![Page 22: Levando o rds ao Máximo](https://reader036.vdocuments.pub/reader036/viewer/2022062313/55d03540bb61ebcd698b467a/html5/thumbnails/22.jpg)
OBRIGADO!HENRYLLE MAIAARQUITETO DE SOFTWARE – GRUPO FORTESTWITTER: @henryllewww.oregonead.com.br