Temps de réponse serveur long : Time to first Byte

Nouveau WRInaute
Bonjour à tous !

J'essaye de résoudre des problèmes de lenteur de réponse de mon serveur web.
Je possède 7 noms de domaine correspondant à un site décliné en 7 langues sur un serveur dédié chez SoYouStart de OVH. Après de multiples tests de rapidité je me suis aperçu que le temps de réponse du serveur (plus précisément le Time to first byte) était de 2,4s.

A savoir que cette lenteur est particulière à un site sur les 8, celui en français (qui est le plus fréquenté aussi). Tous les autres sites ont un temps de réponse de 0,6s...

Tous les sites sont sur une même BD MySQL.
A savoir aussi que le code des sites est le même selon les différents sites, j'ai donc écarté la densité du code et la complexité des requêtes SQL comme cause du problème.

Je me suis aussi renseigné chez OVH pour savoir si cela venait des perfs du serveur, ce n'est pas le cas.

Je m'en remets donc à vos conseils afin d'identifier la cause de ce ralentissement.

Merci pour vos réponses !
 
WRInaute passionné
tu es sur du mutu donc tu ne peut pas utiliser un cache d'opcode, dommage...

sinon, cela ressemble à une lenteur de la base de donnée, peut être un index manquant ou pas optimisé dans ta base sql. vérifie si tu as bien mis des index sur tes tables
 
Nouveau WRInaute
Merci pour ta réponse.
Il est vrai que certains index manquent sur la BD, je m'en vais les rajouter.

En revanche, une question me vient à l'esprit :
Etant donné que tous mes sites sont sur la même BD et utilisent les même requêtes, pourquoi la lenteur se produit uniquement sur un seul de mes domaines ? Si mes index sont défectueux, cela impacterait aussi les autres sites non ?
 
WRInaute passionné
Bonjour,

dans le cas d'un problème de verrou (MyISAM...), les problèmes ne se manifesteront que sur les versions qui ont le plus de trafic. Ça pourrait donc parfaitement correspondre à ton cas.
 
WRInaute accro
Devow a dit:
Tous les autres sites ont un temps de réponse de 0,6s...
Si tu regardes le site de Bool tu verras que c'est encore assez lent comparé à ses 30ms.

frenchhorn a dit:
tu es sur du mutu donc tu ne peut pas utiliser un cache d'opcode, dommage...
D'après ce qu'il a dit, il n'est pas sur un mutu, donc il peut. OpCache est installé (pas activé) par défaut depuis PHP 5.5, sinon APC.
XDebug a un profiler intégré donc tu px voir ce qui met le plus de temps dans ton code.
 
Nouveau WRInaute
Oui je ne suis pas sur du mutu ^^
Il est vrai que le site de Bool est très rapide par rapport au plus rapide des miens...
L'objectif étant d'être sous la barre des 200ms (que recommande Google).

Merci Spout et les autres pour vos conseils, je vais faire quelques tests :)
 
WRInaute passionné
Arf, merci Spout :).

Devow : si ce n'est pas déjà fait, niveau MySQL active le "slow_query_log" avec une valeur assez basse.
Par exemple :
Code:
slow_query_log          = 1
long_query_time         = 0.1

Ça va te générer un (potentiellement gros) fichier contenant toutes requêtes SQL un peu molles, que tu pourras ensuite analyser via un outil tel que "pt-query-digest" (paquet "percona-toolkit" sous Debian). Ça te permettra de mieux cibler les requêtes problématiques.

Sinon niveau PHP, je t'invite à mettre ce type de script en auto_prepend_file. Ça te permettra de voir les scripts qui consomment le plus, et la proportion de conso CPU/externe.
 
Discussions similaires
Haut