Gerenciar a performance e a escalabilidade do Amazon Aurora MySQL
Dimensionar instâncias de bancos de dados Aurora MySQL
Você pode escalar instâncias de banco de dados Aurora MySQL de duas maneiras: com escalabilidade de instância e escalabilidade de leitura. Para obter mais informações sobre a escalabilidade de leitura, consulte Escalabilidade de leitura.
Você pode escalar o cluster de bancos de dados Aurora MySQL modificando a classe da instância de banco de dados para cada instância de banco de dados do cluster. O Aurora MySQL é compatível com várias classes de instância de banco de dados otimizada para o Aurora. Não use classes de instância db.t2 ou db.t3 para clusters do Aurora maiores com tamanho superior a 40 TB. Para obter as especificações das classes de instância de banco de dados compatíveis com o Aurora MySQL, consulte Classes de instância de banco de dados Aurora.
Número máximo de conexões com uma instância de bancos de dados Aurora MySQL
O número máximo de conexões permitido para uma instância de bancos de dados Aurora MySQL é determinado pelo parâmetro max_connections
no grupo de parâmetros do nível da instância para a instância de banco de dados.
A tabela a seguir lista o valor padrão resultante de max_connections
para cada classe de instância de banco de dados disponível para o Aurora MySQL. É possível aumentar o número máximo de conexões da instância de bancos de dados Aurora MySQL dimensionando a instância até uma classe de instância de banco de dados com mais memória ou definindo um valor maior para o parâmetro max_connections
no grupo de parâmetros de banco de dados da instância, de até 16.000.
Se suas aplicações abrem e fecham conexões com frequência ou mantêm um grande número de conexões de longa duração abertas, recomendamos usar o Amazon RDS Proxy. O RDS Proxy é um proxy de banco de dados totalmente gerenciado e altamente disponível que usa grupos de conexões para compartilhar conexões de banco de dados de forma segura e eficiente. Para saber mais sobre o RDS Proxy, consulte Usar o Amazon RDS Proxy para o Aurora.
Para obter detalhes sobre como as instâncias do Aurora Serverless v2 lidam com esse parâmetro, consulte Conexões máximas do Aurora Serverless v2.
Classe de instância | Valor padrão de max_connections |
---|---|
db.t2.small |
45 |
db.t2.medium |
90 |
db.t3.small |
45 |
db.t3.medium |
90 |
db.t3.large |
135 |
db.t4g.medium |
90 |
db.t4g.large |
135 |
db.r3.large |
1000 |
db.r3.xlarge |
2000 |
db.r3.2xlarge |
3000 |
db.r3.4xlarge |
4000 |
db.r3.8xlarge |
5000 |
db.r4.large |
1000 |
db.r4.xlarge |
2000 |
db.r4.2xlarge |
3000 |
db.r4.4xlarge |
4000 |
db.r4.8xlarge |
5000 |
db.r4.16xlarge |
6000 |
db.r5.large |
1000 |
db.r5.xlarge |
2000 |
db.r5.2xlarge |
3000 |
db.r5.4xlarge |
4000 |
db.r5.8xlarge |
5000 |
db.r5.12xlarge |
6000 |
db.r5.16xlarge |
6000 |
db.r5.24xlarge |
7000 |
db.r6g.large | 1000 |
db.r6g.xlarge | 2000 |
db.r6g.2xlarge | 3000 |
db.r6g.4xlarge | 4000 |
db.r6g.8xlarge | 5000 |
db.r6g.12xlarge | 6000 |
db.r6g.16xlarge | 6000 |
db.r6i.large | 1000 |
db.r6i.xlarge | 2000 |
db.r6i.2xlarge | 3000 |
db.r6i.4xlarge | 4000 |
db.r6i.8xlarge | 5000 |
db.r6i.12xlarge | 6000 |
db.r6i.16xlarge | 6000 |
db.r6i.24xlarge | 7000 |
db.r6i.32xlarge | 7000 |
db.x2g.large | 2000 |
db.x2g.xlarge | 3000 |
db.x2g.2xlarge | 4000 |
db.x2g.4xlarge | 5000 |
db.x2g.8xlarge | 6000 |
db.x2g.12xlarge | 7000 |
db.x2g.16xlarge | 7000 |
Se você criar um novo grupo de parâmetros para personalizar seu próprio padrão para o limite de conexão, verá que o limite da conexão padrão é derivado usando uma fórmula baseada no valor DBInstanceClassMemory
. Como mostra a tabela anterior, a fórmula gera limites de conexão que aumentam em 1000 à medida que a memória é duplicada entre as instâncias progressivamente maiores R3, R4 e R5, e em 45 para tamanhos de memórias diferentes das instâncias T2 e T3.
Consulte Especificação de parâmetros de banco de dados para obter mais detalhes sobre como é feito o cálculo de DBInstanceClassMemory
.
As instâncias de banco de dados Aurora MySQL e RDS para MySQL têm diferentes quantidades de sobrecarga de memória. Portanto, o valor de max_connections
pode ser diferente para instâncias de banco de dados Aurora MySQL e RDS para MySQL que usam a mesma classe de instância. Os valores na tabela só se aplicam a instâncias de banco de dados Aurora MySQL.
Os limites de conectividade bem mais baixos das instâncias T2 e T3 ocorrem porque com o Aurora essas classes de instâncias são destinadas apenas para cenários de desenvolvimento e teste, e não para cargas de trabalho de produção.
Os limites de conexão padrão são ajustados pelos sistemas que usam os valores padrão para outros grandes consumidores de memória, como grupo de buffers e cache de consulta. Se você alterar essas outras configurações de seu cluster, considere o ajuste do limite de conexão para levar em conta o aumento ou a redução da memória disponível nas instâncias de banco de dados.
Limites de armazenamento temporário para o Aurora MySQL
O Aurora MySQL armazena tabelas e índices no subsistema de armazenamento do Aurora. O Aurora MySQL usa armazenamento temporário separado para arquivos temporários não persistentes. O Aurora MySQL usa armazenamento local para armazenar logs de erros, logs gerais, logs de consultas lentas, logs de auditoria e tabelas temporárias que não são do InnoDB. O armazenamento local também inclui arquivos que são usados para fins como classificar grandes conjuntos de dados durante o processamento de consultas ou para operações de compilação de índice. Ele não inclui tabelas temporárias do InnoDB. Para obter mais informações, consulte What is stored in Aurora MySQL-Compatible local storage, and how can I troubleshoot local storage issues?
Esses volumes de armazenamento local são apoiados pelo Amazon Elastic Block Store e podem ser estendidos utilizando uma classe de instância de banco de dados maior. Para obter mais informações sobre armazenamento, consulte Armazenamento e confiabilidade do Amazon Aurora.
Você pode ver eventos de storage-optimization
ao dimensionar instâncias de banco de dados, por exemplo, de db.r5.2xlarge para db.r5.4xlarge.
A tabela a seguir mostra a quantidade máxima de armazenamento temporário disponível para cada classe de instância de bancos de dados Aurora MySQL. Para obter mais informações sobre o suporte a classes de instância de banco de dados para o Aurora, consulte Classes de instância de banco de dados Aurora.
Classe de instância de banco de dados | Armazenamento temporário máximo disponível (GiB) |
---|---|
db.x2g.16xlarge | 1.280 |
db.x2g.12xlarge | 960 |
db.x2g.8xlarge | 640 |
db.x2g.4xlarge | 320 |
db.x2g.2xlarge | 160 |
db.x2g.xlarge | 80 |
db.x2g.large | 40 |
db.r6i.32xlarge | 2560 |
db.r6i.24xlarge | 1920 |
db.r6i.16xlarge | 1.280 |
db.r6i.12xlarge | 960 |
db.r6i.8xlarge | 640 |
db.r6i.4xlarge | 320 |
db.r6i.2xlarge | 160 |
db.r6i.xlarge | 80 |
db.r6i.large | 32 |
db.r6g.16xlarge | 1.280 |
db.r6g.12xlarge | 960 |
db.r6g.8xlarge | 640 |
db.r6g.4xlarge | 320 |
db.r6g.2xlarge | 160 |
db.r6g.xlarge | 80 |
db.r6g.large | 32 |
db.r5.24xlarge | 1920 |
db.r5.16xlarge | 1.280 |
db.r5.12xlarge | 960 |
db.r5.8xlarge | 640 |
db.r5.4xlarge | 320 |
db.r5.2xlarge | 160 |
db.r5.xlarge | 80 |
db.r5.large | 32 |
db.r4.16xlarge | 1.280 |
db.r4.8xlarge | 640 |
db.r4.4xlarge | 320 |
db.r4.2xlarge | 160 |
db.r4.xlarge | 80 |
db.r4.large | 32 |
db.t4g.large | 32 |
db.t4g.medium | 32 |
db.t3.large | 32 |
db.t3.medium | 32 |
db.t3.small | 32 |
db.t2.medium | 32 |
db.t2.small | 32 |
Esses valores representam a quantidade teórica máxima de armazenamento gratuito em cada instância de banco de dados. O armazenamento local real disponível para você pode ser menor. O Aurora usa um pouco do armazenamento local para seus processos de gerenciamento, e a instância de banco de dados usa um pouco do armazenamento local antes mesmo de você carregar dados. É possível monitorar o armazenamento temporário disponível para uma instância de banco de dados específica com a métrica FreeLocalStorage
do CloudWatch, descrita em Métricas do Amazon CloudWatch para o Amazon Aurora. Você pode verificar a quantidade de armazenamento gratuito no momento atual. Você também pode mapear a quantidade de armazenamento gratuito ao longo do tempo. Monitorar o armazenamento gratuito ao longo do tempo ajuda você a determinar se o valor está aumentando ou diminuindo, ou a encontrar os valores mínimo, máximo ou médio.
(Isso não se aplica ao Aurora Serverless v2.)