17

RDS: Aurora vs MySQL engines

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

Response time over time – RDS for Aurora

Response time over time – RDS for MySQL 5.6

Hits Per Second – RDS for Aurora

Hits Per Second – RDS for MySQL 5.6

Response Time Distribution – RDS for Aurora

Response Time Distribution – RDS for MySQL 5.6

Autores

Giovani Dardani

[email protected]: @gdardani

Roberto Gaiser

[email protected]: @rgaiser