Upload
giovani-dardani
View
148
Download
1
Embed Size (px)
Citation preview
RDS for Aurora vs RDS for MySQL
Comparando dois tipos de serviços de bancos de dados relacionais
oferecidos pela AWS.
Introdução
Nessa apresentação irei focar em apenas duas das engines oferecidas pelo RDS (Mysql 5.6 e AWS Aurora). As duas opções são bastante semelhantes e diferem principalmente no quesito performance.
Segundo dados publicados pela AWS, a engine Aurora (proprietária) pode chegar a ser 5 vezes mais rápida que a engine MySQL (open-source) em alguns cenários.
RDS?
AWS Relational Database Service (RDS) é um serviço de banco de dados relacionais totalmente gerenciável e que oferece uma gama de opções de engines SQL (MySQL, MSSQL, AWS Aurora e etc).
De acordo com a pagina oficial, RDS é um serviço web que facilita a configuração, operação e crescimento de sistemas gerenciadores de banco de dados em núvem.
Workload
Para poder comparar a performance de ambas as soluções oferecidas pela AWS defini uma carga de trabalho que deveria ser idêntica para os dois cenários.
As baterias não tinham como objetivo causar a exaustão dos serviços.
Workload generator
AWS EC2•
Instance class: m3.xlarge
•
AZ: us-east-1a (mesma região e zona que ambos os RDSs)
•
4 vCPU, 13 ECU e 15 GB memória RAM
Jmeter•
JDBC
•
MySQL Driver
•
Class name: com.mysql.jdbc.driver
Workload profile
2 queries SQL•
INSERT (número inteiro randômico em uma coluna de uma tabela)
•
SELECT (em uma coluna de uma tabela, retorna um número inteiro)
100 Threads concorrentes•
Threads concorrentes é diferente de threads simultâneas
•
200 iterações por thread
•
2 queries por iteração
AWS RDS
AWS RDS•
Instance class: db.r3.large
•
AZ: us-east-1a
•
Single AZ (replicação desligada)
•
2 vCPU, 6.5 ECU e 15 GB memória RAM
•
Performance de rede: moderada
•
Storage: 20gb General Purpose SSD
•
IOPS: desativado
Resultados
Ambas as cargas de trabalho geraram juntas uma população de 80000 linhas ao final das 2 baterias.
Cada uma das baterias gerou uma amostragem de 40000 linhas (100 threads * 200 iterações * 2 queries) sendo que cada linha corresponde a uma requisição (hit) feita ao serviço.
Dados analisados3 números foram levados em consideração nessa apresentação.
• Response time over time
Gráfico de dispersão
Linhas de 90th e 95th percentile
• Hits Per Second
Histograma - intervalo de 1 s
• Response Time Distribution
Histograma - intervalo de 100 ms
Linhas de 90th e 95th percentile