mysql : répartition de charge sur plusieurs cpu

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mysql : répartition de charge sur plusieurs cpu

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 16 sept. 2009, 21:01

De rien, je pense même que je vais y jeter un œil moi-même ^-^
Vu que ne j'ai pas grand chose pour tester, si tu peux donner un retour de ton expérience, ça serait sympa :-)

Re: mysql : répartition de charge sur plusieurs cpu

par Berzemus » 14 sept. 2009, 22:08

De rien, je pense même que je vais y jeter un œil moi-même ^-^

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 14 sept. 2009, 22:06

Comme vous êtes 2 à m'avoir aidé, comment faire pour marquer 'résolu' grâce à 2 posts différents ?
Tu choisis l'un ou l'autre indifféremment. Justement à ce propos, en considérant que le problème se poserait souvent, on s'est mis d'accord pour ne pas exploiter cette donnée. D'ailleurs elle n'apparaît plus dans le topic une fois résolu, seul le titre apparaît comme tel :wink:
Bon bah si c'est indifférent. Merci.

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 14 sept. 2009, 22:04

merci à toi et à Berzemus surtout !! =D>

Un copain vient de s'acheter un nouvel ordi et va me donner son ancienne tour (un vieux coucou qui marche super bien). J'essayerai de faire fonctionner mysql sur le réseau local. Ca peut être sympa.
Bravo ,

et merci du retour ,
reste plus qu'à faire des bench , voir si le jeu en vaut la chandelle ..

Bon amusement :)

Ch.

PS: n'oublie pas de passer ton sujet en résolu .

Re: mysql : répartition de charge sur plusieurs cpu

par AB » 14 sept. 2009, 21:22

Comme vous êtes 2 à m'avoir aidé, comment faire pour marquer 'résolu' grâce à 2 posts différents ?
Tu choisis l'un ou l'autre indifféremment. Justement à ce propos, en considérant que le problème se poserait souvent, on s'est mis d'accord pour ne pas exploiter cette donnée. D'ailleurs elle n'apparaît plus dans le topic une fois résolu, seul le titre apparaît comme tel :wink:

Re: mysql : répartition de charge sur plusieurs cpu

par stopher » 14 sept. 2009, 21:02

Bravo ,

et merci du retour ,
reste plus qu'à faire des bench , voir si le jeu en vaut la chandelle ..

Bon amusement :)

Ch.

PS: n'oublie pas de passer ton sujet en résolu .

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 14 sept. 2009, 20:33

Hello,

Alors voici mon retour d'expérience :

1° J'ai (enfin) configuré plusieurs serveurs bien distincts mysql. J'ai également affecté ces serveurs sur des processeurs précis avec taskset. C'est un vrai bonheur à présent. Ca ne me sert à rien, ça demande une gestion compliquée des sockets et des ports mais c'est rigolo :-)

2° j'ai également mis en place mysql-proxy. Bon, c'est pas le plus difficile à mettre en place, même pas du tout. Par contre, je n'ai rien pour tester donc tant pis pour l'instant.

Bon, je considère mon problème comme résolu. Merci à vous deux pour votre inestimable aide !!! :pouce: =D>

-------------
p.s. : Comme vous êtes 2 à m'avoir aidé, comment faire pour marquer 'résolu' grâce à 2 posts différents ?

Re: mysql : répartition de charge sur plusieurs cpu

par Berzemus » 14 sept. 2009, 10:23

Merci !! Dès que j'arrive à lancer 2 serveurs, je donne des news !!
Super, on adore le retour d'expérience :wink:

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 13 sept. 2009, 20:42

J'ai regardé en détail le paquet -proxy. J'ai compris le principe et je pense qu'il va beaucoup m'aider. Je vais essayer de faire comme ça :

1° Essayer de lancer 2 serveurs mysql (je suis dessus depuis 3 bonnes heures sans arriver à configurer correctement mon my.cnf). Ainsi 2 processeurs différents sont susceptibles d'être utilisés.

2° Je vais utiliser mysql-proxy afin de répartir la charge sur l'un ou l'autre des deux serveurs.

Merci !! Dès que j'arrive à lancer 2 serveurs, je donne des news !!

Re: mysql : répartition de charge sur plusieurs cpu

par Berzemus » 13 sept. 2009, 19:55

Mysql propose plein de produits, c'est un peu plus complexe que enterprise, community & cluster.

Comme je le disais, une de ses solutions est le proxy mysql:
http://dev.mysql.com/downloads/mysql-proxy/index.html

A ta place, j'essaierais de voir en profondeur en quoi ça consiste, puisque ça à l'air de faire ce que tu recherche (perso, j'ai jamais eu besoin d'utiliser ni le clustering, ni le proxy).

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 13 sept. 2009, 16:24

Hummm vu vos doutes, je ne dois pas être sur la bonne voie.

Je me dis qu'en fin de compte, le cluster devrait me convenir : je peux diviser mes opérations en 2, ce qui pourrait être réparti sur plusieurs serveurs mysql.

J'ai regardé le site de mysql et je vois qu'il y a 2 types de serveurs : "entreprise" et "cluster" (en plus de ma version de base qui est "community" je pense).

Dois-je changer de mysql pour lancer plusieurs serveurs mysql ? Si oui, je choisis entreprise ou cluster ?

Merci pour votre aide, je commence à voir le bout du tunnel.

Re: mysql : répartition de charge sur plusieurs cpu

par Berzemus » 13 sept. 2009, 01:05

Je ne pense pas que mysql soit intrinsèquement parallèle. Voir même pas du tout. Pour ça, des DB plus orientés vers le parallélisme et la distribution tels que CouchDb sont plus conseillés.

Mais il parait qu'un certain parallélisme est possible avec un proxy mysql:

http://forums.mysql.com/read.php?146,16 ... msg-163523

Mais bref, c'est ardu comme machin :wink:

Re: mysql : répartition de charge sur plusieurs cpu

par stopher » 12 sept. 2009, 22:57

Je ne sais pas si c'est une bonne idée de modifier l'ordonnancement naturel , mais bon , pourquoi pas tester ..

As tu tester la commande http://manpages.ubuntu.com/manpages/jau ... set.1.html ?

Ch.

Re: mysql : répartition de charge sur plusieurs cpu

par kanaille » 12 sept. 2009, 18:58

Vous avez parfaitement répondu à ma question mais malheureusement, je me suis mal exprimé car j'ai jeté un coup d'oeil et ce n'est pas ce que je recherche.

Mon problème est bien plus simple : je suis sous debian, j'ai un processeur 4 coeurs et je trouve dommage que mysql n'utilise qu'un seul processeur et qu'il laisse libre les 3 autres. :(

Quand l'opération prend 3 secondes ce n'est pas grave mais parfois mysql sollicite 5 ou 6 mn le processeur (peu de select et surtout des update/delete/insert) et si je pouvais diviser par 4 ce temps, ça serait quand même mieux. :-k

Une idée svp ?

Re: mysql : répartition de charge sur plusieurs cpu

par stopher » 12 sept. 2009, 11:09

Salut ,

Exactement , comme le dit Berz., tu peux répartir la charge via

du clustering : 3 serveurs minimum

Tu as donc une machine maître , qui repartie les requêtes sur les deux serveurs les select peuvent donc être balancé soit sur l'un soit sur l'autre , par contre , les update / delete / insert sont toujours balancé sur les deux serveurs . afin qu'ils soient toujours identiques


ou

De la réplication ( 2 serveurs mais plus délicat à mettre en place et à maintenir )

Pour la réplication , le principe est simple , un maître , un esclave , l'esclave reproduit tout ce que fait le maître n en temps réel , si le maître tombe en panne , tu peux donc utiliser l'esclave comme roue de secours .
Pour ce qui est de la répartition de charge , c'est au niveau de ton code que ca se passe , tu peux faire pointer les select vers l'esclave , et le reste vers le maître . NE JAMAIS FAIRE DE MODIFICATIONS DIRECTE SUR L'ESCLAVE sinon , ta réplication est brisé . elle ne fonctionne plus !


Voilà .
Good luck,
Ch.