MySQL max_connections em uma instância do EC2 m1.large

2

Estou executando um servidor MySQL dedicado em uma instância do m1.large EC2, que possui 7,5 GB de RAM.

Qual pode ser um bom número para definir meu valor max_connections ?

    
por Calvin 04.12.2010 / 19:39

2 respostas

1

Máximo (teoricamente) possível uso de memória = Total Server Buffer + (max_connections * Buffer por thread), que é:

key_buffer_size + tmp_table_size + max_heap_table_size + max_heap_table_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + query_cache_size + (max_connections * (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size))

O que será um bom número depende desses componentes. Como você ajustará esses componentes depende do que seu banco de dados faz.

Você pode definir max_connections a 100 e outros parâmetros para valores mais altos que o normal e todos os segmentos serão rápidos devido a buffers grandes, você pode defini-los como 800 e outros parâmetros com valores menores que o normal e DB pode se tornar lento para cada conexão porque lerá dados do disco para cache global.

Então, tudo depende do seu banco de dados, quantos dados ele processará no momento e como você otimizará sua configuração para ele.

Você precisa examinar todos os parâmetros listados aqui para saber quais são os valores ideais para o seu banco de dados. Talvez, sua arquitetura de aplicativo e banco de dados seja tão ruim, que você tenha associações muito grandes e join_buffer_size seja muito grande, ou talvez precise de classificação, portanto, cada thread pode comer mais e mais memória ram, mas isso não significa que todos os threads fará isso ao mesmo tempo. Isso é máximo teórico. Média, os valores ideais podem variar. Você pode ter 10000000 solicitações que exigem apenas 8 MB de RAM por thread para funcionar totalmente com o buffer, mas um thread pode exigir 10 GB de RAM para operar com o buffer. Pode não ser ideal alterar os parâmetros para satisfazer essa consulta grande. Então, depende:)

Permita que seu aplicativo seja executado, colete estatísticas e otimize o BD de acordo, e não vice-versa.

    
por 05.11.2015 / 19:45
0

A resposta depende da carga de trabalho esperada: o número esperado de conexões simultâneas e o tempo esperado de uma conexão. O valor padrão é definido como 100. Para uma máquina boa e dedicada, você pode aumentá-la para algum valor como: 200 , 500 ou até mais! Você pode configurá-lo para algum valor e assistir às conexões do seu banco de dados. Quando você sente que há uma necessidade, você pode aumentar mais. Naturalmente, o valor padrão pode ser pequeno e deve ser aumentado.

O max_connections não é o único parâmetro a ser observado. Há outras coisas que precisam ser feitas para obter um melhor desempenho (como a otimização de consultas). Aumentar o max_connections pode não ser sempre a melhor coisa a fazer.

    
por 05.12.2010 / 09:06