Fonction mysql_connect() lente à executer

10 réponses
AuteurMessage

tony |
Membre

 

Inscrit le : 20/02/2006

# Le 28/01/2008 à 21:08

Comme je sais qu'il y a des pros du dev sur ce forum, j'aurais un petit probleme à vous soumettre.

Je constate une certaine lenteur à l'éxécution de scripts php utilisant un accès sql.

J'ai donc testé une page concerné en ajoutant entre chaque requete sql une fonction maison permettant de calculer le temps d'éxécution de chaque requete.

A ma grande surprise, j'obtiens des résultats corrects pour toutes les requetes SELECT FROM..., le probleme vient juste de la déclaration de la connexion à la bdd mysql_connect()

$db = mysql_connect($host,$loginbd,$passbd)OR DIE("Erreur SQL");

Cette ligne à elle seule peut prendre 7000 ms...

Auriez vous une idée ou une piste d'où cela peut provenir ?

Tony

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/01/2008 à 21:27

Hello,

diverses possibilités :
- résolution DNS un peu naze sur le serveur web (si ton $host est du genre "sql.truc.bidule" au lieu de l'IP)
- réverse DNS un peu naze sur le serveur mysql (si le reverse DNS est activé)
- pertes sur le réseau (si le serveur MySQL est en chine et le serveur web en france)
- quota sur le firewall
- surcharge du serveur mysql (vérifier aussi le slow_launched_threads)
- ou bug de l'espace, comme je me trimballe depuis plusieurs semaines

Bon courage

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tony | Tony
Membre

 

Inscrit le : 20/02/2006

# Le 28/01/2008 à 21:32

Merci pour ta réponse ultra rapide !

J'utilise bien l'ip pour me connecter, le serveur sql est bien en france, pour le reste je vais indiquer les pistes que tu me donne à mon hebergeur.

Au fait c'est quoi le "slow_launched_threads" ? Même google ne connait pas !

Tony

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/01/2008 à 23:24

En fait c'est Slow_launch_threads (cf aussi thread_cache_sizeOuvrir dans une nouvelle fenetre ).

Par contre, si la plupart de ces lenteurs correspondent à des chiffres "ronds", du genre 7000ms à 7009ms, et bien tu as certainement le même soucis que moi ; ce que je ne te souhaite pas (enfin, sauf si ton hébergeur trouve la cause, là ça m'intéresse).

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tony | Tony
Membre

 

Inscrit le : 20/02/2006

# Le 28/01/2008 à 23:36

Je vais regarder ça ;)

Tu as ce probleme sur mysql_connect() aussi ?

Tony

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 28/01/2008 à 23:39

Oui, sur mysql_connect(), avec des latences de 3'000, 9'000 voir 27'000ms... ce qui a légèrement tendance à plomber l'affichage des pages.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

tony | Tony
Membre

 

Inscrit le : 20/02/2006

# Le 28/01/2008 à 23:51

Oué tu m'étonnes...

Pour ma part c'est variable, là je refais un test : 4.564 ms

Puis ça peut aussi être lent avec des pages mises en cache, donc pas d'accès sql, sans saturation d'apache....

A s'en arracher les cheveux !!!

Tony

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 29/01/2008 à 01:00

Pourquoi tu cherches du côté de mysql alors si ça le fait meme quand tu te connectes pas à mysql ?

T'as quoi comme valeur si tu tapes par ssh sur le serveur :
#sysctl net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_count

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

tony | Tony
Membre

 

Inscrit le : 20/02/2006

# Le 29/01/2008 à 12:24

Rano a dit :
Pourquoi tu cherches du côté de mysql alors si ça le fait meme quand tu te connectes pas à mysql ?


Car je pense qu'il y a un double probleme : sql et apache... Le probleme SQL ne peut pas être lié à apache car c'est des serveurs différents.

Rano a dit :
T'as quoi comme valeur si tu tapes par ssh sur le serveur :
#sysctl net.nf_conntrack_max net.ipv4.netfilter.ip_conntrack_count


La commande donne une erreur :
error: 'net.nf_conntrack_max' is an unknown key
error: 'net.ipv4.net' is an unknown key

Tony

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 29/01/2008 à 12:27

Sous quelle distribution ?

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

tony | Tony
Membre

 

Inscrit le : 20/02/2006

# Le 29/01/2008 à 13:04

Je n'y connais rien malheureusement...

Je t'ai mis en MP les informations de sysctl si tu vois quelque chose de bizare dis moi. merci.

Tony

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 24/11/2024 13:42:33 | Généré en 6.59ms | Contacts | Mentions légales |