Qual é o número máximo de conexões com uma instância de BD do RDS?
O RDS não tem restrições sobre quantas conexões são suportadas. Depende dos valores padrão e intervalos de valores dos seguintes parâmetros: max_connections e max_user_connections para o mecanismo de BD MySQL e max_connections para o mecanismo de BD PostgreSQL. É possível personalizar esses parâmetros em um modelo de parâmetro.
- Para obter detalhes sobre o número de conexões suportadas para instâncias de BD do RDS for MySQL, consulte Livro branco de desempenho do RDS for MySQL.
- Para obter detalhes sobre o número de conexões suportadas para instâncias de BD do RDS for PostgreSQL, consulte Livro branco de desempenho do RDS for PostgreSQL.
Alterar o número máximo de conexões
- RDS for MySQL
Você pode alterar o número máximo de conexões no console. Para obter detalhes, consulte Modificação de parâmetros.
Ou, você pode consultar ou alterar o número máximo de conexões permitidas usando comandos.
- Consultar o número máximo de conexões
show global variables like 'max_connections';
- Alterar o valor de max_connections em mysqld no arquivo my.cnf
[mysqld] max_connections = 1000
- Consultar o número máximo de conexões
- RDS for PostgreSQL
Você pode alterar o número máximo de conexões permitidas no console. Para obter detalhes, consulte Modificação de parâmetros de instância.
Você pode consultar o número máximo de conexões permitidas usando comandos.
show max_connections;
Se você quiser alterar o número máximo de conexões permitidas usando comandos, entre em contato com o suporte técnico da Huawei.
Definir o número máximo de conexões para um valor apropriado
- RDS for MySQL
- Além do valor de max_connections, o número máximo de conexões de clientes simultâneas permitidas pelo RDS for MySQL também é limitado pelo número máximo de arquivos que podem ser abertos por um único processo no sistema operacional. Por exemplo, se o número máximo de arquivos que podem ser abertos por cada processo for definido como 100 no sistema operacional, o parâmetro max_connections não terá efeito mesmo se for definido como 200.
- Verifique o número máximo de arquivos que podem ser abertos por um único processo no sistema operacional. O valor padrão é 1024.
ulimit -n
- Verifique o valor de open_files_limit. open_files_limit indica o número máximo de arquivos que podem ser abertos por um único processo, que é lido a partir do sistema operacional durante a inicialização do RDS for MySQL.
show variables like 'open_files_limit';
- Sugestões
O número máximo de conexões RDS for MySQL pode ser modificado para qualquer quantidade permitida pelas especificações da instância. O número máximo de conexões suportadas está intimamente relacionado à memória da instância.
max_connections: número máximo de conexões simultâneas com uma instância de BD. Se este parâmetro for definido como default, o número máximo de conexões dependerá da memória (unidade: GB) da instância de BD. A fórmula é a seguinte:
Valor estimado de max_connections = memória de nó disponível/memória estimada ocupada por uma única conexão
- Memória de nó disponível = memória total – Memória ocupada pelo pool de buffers – 1 GB (processo mysqld/SO/programa de monitoramento)
- Uso estimado de memória de uma única conexão (single_thread_memory) = thread_stack (256 KB) + binlog_cache_size (32 KB) + join_buffer_size (256 KB) + sort_buffer_size (256 KB) + read_buffer_size (128 KB) + read_rnd_buffer_size (256 KB) ≈ 1 MB
A tabela a seguir lista os valores padrão de max_connections para diferentes especificações de memória.
Tabela 1 Max_connections para diferentes especificações de memória Memória (GB)
Conexões
512
100.000
384
80.000
256
60.000
128
30.000
64
18.000
32
10.000
16
5.000
8
2.500
4
1.500
2
800
Defina o número máximo de conexões para um valor apropriado porque mais conexões consomem mais recursos do sistema.
- RDS for PostgreSQL
Defina max_connections com base na complexidade de suas cargas de trabalho. Para obter detalhes, consulte Especificações de uso da instância.