Mysql et ressource CPU

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Mysql et ressource CPU

Message le Dim Nov 25, 2007 21:50

Hello,
J'ai un script qui fait pas mal de requete mysql qui me prend 33% du CPU quand il s'execute et je remarque que sous la commande TOP, pour la ligne correspondant à mysql il est indiqué 100%.
Est-ce que ça veut dire que mysql est bridé pour ne pas consommer plus de 33% de cpu par script?


phpmikedu83
WRInaute passionné
WRInaute passionné
 
Messages: 1281
Inscription: 6 Aoû 2005

Message le Dim Nov 25, 2007 22:04

Tu devrais optimiser tes indexs de tables ;-)

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Message le Lun Nov 26, 2007 0:26

euh oué.. mais c sur une requete de copie de table..

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Re: Mysql et ressource CPU

Message le Lun Nov 26, 2007 0:50

theJB a écrit:J'ai un script qui fait pas mal de requete mysql qui me prend 33% du CPU quand il s'execute et je remarque que sous la commande TOP, pour la ligne correspondant à mysql il est indiqué 100%.
Est-ce que ça veut dire que mysql est bridé pour ne pas consommer plus de 33% de cpu par script?


Je ne comprends pas très bien... Qui prend 33% et qui prend 100%? Comment est-ce mesuré dans les deux cas? J'ai vaguement compris que mysql prend 100% du CPU tel qu'indiqué par top, mais je n'ai pas compris qui prenait 33% (mysql? le processus client?) et comment c'était mesuré (top? autre chose?)?

Jacques.

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Message le Lun Nov 26, 2007 9:21

dans top tu as en haut gauche la charge du cpu (33%)
et puis sur chq ligne pr chq process le % cpu consommé (100%)

Et moi aussi je pige pas, d'ou mon post

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Message le Lun Nov 26, 2007 11:23

theJB a écrit:dans top tu as en haut gauche la charge du cpu (33%)
et puis sur chq ligne pr chq process le % cpu consommé (100%)


Euh, tu as une ligne avec plusieurs valeurs: user, nice, system, interrupt, idle... Il faut faire le total (excepté idle) pour connaître la consommation CPU totale, pas prendre juste la partie "user"...

Sinon sur un système multi-CPU (y compris hyperthreadé ou multi-core), le % par processus est me semble-t-il relatif à un processeur, alors que les % totaux (en haut) sont globaux (à vérifier, ça dépend probablement aussi des versions de top ou de l'OS).

Avec ça les choses sont elles plus cohérentes?

Jacques.

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Message le Lun Nov 26, 2007 11:32

mon CPU c'est un core 2 DUO.

justement le process mysql prend 100% sur la ligne CPU.
mais la charge globale est de 33%.

Je me demandais donc seulement si c'etait possible d'expliquer cela par le fait que chq process mysql serait bridé à 33% du CPU sur mon serveur.

J'ai d'ailleurs fait le test avec 2x le même process.
La ligne mysql dans les process est à 200% tandis que la charge globale est de 66%.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2678
Inscription: 13 Fév 2004

Message le Lun Nov 26, 2007 11:46

theJB a écrit:mon CPU c'est un core 2 DUO.

Donc 2 processeurs.
theJB a écrit:justement le process mysql prend 100% sur la ligne CPU.
mais la charge globale est de 33%.

En comptant user + system + nice + interrupt? Ca devrait être 50%.
theJB a écrit:Je me demandais donc seulement si c'etait possible d'expliquer cela par le fait que chq process mysql serait bridé à 33% du CPU sur mon serveur.

Un process (ou un thread) est forcément limité à l'utilisation d'un seul processeur, donc quand il y en a plusieurs, il ne peut pas tous les utiliser en même temps. Si tu obtiens 50% c'est normal. Si tu obtiens (au total) 33%, soit tu as en fait 3 processeurs (!) soit il y a quelque chose qui ne sait pas compter :-)
theJB a écrit:J'ai d'ailleurs fait le test avec 2x le même process.
La ligne mysql dans les process est à 200% tandis que la charge globale est de 66%.

De mémoire mysql utilise des threads (un par client), donc c'est normal, il utilise deux processeurs à 100% chacun. Et tu devrais avoir 100% utilisés au total (en comptant tout sauf idle), à moins que tu n'aies 3 processeurs...

Jacques.

theJB
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 411
Inscription: 7 Avr 2006

Message le Lun Nov 26, 2007 17:44

d'accord ça explique tout!
en tout cas merci bcp pr ces infos


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité