O ajuste do mysql pode ser feito com vários scripts.
Mysqltuner, mytop, mysqlreport, tuning-primer ... Esses scripts lhe darão informações detalhadas sobre o seu servidor ...
Por exemplo, verifique o próximo link
Estou enfrentando um problema real com a instância do MySQL para um serviço online. Usamos o hibernate e o c3p0 pool com essas configurações:
c3p0.max_size=200
c3p0.min_size=5
c3p0.timeout=60000
c3p0.max_statements=20
c3p0.idle_test_period=300
c3p0.acquire_increment=3
c3p0.unreturnedConnectionTimeout=70000
Eu notei que o serviço (web site) estava fora do ar, já que ele está recusando a conexão. Eu faço o login no console do MySQL e show processlist
mostrou na lista 30 as conexões sleep (comando) para o banco de dados em questão. E isso me deixa preocupado. Nós esperávamos 200 conexões toda vez e permitimos que a conexão máxima do MySQL fosse 300. Aqui está o my. Cnf
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 8
max_connections = 300
#table_cache = 64
#thread_concurrency = 10
Completamente my.cnf
Eu fiz uma pequena pesquisa e vejo que o tamanho do table_cache precisa ser atualizado de acordo. A máquina é uma máquina quad core rodando o ubuntu 9.10 server 4gb ram
** Pergunta 1: ** Como forçar o c3p0 a liberar conexões inativas.
** Pergunta 2: ** Qual tache_cache e todos os outros parâmetros que preciso corrigir para permitir que o servidor use todo o seu potencial e não recusar conexões
** Pergunta 3: ** Depois que eu reiniciei o Tomcat, as conexões do MySQL caíram para 4. Eu preciso corrigir isso o mais rápido possível e preciso da sua experiência para isso. Mas gostaria de adquirir essa experiência também para o futuro. Qual livro possível você deveria recomendar de ajustes de desempenho para o MySQL para clustering.
O ajuste do mysql pode ser feito com vários scripts.
Mysqltuner, mytop, mysqlreport, tuning-primer ... Esses scripts lhe darão informações detalhadas sobre o seu servidor ...
Por exemplo, verifique o próximo link
A otimização é uma busca sem fim, mas aqui estão algumas coisas que podem ajudar:
max_connect_errors
(eu uso 10, mas você pode tentar mais) table_open_cache
: 2048 é o que eu uso, mas isso depende do número de tabelas no seu aplicativo. query_cache_size
(ou seja, 64 MB)