Mysql et ressource CPU

WRInaute occasionnel
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?
 
WRInaute accro
theJB a dit:
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.
 
WRInaute occasionnel
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
 
WRInaute accro
theJB a dit:
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.
 
WRInaute occasionnel
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%.
 
WRInaute accro
theJB a dit:
mon CPU c'est un core 2 DUO.
Donc 2 processeurs.
theJB a dit:
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 dit:
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 dit:
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.
 
Discussions similaires
Haut