MySQL muitas conexões

MySQL muitas conexões

No meu servidor tenho 7 bancos de dados. Nosso servidor tem 512 MB de RAM, que estou atualizando esta noite para 2 GB e tem um processador único 2.4.

Recebi um erro sobre o limite de conexão excedido. Com o aumento da minha RAM, posso aumentar o número de conexões? Atualmente está definido como 200, mas uma única página pode se conectar a 3-4 bancos de dados, considerando JOINs e outras coisas.

Configuramos tantos bancos de dados para mera organização. Temos um total de cerca de 250-300 tabelas em todos os bancos de dados.

Qualquer conselho seria apreciado :)

Atualizar

Acontece que tenho muito mais conexões do que pensava....

Com 2 GB de RAM e um único núcleo de 2,4, são precisas 50 conexões de usuário ou devo aumentar isso?

[mysqld]
safe-show-database

skip-locking
safe-show-database

interactive_timeout=30
wait_timeout=30
connect_timeout=10
max_user_connections=50
max_connections=1000

key_buffer=64M
join_buffer=2M
record_buffer=2M
sort_buffer=4M
max_allowed_packet=24M

query_cache_limit = 2M
query_cache_size = 64M
query_cache_type = 1

tmp_table_size=128M
table_cache=2048
thread_cache=256
thread_concurrency=1

Responder1

Você deve ser capaz de aumentar substancialmente suas conexões. No entanto, se você não ajustar corretamente o uso de memória por thread, você corre o risco de o MySQL ficar sem memória. MySQL ficar sem memória pode ser uma situação desastrosa e é melhor evitar.

Um exemplo do que acontece quando você não ajusta corretamente:

MySQL continua reiniciando devido a falta de memória

Algumas recomendações de ajuste anteriores que forneci:

Como configuro my.cnf no Mysql para que não haja limites de conexões?

O link paraUso de memória InnoDBinclui uma fórmula para calcular o uso de memória do InnoDB, que você pode inserir em uma planilha para calcular o uso de memória por thread.

Aqui estão mais algumas informações sobreUso de memória do servidor MySQL.

Em última análise, seu objetivo deve ser calcular o uso máximo de memória por thread com base na sua configuração. Depois de calculado, você pode definir o máximo de conexões com o valor adequado.

Responder2

Em máquinas de 1 GB, definimos rotineiramente max_connections para 750 sem problemas

Responder3

Se você usa PHP, edite o arquivo de configuração do php, geralmente em /etc/php.ini e altere a persistência para OFF.

[MySQL]; Permitir ou impedir links persistentes. mysql.allow_persistent = Desativado

Isso é tudo. Reinicie o Apache.

informação relacionada