|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 454 ![]() |
Bonjour,
Je ne suis pas certaine que mon problème de perf soit lié à MySQL mais bon... sait-on jamais ! La situation : J'ai un outil qui me sert à faire des "exports" donc ça requete dans tous les sens sur pas mal de tables. Ces tables sont en MyISAM. Les INDEX je suppose sont bien placés. J'ai fait un explain de l'ensemble des requêtes et la plupart sont des eq_ref. Voilà pour le tableau général. Le soucis n'est pas tant l'optimisation du requetage puisque quelques fois, peut être la moitié du temps, il m'arrive d'obtenir mes exports assez rapidement. Mais par contre l'autre moitié du temps j'obtiens des temps d'export assez pharaoniques .Est-ce dû au fait que MySQL ait du mal à "récupérer" ? Je précise que ces exports ne sont pas fait en local, et que cette appli est hébergée sur une distrib. Linux.
__________________
Règle n°1 du forum francophone : Parler le français... Pas de question technique par MP, le forum est fait pour çà, merci. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : mars 2006 Messages : 72 ![]() |
Pour avoir vécu ce genre de situation, je pense que tu devrait tuner ton système d'exploitation :
- Pendant la journée et en particulier pendant tes exports, fais un top (commande linux) ou topas (commande UNIX) pour connaître l'occupation CPU, la gestion mémoire de ton serveur - Fais également un vmstat ou mieux encore utilise l'outil "nmon" (unix ou linux) qui analyse les performances de ton système pendant un temps donné et te génère un fichier excel. Idées en vrac : - As-tu paramétré un query_cache sur ton serveur ( cache des requêtes) ? - si tu as plusieurs disques tu peux spécifier à la création de tes tables un disque pour les données et un pour les index ce qui peut accélérer les temps de réponse - Tu peux faire par crontab des optimize(peut défragmenter tes tables) et analyze(aide l'optimiseur de requêtes) table - Tes fichiers exportés peuvent-ils être écrit sur un autre disque que celui qui héberge les données - Si un jour tu pouvais passer en mysql 5.X, pense que tu pourras utiliser les partitionnements de tables |
|
|
00
|
|
|
#3 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Salut,
J'ajouterais que selon la puissance du serveur et la taille/complexité des exports, de petits ralentissements peuvent être plus ou moins normaux. Un autre outil utile : le slow query log pour identifier les requêtes qui mettent le plus longtemps à s'exécuter.
__________________
Pensez au bouton
|
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 454 ![]() |
Merci pour ton aide jp_rennes. Mon serveur ne dispose que d'un disque (enfin pour le moment) donc de côté là... peux pas faire grand chose.
Mais par contre je vais voir du côté des outils que tu as cité pour analyser ce qui se passe Maximilian ta remarque aurait pu être intéressante malheureusement, c'est pas mon cas. Pour un même export, le premier temps que j'ai eu (et que j'estime "normal") était de 50 sec... J'attends 30 min... Je refais le même export, résultat : 3 min 30 sec grosse nuance.! Discussion en suspend ! Enfin si quelqu'un d'autre à quelque chose à dire... j'suis toujours à l'écoute !
__________________
Règle n°1 du forum francophone : Parler le français... Pas de question technique par MP, le forum est fait pour çà, merci. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 454 ![]() |
Ah oui, en fait j'avais oublié de mentionner quelque chose d'important, qui fait que je ne pense pas être concernée par des requêtes lourdes.
En fait j'ai des milliers de requêtes mais très légères... si ça peut vous éclairer...
__________________
Règle n°1 du forum francophone : Parler le français... Pas de question technique par MP, le forum est fait pour çà, merci. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : février 2006 Messages : 953 ![]() |
Si c'est un serveur de production il est aussi possible que les 3 minutes soient dues à un pic d'activité.
Il y a aussi l'état des caches qui peut jouer : suivant ce qui toune il y a plus ou moins de mémoire disponible ce qui permet au système d'avoir en cache une partie des fichiers de la base ou non (et même s'il y a du cache les fichiers qui s'y trouvent varient suivant l'activité du serveur), idem pour les clefs dans le cache de MySQL qui peuvent être plus ou moins favorables à l'export. Alors un pic, plus de ram, un brin de swap et du coup pas de cache pour les accès disques avec MySQL qui n'a pas gardé les bonne clefs en mémoire, ce serait pas de chance mais comme le dit Murpy... |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 454 ![]() |
Toute façon moi j'ai jamais de chanceuuu
Pour redevenir plus sérieuse, je vais aller voir du côté de mon code si je peux pas trouver des astuces, et du côté de mes requêtes si elles sont bien toutes optimisées avec des tables qui ont des index sur les bons champs... j'ai déjà vérifié mais bon... ça me donnera bonne conscience Car même quand je me servirais des outils de diagnostique... qu'est-ce que je ferais quand je verrais que le proc est en train de cramer ou que la ram n'en peu plus ou que sais-je encore ? C'est long ? Et alors ? Moi j'ai usé beaucoup de la patience qui me restait pour vous pondre ce code !!! Alors seriez aimable de patienter quelques minutes !!!
__________________
Règle n°1 du forum francophone : Parler le français... Pas de question technique par MP, le forum est fait pour çà, merci. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com