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 :

Problème de performance à la connexion


Sujet :

Administration MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut Problème de performance à la connexion
    Bonjour

    (désolé je n'ai pas vraiment trouvé de rubrique où poster ce message)

    J'affiche en bas de mes pages le temps qu'a été utilisé pour la génération de celle-ci. Je suis étonné de voir un temps très différent en ayant changé de config :

    Mon site était hébergé chez OVH mutualisé start10G. Je suis maintenant hébergé chez OVH dédié RPS I.

    La fautive est mysql_connect().
    Cette fonction PHP met 13.8 ms en moyenne a s'exécuter sur ma nouvelle config la dédié, contre seulement 4 ms sur l'ancienne.

    Pourtant, le serveur MySQL 5.0.44 est installé en local sur le serveur. La machine est équipée d'un Intel Atom 230 à 1.6 GHz Hyperthreadé, Linux gentoo.
    C'est surement beaucoup moins que les double-be-Xeon des mutualisés...

    Mais ma question était: est-ce ma configuration matérielle qui explique cette différence de temps ? ou un problème dans mes paramètres apache/php/mysql... ?

    Comment le mesurer ? Comment Optimiser ?

    Est-ce que cette différence (de 10 ms) est de l'attente passive (CPU qui attend un évènement) ou il travail ... ?

    Vous allez me dire qu'on ne va pas rechigner pour 10 ms ? Entre une page qui met 10ms et 20ms au total, ça fait techniquement 2x plus de visiteurs simultanés possible ! J'avoue c'est également une question par curiosité, étonnant d'une telle disparité

    A noter que le reste des requêtes s'effectuent dans un temps correcte. L'utilisation de mysql_pconnect ne change rien. L'utilisation du chemin de la socket plutot que "localhost" ne change rien.

  2. #2
    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
    Citation Envoyé par Baud10 Voir le message
    L'utilisation du chemin de la socket plutot que "localhost" ne change rien.
    Oui, c'est normal, sous Linux, quand on indique localhost, la connexion se fait par défaut avec une socket. Si tu veux utiliser TCP, il faut préciser 127.0.0.1. Tu peux toujours faire le test, bien que les sockets sont réputées plus rapides que les connexions TCP.

    Et pour ton problème de mysql_connect(), as-tu installé un débugger (Xdebug par exemple) qui pourrait te donner plus d'infos ?

    As-tu un changement dans ton my.cnf comme le thread_cache_size ?

    Stéphane

  3. #3
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Mes tests de comparaisons étaient tous basés sur le nom d'hôte du serveur MySQL => donc en socket. La différence ne devrait pas être donc du a ça. Néanmoins, j'avais essayé avec 127.0.0.1, mais la connexion échoue : "Lost connection to MySQL server at 'reading initial communication packet', system error: 111". En spéficiant ":/var/run/mysqld/mysqld.sock" ça fonctionne mais j'ai exactement le même temps.

    Je veux bien essayer de déboguer mais ni les logs d'apache ni de mysql ne contiennent quelque chose de probant. Je vais voir quand même.


    Je n'ai pas de directive "thread_cache_size" dans mon my.cnf.

  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
    Pour voir la taille du thread_cache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW VARIABLES LIKE 'thread_cache_size'
    Ton erreur "Lost connection..." est sans doute due aux paramètres skip-networking ou bind-address.

    Stéphane

  5. #5
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    +-------------------+-------+
    | Variable_name | Value |
    +-------------------+-------+
    | thread_cache_size | 0 |
    +-------------------+-------+
    1 row in set (0.00 sec)


    my.cnf:
    bind-address =127.0.0.1
    skip-networking
    (la directive est spéficiée mais vide)

    ça m'inquiète d'autant plus que sur ma machine virtuelle j'me connecte en 1.6 ms, ce qui fait presque un facteur 10 !

  6. #6
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    A noter que dans le log, c'est affiché:
    090316 22:07:09 [Warning] No argument was provided to --log-bin, and --log-bin-index was not used; so replication may break when this MySQL server acts as a master and has his hostname changed!! Please use '--log-bin=/var/run/mysqld/mysqld-bin' to avoid this problem.
    090316 22:07:10 [Note] /usr/sbin/mysqld: ready for connections.
    Version: '5.0.44-log' socket: '/var/run/mysqld/mysqld.sock' port: 0 Gentoo Linux mysql-5.0.44-r2
    => la socket écoute le port zéro ! (ce qui est confirmé dans SHOW VARIABLES LIKE 'PORT') mais mon my.cnf lui indique 3306.

    D'ailleurs, j'arrive a me connecter en utilisant 'localhost' OU 'localhost:3306' OU 'localhost:0'...

  7. #7
    Membre confirmé Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Par défaut
    Citation Envoyé par Baud10 Voir le message
    Mes tests de comparaisons étaient tous basés sur le nom d'hôte du serveur MySQL => donc en socket. La différence ne devrait pas être donc du a ça. Néanmoins, j'avais essayé avec 127.0.0.1, mais la connexion échoue : "Lost connection to MySQL server at 'reading initial communication packet', system error: 111". En spéficiant ":/var/run/mysqld/mysqld.sock" ça fonctionne mais j'ai exactement le même temps.
    Finalement tu m'as donné l'idée et j'ai testé.
    J'ai mis le nom de la machine au lieu de localhost soit r*censuré*.ovh.net, et la connexion échoue, de la même façon que si je spéficie l'IP public ou 127.0.0.1.

    Tant pis j'aurai essayé ! Merci de ton aide!

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/10/2012, 13h00
  2. [jeu]problème de performance d'un algo
    Par le Daoud dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 30/05/2005, 16h07
  3. [C#] Probléme de performance avec IsDbNull
    Par jab dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/04/2005, 11h39
  4. [oracle 9i][Workbench]Problème de performance
    Par nuke_y dans le forum Oracle
    Réponses: 6
    Dernier message: 03/02/2005, 17h38
  5. [ POSTGRESQL ] Problème de performance
    Par Djouls64 dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 26/05/2003, 16h18

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