IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

mysql 5 : Pb semaphore


Sujet :

Administration MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut mysql 5 : Pb semaphore
    Nous recevons « de temps en temps », ce message d’erreur lors d’insertions dans notre base mySQL :

    Unable to open mySQL db connection : Adding the given count to the semaphore would cause it to exceed its maximum count.

    Est ce que quelqu'un connait ce genre de probleme
    Est ce une erreur "normale" ?

    Merci de votre aide

    Cdlt,
    Jean-Philippe

  2. #2
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Je m'avance peut-être un peu, mais ça ressemble plus à un message d'une application cliente que du serveur. Se pourrait-il que l'application (ou son pool de connexion) ait atteint sa limite de connexions ouvertes ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    Bonjour

    Je suis désolé mais je débute en mysql
    As-tu un nom pour une option cliente pour ces connexions ouvertes ?

    Je vais chercher mais ce sera plus rapide si tu connais

    Merci en tout cas de tes infos

    Jeeps64

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    Utilises-tu InnoDB avec beaucoup de connexions concurrentes ?
    Si oui, alors c'est peut-être un problème serveur : InnoDB protège en effet certaines portions de code avec des sémaphores (bon, ça reste plutôt rare comme souci ).

    Stéphane

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    En effet, nous utilisons Innodb avec une centaine de connexions simultanées
    On doit monter à 800 d'ailleurs.

    Je vais chercher des infos sur ton idée
    Y a-t-il un paramétrage possible de ces "sémaphores" ?

    Merci de votre aide en tout cas

    jeeps64

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    J'ai lancé la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    mysql> SHOW INNODB STATUS\G
    *************************** 1. row *************************
    Status:
    =====================================
    090324 11:25:01 INNODB MONITOR OUTPUT
    =====================================
    Per second averages calculated from the last 49 seconds
    ----------
    SEMAPHORES
    ----------
    OS WAIT ARRAY INFO: reservation count 3468, signal count 3454
    Mutex spin waits 0, rounds 152584, OS waits 2453
    RW-shared spins 1759, OS waits 753; RW-excl spins 588, OS waits 101
    On constate beaucoup de OS waits en dernière ligne
    Sur le site mysql, il conseille de diminuer le paramètre innodb_thread_concurrency (actuellement à 18)

    Ce n'est qu'une piste mais je vais commencer par la
    Si vous avez d'autres infos, n'hésitez pas

    jeeps64

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    Le paramètre innodb_thread_concurrency est sans doute la meilleure piste.
    Il existe une autre variable en rapport avec les sémaphores : innodb_sync_spin_loops.

    Stéphane

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    Je vais reconfigurer ces 2 paramètres
    J'ai trouver des recommandations sur le net comme suit :

    innodb_sync_spin_loops= 10 * Number of CPUs
    innodb_thread_concurrency=2 * (Number of CPUs + Number of disks in use for MySQL)


    Est ce que ca te semble correct ?

    je mets en place et je vais voir ce que ca donne

    jeeps64

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    Pour innodb_sync_spin_loops, je ne saurais pas trop te conseiller car je n'ai jamais utilisé cette valeur.

    Pour innodb_thread_concurrency, j'utilise plutôt la métrique suivante : 2 * nb cpu * nb disques
    en sachant que cette formule magique donne plus une limite supérieure qu'une valeur idéale.

    En tout cas, il est important de bien faire des tests en modifiant chaque variable l'une après l'autre pour bien voir l'influence des changements (et sans doute de commencer par innodb_thread_concurrency).

    Stéphane

  10. #10
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    Les tests sont en cours...
    Je vous fais un retour des que possible

    Jeep64

Discussions similaires

  1. [Kylix] Kylix attaque Mysql ?
    Par nahmsath dans le forum EDI
    Réponses: 9
    Dernier message: 12/08/2002, 19h37
  2. [Kylix] [cgi] pb déploiement appli avec connexion MySQL [rés
    Par Nepomiachty Olivier dans le forum EDI
    Réponses: 3
    Dernier message: 06/08/2002, 20h09
  3. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40
  4. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo