Вибір значення для 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 shell)

Встановлення занадто низького значення може спричинити несподіване падіння з’єднань, особливо якщо ви використовуєте стійкі з'єднання у веб-програмі.

Встановлення занадто високого значення може призвести до того, що застарілі з'єднання залишаються відкритими, що перешкоджає новому доступу до бази даних.

IMO, для wait_timeout ви хочете, щоб це значення було якомога нижчим, не впливаючи на доступність та продуктивність. Ви можете почати з 10 секунд і поступово збільшувати його, якщо відчуваєте зниження продуктивності.

Для interactive_timeout зміна цього значення насправді не підвищить або зменшить продуктивність вашої програми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.