2008-11-08 15 views
3

J'ai un nouveau serveur VPS, et j'essaie de le connecter à un autre serveur du même FAI. Lorsque je me connecte via l'outil de ligne de commande de mysql, la connexion est très rapide.Php - Connexion à la base de données distante très lente

Lorsque j'utilise PHP pour me connecter à la base de données distante, le temps de connexion peut prendre jusqu'à 5 secondes. Les requêtes après cela sont exécutées rapidement.

Ceci n'est pas limité à mysql, l'utilisation de file_get_contents() pour télécharger un fichier de presque tous les autres serveurs donne le même décalage. Utiliser wget pour obtenir le fichier n'a pas ce décalage.

J'ai chronométré les requêtes DNS depuis PHP en utilisant dns_get_record(), et celles-ci sont rapides (1-2 millisecondes).

Des réflexions sur ce que dans la configuration php peut être à l'origine?

Merci.

Répondre

1

J'ai fini par passer de PHP 5.1.6 à PHP 5.2.6, et le problème a disparu. Il était certainement un problème de recherche DNS au sein de PHP, ce qui suit prendrait environ 5 secondes pour courir:

gethostbyname('example.com') 

J'ai un IPV6 sentiment était un problème (la plupart du temps une intuition à la lecture de cette ligne), mais je n » Je n'ai aucune preuve.

2

Je voudrais vérifier pour voir quel mode PHP est en cours d'exécution, est-ce pour une raison quelconque exécuter les scripts en tant que CGI. Fondamentalement, PHP lui-même est vraiment lent, et c'est seulement visible lors de l'exécution d'opérations à distance.

Vérifiez la configuration du serveur Web. Aussi, si c'est une option, essayez PHP depuis la ligne de commande et voyez s'il fonctionne mieux sans la couche du serveur web.