Выбор значения для wait_timeout & interactive_timeout в конфигурации MySQL?

12

У нас есть живой сервер, который сильно пострадал, поэтому мы стараемся оптимизировать все, что можем. Мы запустили скрипт MySQLTuner на нем ( http://mysqltuner.com/ ), который говорит нам, что мы должны установить значение меньше 28800 для wait_timeout & interactive_timeout. Есть много возможных номеров на выбор от 1 до 28800!

Я посмотрел значение этих переменных в документации MySQL, но это дало только очень простое описание и никаких указаний по выбору значения.

Есть ли ценность, которая считается общепринятой передовой практикой? И каков будет вероятный результат выбора значения, которое было слишком низким?

Благодарность,

Барт.

Барт Б
источник

Ответы:

19

wait_timeout - это количество секунд в течение неактивности, которое MySQL будет ожидать, прежде чем закроет соединение по неинтерактивному соединению. interactive_timeout такой же, но для интерактивных сессий (оболочка mysql)

Установка слишком низкого значения может привести к неожиданному обрыву подключений, особенно если вы используете постоянные подключения в веб-приложении.

Установка слишком высокого значения может привести к тому, что устаревшие соединения останутся открытыми, что предотвратит новый доступ к базе данных.

IMO, для wait_timeout вы бы хотели, чтобы это значение было как можно ниже, не влияя на доступность и производительность. Вы можете начать с 10 секунд и постепенно увеличивать его, если вы видите снижение производительности.

Для интерактивного тайм-аута изменение этого значения не приведет к увеличению или снижению производительности вашего приложения.

Чарльз Хупер
источник