Bonjour,

Je voudrais optimiser ma base mysql mais je ne sais pas par ou commencer.

Tout d'abord ma configuration :

Server HP (rack), 4 Go memoire, un core duo 2 (Intel Xeon) cadencé a 2.4 Ghtz
OS : Linux 2.6.21-1.3194.fc7 #1 SMP Wed May 23 22:47:07 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux

Version MySQL : mysql Ver 14.12 Distrib 5.0.37, for redhat-linux-gnu (x86_64) using readline 5.0
Pour commencer sur le serveur MySQL il y a énormement de base de données. Actuellement nous en avons 142. Elles sont toutes en format INNODB. Chaque base de donnees a un utilisateur associé.


Lors de mises à jour qui s'effectuent en moyenne toutes les 5 minutes, on execute un script PHP en thread qui se connectent à toutes les bases de données. Pour que l'exécution du script PHP se déroule sans problème il faut utiliser des connexions persistentes. Donc toutes les 5 minutes on se connecte avec chaque utilisateurs à chaque base de données pour realiser la mise à jour. Donc toutes les 5 minutes nous avons au moins 142 connexions simultanées.

En plus de cela il est possible de consulter les données par le biais d'une interface WEB, donc encore des connexions.

On atteind un nombre de connexion simultanées aux alentours de 1500 - 2000, ce qui est à mon avis énorme. Les temps de réponse sont énormes eux aussi alors que les requètes sont très peux complexes (les temps de reponses ont tendances à s'ameliorer avec le temps, je pense que cela vient du fait que MySQL met en cache petit a petit, mais si je redémarre MySQL je peux attendre 10 à 15 minutes pour afficher une page de données).

Je voulais savoir comment je pourrais reduire le nombre de connexions (ou optimiser le temps de réponse), meme si je ne vois pas de solution miracle, car pour moi une connexion c'est un lien entre un utilisateur et une base de données. Donc meme si j'ai un seul utilisateur, il faut qu'il se connecte à 142 bases de données, donc j'aurais la meme quantité de connexion.


Bref je suis vraiment à court d'idées et je voulais l'avis de spécialistes.

PS : les bases de données ont toutes la meme architectures et elles font moins de 50 Mo.


Merci par avance