Probleme pour Configurer MySql en Serveur Dedie - SQL/NoSQL - Programmation
MarshPosté le 19-10-2005 à 18:07:15
Bonjour, j'utilise MySql dans le cadre d'un projet de migration d'une application Vb/Access vers Vb/MySql qui tourne actuellement en production 24H/24 dans des usines.
J'arrive actuellement a la fin de ma migration et je vais donc devoir deployer mon application dans les differentes usines. La migration s'est parfaitement passee. Mon gros soucy reside actuellement sur la configuration de mon serveur MySql. Nous possedons une machine qui sera entierement dediee à l'utilisation de MySql. la config est la suivante:
1 P4 2ghz 1 go RAM 80 go dd windows Srv 2003 MySql server 4.1
La base MySql approche les 2 go. Lors de mon installation de MySql je fais donc les choix necessaires pour que la machine utilise au maximum les ressources qui lui sont allouees. J'ai egalement effectue des recherches sur le web concernant les performances de MySql et les methodes de l'optimiser.
Mais je trouve les reponses encore trop flou concernant ce sujet. J'ai donc encore du mal a maitriser certains points.
Sur une machine de test j'ai installe 2 serveur MySql un serveur fournit avec easyphp que je n'arive pas à reconfigurer à ma guise, qui possede se propre config en standart. Et à cotes j'ai installe un serveur MySql 4.1 seul avec les outils pour l'administrer. J'optimise la configuration de celui-ci en passant par les outils d'admin. J'augmente les valeurs pour l'utilisation des caches pour requetes. j'augmente le nbre de thread / de connection, du keybuffer(40mo) du buffer pool size 100mo thread concurency 10 max connexion 200
et j'obtiens des resultats correctes sur l'execution de grosses requette(select avec jointure / sur des id qui sont bien sur indexes )
par contre je n'arrive pas à comprendre pourquoi lorsque je lance un outil de tests que j'ai develope qui lance un grand nombre d'insert(50000) j'obtiens des resultats desastreux avec mon serveur bien configure(selon moi) et des resultats parfaits avec le serveur MySql fournit dans easyphp(qui possede une configuration de base). sous mysql server4.1 seul je met 2min pour faire la totalite de mes 50000 insert sous mysql fournit par easyphp je met 5sec. les 2 bases sont bien sur les memes issu d'un dump que j'ai cree via mysqldump.
Je lance le gestionnaire des taches de windows durant les 2 tests pour mieux comprendre le comportement du programme et de mysql. dans le 1er cas je vois que mon serveur utilise tres peu le processeur mais swap tout le temps(appel a la ram). dans l'autre cas le programme utilise tout le cpu(100%) et ne swap pas du tout...
Donc ma question est la suivante. Comment faire pour qu'un serveur MySql soit correctement configure pour pouvoir avoir de tres bonnes performances en lecture et aussi en ecriture pour que je puisse avoir la possibilite de le laisser en production... je voudrais donc que mon serveur sache utiliser le cpu dans le cas d'un grand nombre d'insertion et la cache dans le cas d'un grand nombre d'appel a des grosses requetes insert.
Merci de votre aide en esperant avoir ete assez clair
-- Ben younes Ousama - Epitech 5eme annee - Ingenieur developpement A2I (Alliance Internationale Informatique) - Web: http://www.noofs.com
Message édité par ous_a2i le 19-10-2005 à 18:08:08
Marsh Posté le 19-10-2005 à 18:07:15
Bonjour,
j'utilise MySql dans le cadre d'un projet de migration d'une application Vb/Access
vers Vb/MySql qui tourne actuellement en production 24H/24 dans des usines.
J'arrive actuellement a la fin de ma migration et je vais donc devoir deployer
mon application dans les differentes usines.
La migration s'est parfaitement passee.
Mon gros soucy reside actuellement sur la configuration de mon serveur MySql.
Nous possedons une machine qui sera entierement dediee à l'utilisation de MySql.
la config est la suivante:
1 P4 2ghz
1 go RAM
80 go dd
windows Srv 2003
MySql server 4.1
La base MySql approche les 2 go.
Lors de mon installation de MySql je fais donc les choix necessaires pour
que la machine utilise au maximum les ressources qui lui sont allouees.
J'ai egalement effectue des recherches sur le web concernant les performances
de MySql et les methodes de l'optimiser.
Mais je trouve les reponses encore trop flou concernant ce sujet.
J'ai donc encore du mal a maitriser certains points.
Sur une machine de test j'ai installe 2 serveur MySql
un serveur fournit avec easyphp que je n'arive pas à reconfigurer à ma guise,
qui possede se propre config en standart.
Et à cotes j'ai installe un serveur MySql 4.1 seul avec les outils pour l'administrer.
J'optimise la configuration de celui-ci en passant par les outils d'admin.
J'augmente les valeurs pour l'utilisation des caches pour requetes.
j'augmente le nbre de thread / de connection,
du keybuffer(40mo)
du buffer pool size 100mo
thread concurency 10
max connexion 200
et j'obtiens des resultats correctes sur l'execution de grosses requette(select avec jointure / sur des id qui sont bien sur indexes )
par contre je n'arrive pas à comprendre pourquoi lorsque je lance un outil de tests
que j'ai develope qui lance un grand nombre d'insert(50000) j'obtiens des resultats
desastreux avec mon serveur bien configure(selon moi) et des resultats parfaits
avec le serveur MySql fournit dans easyphp(qui possede une configuration de base).
sous mysql server4.1 seul je met 2min pour faire la totalite de mes 50000 insert
sous mysql fournit par easyphp je met 5sec. les 2 bases sont bien sur les memes issu d'un dump que j'ai cree via mysqldump.
Je lance le gestionnaire des taches de windows durant les 2 tests pour mieux comprendre
le comportement du programme et de mysql.
dans le 1er cas je vois que mon serveur utilise tres peu le processeur mais swap tout le temps(appel a la ram).
dans l'autre cas le programme utilise tout le cpu(100%) et ne swap pas du tout...
Donc ma question est la suivante. Comment faire pour
qu'un serveur MySql soit correctement configure pour
pouvoir avoir de tres bonnes performances en lecture
et aussi en ecriture pour que je puisse avoir la possibilite de le laisser en production...
je voudrais donc que mon serveur sache utiliser le cpu dans le cas d'un grand nombre d'insertion
et la cache dans le cas d'un grand nombre d'appel a des grosses requetes insert.
Merci de votre aide en esperant avoir ete assez clair
--
Ben younes Ousama
- Epitech 5eme annee
- Ingenieur developpement A2I (Alliance Internationale Informatique)
- Web: http://www.noofs.com
Message édité par ous_a2i le 19-10-2005 à 18:08:08