Déterminer max_connections dans MySQL / MariaDB
Le nombre maximum de connexions à une instance MySQL / MariaDB est un des paramètres qui est très souvent surdimensionné.
Connaître le pic de connexions
Avec max_used_connections, vous disposez d’une variable qui vous permettra de connaître le pic de connexions :
SELECT variable_name, variable_value FROM information_schema.global_status WHERE variable_name = 'max_used_connections';
C’est cette valeur (max_used_connections) que j’utilise pour régler le paramètre max_connections !
Temps de déconnexion
Le fait d’augmenter le paramètre dynamique thread_pool_idle_timeout évite les déconnections incessantes et les temps de latence, du fait des reconnexions. Par défaut, le paramètre est fixé à 60 secondes.
SET GLOBAL thread_pool_idle_timeout=30; -- Chez moi, ajusté au temps moyen de lecture des pages de mon blog
Nombre moyen de connexions
Pour connaître le cumul de connexions (connections) et le temps de fonctionnement de l’instance (uptime), tapez les requêtes suivantes :
SHOW GLOBAL STATUS LIKE 'connections'; SHOW GLOBAL STATUS LIKE 'uptime';
Le nombre moyen de connexions peut être très facilement déterminé par la formule de calcul suivante :
connections / uptime * thread_pool_idle_timeout
Le souci est que ce temps moyen est lui-même tributaire du paramètre thread_pool_idle_timeout.