Escolhendo um valor para wait_timeout & interactive_timeout na configuração do MySQL?

11

Temos um servidor ativo que está sendo muito afetado, por isso estamos empatando para otimizar tudo o que pudermos. Nós rodamos o script MySQLTuner nele ( link ) que nos diz que devemos definir um valor menor que 28800 para wait_timeout & interactive_timeout. Há muitos números possíveis para escolher entre 1 e 28800!

Eu procurei o significado dessas variáveis na documentação do MySQL, mas isso forneceu apenas uma descrição básica e nenhuma orientação sobre a escolha de um valor.

Existe algum valor considerado como uma prática recomendada geralmente aceita? E qual seria o resultado provável de escolher um valor que fosse muito baixo?

Obrigado,

Bart.

    
por Bart B 05.10.2009 / 16:42

1 resposta

16

wait_timeout é a quantidade de segundos durante a inatividade que o MySQL esperará antes de fechar uma conexão em uma conexão não interativa. interactive_timeout é o mesmo, mas para sessões interativas (shell mysql)

Definir um valor muito baixo pode fazer com que as conexões caiam inesperadamente, especificamente se você estiver usando conexões persistentes em seu aplicativo da Web.

Definir um valor muito alto pode fazer com que conexões antigas permaneçam abertas, impedindo o acesso ao banco de dados.

IMO, por wait_timeout, você deseja que esse valor seja o mais baixo possível sem afetar a disponibilidade e o desempenho. Você pode começar com 10 segundos e aumentá-lo gradualmente se estiver vendo um desempenho degradado.

Para o interactive_timeout, alterar esse valor não aumentará ou diminuirá realmente o desempenho do seu aplicativo.

    
por 05.10.2009 / 17:13