OVH Cloud OVH Cloud

Performances utilisées par une BDD

10 réponses
Avatar
poiuytreza
Bonjour,

J'ai une BDD MySQL hébergée sur le serveur dédié d'un ami.
Celui-ci m'indique qu'il suppose que notre BDD lui mange un peu trop de
ressoureces, sans en être vraiment certain...
Quels sont les outils de monitoring qu'il pourrait utiliser pour que l'on
puisse vraiment mesurer les ressources consommées par notre BDD sur son
serveur??

Merci pour vos réponses;)

10 réponses

Avatar
poiuytreza
"poiuytreza" <no_email> a écrit dans le message de
news:422dd53b$0$17143$
Bonjour,

J'ai une BDD MySQL hébergée sur le serveur dédié d'un ami.
Celui-ci m'indique qu'il suppose que notre BDD lui mange un peu trop de
ressoureces, sans en être vraiment certain...
Quels sont les outils de monitoring qu'il pourrait utiliser pour que l'on
puisse vraiment mesurer les ressources consommées par notre BDD sur son
serveur??

Merci pour vos réponses;)




Pas de réponses...?? Ca doit bien exister pourtant?? Peut être même en
standard dans les distrributions LINUX non??
Merci!

Plus généralement, comment dimensionnez-vous vos serveurs et comment vous
rendez-vous compte qu'il y a saturation???
Avatar
Patrick Mevzek
Le Tue, 08 Mar 2005 17:39:22 +0100, poiuytreza a écrit :
Quels sont les outils de
monitoring qu'il pourrait utiliser pour que l'on puisse vraiment mesurer
les ressources consommées par notre BDD sur son serveur??



Monitoring en général de la machine:
- espace disque
- load average
- usage de la mémoire
- nombre de process s'exécutant, notamment mysql qui vous intéresse
(puisque fork)

Après, dans le tas il faut arriver à voir ce qui est dû au SGBDR.
Ces derniers permettent en général de mettre en log les requêtes
exécutées, voire le temps/les ressources nécessaires. Regardez de ce côté
là.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
mordicus
Patrick Mevzek wrote:

Le Tue, 08 Mar 2005 17:39:22 +0100, poiuytreza a écrit :


[snip]
Monitoring en général de la machine:
- espace disque
- load average
- usage de la mémoire
- nombre de process s'exécutant, notamment mysql qui vous intéresse
(puisque fork)




Hum, mysql ne fork pas, il utilise les threads, et si il tourne sur un linux
avec un kernel 2.6.x, il n'y a reelement qu'un seul process qui est afficher
par ps ou top (contrairement aux kernel 2.4.x).
Avatar
Patrick Mevzek
Le Wed, 09 Mar 2005 07:37:41 +0100, mordicus a écrit :
- nombre de process s'exécutant, notamment mysql qui vous intéresse
(puisque fork)




Hum, mysql ne fork pas, il utilise les threads, et si il tourne sur un
linux avec un kernel 2.6.x, il n'y a reelement qu'un seul process qui
est afficher par ps ou top (contrairement aux kernel 2.4.x).



Suffit alors de compter le nombre de threads plutot que le nombre de
process, qui ont plutot intérêt à apparaitre.

D'autre part il existe peut-être des outils internes (PostgreSQL dispose
de vues dédiées par exemple) pour connaitre
- le nombre de connexions actuelles
- les requêtes executées
- et tout un tas d'autres statistiques.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
mordicus
Patrick Mevzek wrote:

Le Wed, 09 Mar 2005 07:37:41 +0100, mordicus a écrit :

- nombre de process s'exécutant, notamment mysql qui vous intéresse
(puisque fork)





Hum, mysql ne fork pas, il utilise les threads, et si il tourne sur un
linux avec un kernel 2.6.x, il n'y a reelement qu'un seul process qui
est afficher par ps ou top (contrairement aux kernel 2.4.x).




Suffit alors de compter le nombre de threads plutot que le nombre de
process, qui ont plutot intérêt à apparaitre.




Encore une fois, cette technique ne marche pas sur des Kernel linux
2.6.x. Il n'y a plus qu'un process d'afficher et pas les threads, ce qui
est normal et qui etait un probleme avec les 2.4.x.

D'autre part il existe peut-être des outils internes (PostgreSQL dispose
de vues dédiées par exemple) pour connaitre
- le nombre de connexions actuelles
- les requêtes executées
- et tout un tas d'autres statistiques.




Peut etre, je ne sais pas, ça fait longtemps que je n'utilise plus MySQL
Avatar
Patrick Mevzek
Le Wed, 09 Mar 2005 14:08:26 +0100, mordicus a écrit :
Encore une fois, cette technique ne marche pas sur des Kernel linux
2.6.x. Il n'y a plus qu'un process d'afficher et pas les threads, ce qui
est normal et qui etait un probleme avec les 2.4.x.



Non ce n'est pas ``normal''. Les threads noyaux sont bien affichés....
(tant en 2.4.x qu'en 2.6.y)

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
mordicus
Patrick Mevzek wrote:

Le Wed, 09 Mar 2005 14:08:26 +0100, mordicus a écrit :

Encore une fois, cette technique ne marche pas sur des Kernel linux
2.6.x. Il n'y a plus qu'un process d'afficher et pas les threads, ce qui
est normal et qui etait un probleme avec les 2.4.x.




Non ce n'est pas ``normal''. Les threads noyaux sont bien affichés....
(tant en 2.4.x qu'en 2.6.y)





Huh ? Je viens de test etant donnée que tu m'a mis le doute, et les
threads ne sont *pas* affichés en 2.6.x. Heu, sauf si evidement tu
utilise linuxthread au lieu ne la nptl qui va avec les nouvelle glibc et
les 2.6.x. Dans ce cas la, oui, meme en 2.6.x les threads sont affichés.

Mais bonjour les perfs dans ce cas la...

Mais quand la glibc est a jour et que tu utilise la nptl, ce qui est le
comportement par defaut, les threads ne sont pas affichés. Pas par
defaut en tout cas.

Mais, effectivement, meme avec un kernel 2.6.x tu peux les afficher avec
ps en utilisant les options -H ou -L.

Mais encore une fois, le comportement par defaut des systemes à base de
kernel 2.6.x utilisant la nptl (qui est la lib par defaut) est de ne pas
afficher les threads.

Et pour moi, il est normal de ne pas voir les threads, par defaut en
tout cas. Quand je lance mes softs java, j'aime bien ne pas voir 50
"process" java alors qu'il n'y en a qu'un et 50 threads.
Avatar
Patrick Mevzek
Le Wed, 09 Mar 2005 15:04:32 +0100, mordicus a écrit :
Non ce n'est pas ``normal''. Les threads noyaux sont bien affichés....
(tant en 2.4.x qu'en 2.6.y)



Huh ? Je viens de test etant donnée que tu m'a mis le doute, et les
threads ne sont *pas* affichés en 2.6.x.



A bon c'est quoi ca alors dans mon top ?

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2 root RT 0 0 0 0 S 0.0 0.0 0:00.28 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:01.10 migration/1
5 root 34 19 0 0 0 S 0.0 0.0 0:00.25 ksoftirqd/1
6 root 5 -10 0 0 0 S 0.0 0.0 0:00.20 events/0
7 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 events/1
8 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 khelper
[..]

si ce ne sont pas des threads noyau....

Mais, effectivement, meme avec un kernel 2.6.x tu peux les afficher avec
ps en utilisant les options -H ou -L.



Ah enfin... on y arrive.

Mais encore une fois, le comportement par defaut des systemes à base de
kernel 2.6.x utilisant la nptl (qui est la lib par defaut) est de ne pas
afficher les threads.



Le comportement par défaut des applications (top, ps, etc...) est
peut-être de ne pas les afficher. C'est un choix, comme un autre, il n'y
a rien de normal ou d'anormal.
Ca ne veut pas dire qu'on ne peut pas les afficher si on veut, notamment
pour faire des statistiques.

La situation est bien différente d'avec l'époque où l'on a commencé à
introduire les threads sous Linux notamment : à ce moment là c'était des
threads purement utilisateurs, le scheduler dans le noyau ne les voyait
même pas c'était une seule et unique application, et donc là on ne
pouvait pas les afficher avec des outils comme ps ou top.
Maintenant ce sont des ``vrais'' threads, visibles par l'OS.

Et pour moi, il est normal de ne pas voir les threads, par defaut en
tout cas. Quand je lance mes softs java, j'aime bien ne pas voir 50
"process" java alors qu'il n'y en a qu'un et 50 threads.



Les goûts et les couleurs...

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Avatar
mordicus
Patrick Mevzek wrote:

Le Wed, 09 Mar 2005 15:04:32 +0100, mordicus a écrit :

Huh ? Je viens de test etant donnée que tu m'a mis le doute, et les
threads ne sont *pas* affichés en 2.6.x.




A bon c'est quoi ca alors dans mon top ?

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2 root RT 0 0 0 0 S 0.0 0.0 0:00.28 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/0
4 root RT 0 0 0 0 S 0.0 0.0 0:01.10 migration/1
5 root 34 19 0 0 0 S 0.0 0.0 0:00.25 ksoftirqd/1
6 root 5 -10 0 0 0 S 0.0 0.0 0:00.20 events/0
7 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 events/1
8 root 5 -10 0 0 0 S 0.0 0.0 0:00.00 khelper
[..]

si ce ne sont pas des threads noyau....




Tiens, moi mon top il affiche events/0 mais quand je lance java avec la
demo des jfc, il affiche java et c'est tout. Ou ils sont mes threads java ?

Puis, depuis quand events/0 events/1 events/2 events/3 c'est des threads ?!

Moi, tout ce que je vois c'est que tu as un bi processeur ou alors un P4
avec l'HT d'activé.

Un ps auxH m'en affiche 15 de java.
un ps aux comme au temps de la 2.4 m'en affiche un seul ! avec les
kernel 2.4 il en affiche environs 15.


Mais, effectivement, meme avec un kernel 2.6.x tu peux les afficher avec
ps en utilisant les options -H ou -L.




Ah enfin... on y arrive.



Oui, mais encore une fois, c'est pas le comportement par defaut et c'est
ca qui change d'un point de vue strictement utilisateur entre les kernel
2.4.x et 2.6.x.
Quelqu'un qui migre et qui s'attend a voir les threads mysql avec top ou
ps aura forcement une surprise.

Et du point de vue du kernel, les deux sont completement different,
aujourd'hui avec les 2.6.x nous avons de *vrai* threads posix ce qui
n'etait pas le cas avec les 2.4.x (j'en sais quelque chose, je me suis
assez pris la tete a fair du portage).


Mais encore une fois, le comportement par defaut des systemes à base de
kernel 2.6.x utilisant la nptl (qui est la lib par defaut) est de ne pas
afficher les threads.




Le comportement par défaut des applications (top, ps, etc...) est
peut-être de ne pas les afficher. C'est un choix, comme un autre, il n'y
a rien de normal ou d'anormal.
Ca ne veut pas dire qu'on ne peut pas les afficher si on veut, notamment
pour faire des statistiques.



Jamais dis le contraire.


La situation est bien différente d'avec l'époque où l'on a commencé à
introduire les threads sous Linux notamment : à ce moment là c'était des
threads purement utilisateurs, le scheduler dans le noyau ne les voyait
même pas c'était une seule et unique application, et donc là on ne
pouvait pas les afficher avec des outils comme ps ou top.
Maintenant ce sont des ``vrais'' threads, visibles par l'OS.



Maintenant ... ca date un peu ton maintenant, depuis les linuxthread top
ps et autres affichent les threads, sauf que depuis les 2.6 le
comportement a changer puisque la facon meme de gerer les threads dans
le kernel à changer.

Maintenant, si tu utilise les gnupth effectivement c'est un autre probleme.


Et pour moi, il est normal de ne pas voir les threads, par defaut en
tout cas. Quand je lance mes softs java, j'aime bien ne pas voir 50
"process" java alors qu'il n'y en a qu'un et 50 threads.




Les goûts et les couleurs...



C'est pas une question de goûts et de couleurs, mais bon.
Sur tout les Unix c'est comme ca, il n'y a que sous linux qui ne
disposait pas jusqu'a maintenant de vrai threads posix que le
comportement etait "mauvais".

Mais je crois que l'on va arreter ici, puisque apparement nous disons
pratiquement la meme chose sans arriver à nous entendre.
Avatar
Patrick Mevzek
Le Wed, 09 Mar 2005 15:53:32 +0100, mordicus a écrit :

Tiens, moi mon top il affiche events/0 mais quand je lance java avec la
demo des jfc, il affiche java et c'est tout. Ou ils sont mes threads
java ?



Ce sont des threads user pas des threads noyaux.

Puis, depuis quand events/0 events/1 events/2 events/3 c'est des threads
?!



Toutes les entrées où la mémoire (VIRT, SIZE, etC...) est à 0 sont des threads noyaux.

Moi, tout ce que je vois c'est que tu as un bi processeur ou alors un P4
avec l'HT d'activé.



Ni l'un, ni l'autre, mauvaise pioche.

Autre exemple:
2 root 9 0 0 0 0 SW 0.0 0.0 0:00 keventd
3 root 18 19 0 0 0 SWN 0.0 0.0 0:00 ksoftirqd_CPU0
4 root 9 0 0 0 0 SW 0.0 0.0 0:00 kswapd
5 root 9 0 0 0 0 SW 0.0 0.0 0:00 bdflush
6 root 9 0 0 0 0 SW 0.0 0.0 0:00 kupdated
7 root 9 0 0 0 0 SW 0.0 0.0 0:00 xfsbufd
8 root 9 0 0 0 0 SW 0.0 0.0 0:00 xfslogd/0
9 root 9 0 0 0 0 SW 0.0 0.0 0:00 xfsdatad/0
99 root 9 0 0 0 0 SW 0.0 0.0 0:00 khubd
[..]
uname -r
2.4.29-grsec
grep name /proc/cpuinfo
model name : Intel(R) Pentium(R) III Mobile CPU 866MHz


Le comportement par défaut des applications (top, ps, etc...) est
peut-être de ne pas les afficher. C'est un choix, comme un autre, il
n'y a rien de normal ou d'anormal.
Ca ne veut pas dire qu'on ne peut pas les afficher si on veut,
notamment pour faire des statistiques.



Jamais dis le contraire.



Ah ?
Quand j'ai dit qu'il suffisait de compter les threads, vous avez répondu:
cette technique ne marche pas.

Et pour moi, il est normal de ne pas voir les threads, par defaut en
tout cas. Quand je lance mes softs java, j'aime bien ne pas voir 50
"process" java alors qu'il n'y en a qu'un et 50 threads.




Les goûts et les couleurs...



C'est pas une question de goûts et de couleurs, mais bon.



Les valeurs par défaut (et donc ici l'affichage ou non des threads) sont
typiquement des questions de gouts et de couleurs.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>