Site WordPress avec une réponse extrêmement lente (uniquement pour la première demande)

J'ai un problème étrange avec mon site WordPress ( http://rohitnair.info/ ). La «première demande» prend des ans pour répondre. Toutes les réponses subséquentes se comportent normalement. Les choses que j'ai observées lors du débogage

  • L'effacement du cache du navigateur et le rechargement fonctionnent bien et la page se charge assez rapidement
  • L'effacement des cookies et le rechargement reproduit le problème.
  • Nslookup, etc. ne prennent pas de temps (donc exclut les problèmes de recherche DNS)
  • Le problème semble être reproductible à partir d'autres machines / réseaux (excluant ainsi les problèmes locaux de machines / réseaux)
  • Rien dans les journaux de requêtes lentes mysql

Je définis ainsi "première demande" dans ce contexte comme une requête sans cookies définie pour le domaine. Un autre moyen simple de reproduire ce problème est d'utiliser curl et de ne pas envoyer de cookies. C'est la sortie de curl -v

$ time curl -v rohitnair.info * About to connect() to rohitnair.info port 80 (#0) * Trying 23.21.171.95... connected * Connected to rohitnair.info (23.21.171.95) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.19.7 (i386-redhat-linux-gnu) libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 > Host: rohitnair.info > Accept: */* > 

une longue attente

[réponse]

 * Connection #0 to host rohitnair.info left intact * Closing connection #0 real 1m0.518s user 0m0.003s sys 0m0.011s 

Comme on peut le voir, le serveur prend plus d'une minute pour renvoyer la réponse.

La pile est wordpress + nginx et hébergé sur l'instance micro Amazon EC2. J'ai également remarqué que la demande n'apparaît pas dans le journal d'accès nginx jusqu'à ce que la réponse soit diffusée ou que la demande soit annulée (je ne sais pas si c'est un comportement attendu). Je suis complètement perdu quant à ce qui pourrait causer ce problème. Toute aide serait très appréciée!

Vous n'avez pas encore exclu DNS, car nslookup n'est pas le même que nginx ou PHP effectuant la demande. Surveillez les demandes de DNS pour voir si l'un d'entre eux est manifestement idiot.

Chaque fois que quelque chose est inopinément lent (requête HTTP, connexion initiale ssh, etc.), mais seulement lent au début , il s'agit généralement d'une requête DNS inverse qui est temporelle.