Selon http://support.microsoft.com/kb/944884 , "lorsqu'une réponse volumineuse ou des réponses volumineuses sont envoyées à un client via une connexion réseau lente, la valeur du champ de temps pris peut être plus élevée que prévu".
J'ai une situation où un client dira: "J'ai envoyé une demande à votre serveur Web à 10 h 03 min 24 s et cela a pris 20 secondes, pourquoi?". Je peux également voir cela dans les journaux IIS, mais le module ASP.NET du serveur l'a enregistré comme prenant 100 ms, et les compteurs CPU et disque étaient faibles.
Je soupçonne que cela est dû à une connexion réseau lente. Comment puis-je le prouver?
Mettre à jour:
1) Il s'agit de requêtes SOAP Web Service, donc pas de graphiques intégrés, juste un HTTP POST avec une seule page XML de résultats.
2) De plus, j'ai reproduit cela en limitant la vitesse du réseau côté client et les symptômes sont exactement les mêmes.
3) Le problème est intermittent, ce qui signifie que la même demande est normalement rapide pour le client mais parfois lente. Je ne peux pas reproduire cela moi-même autrement qu'en étranglant le réseau. La journalisation ASP.NET du serveur montre qu'il est toujours rapide, mais la journalisation IIS le montre lent lorsque le client dit qu'il est lent.
4) Je n'ai accès qu'au serveur et je dois fournir autant d'informations que possible au client afin qu'ils acceptent que le problème ne soit pas sur le serveur et sachent quels journaux / outils exécuter sur le client pour trouver la cause première.
Réponses:
Cela commence par la recherche de paquets déposés entre le navigateur de votre client et toutes les sources d'images / scripts / html pour la page Web susmentionnée. Si vous trouvez des pertes de paquets cohérentes, alors vous savez avec certitude qu'il y a quelque chose dans le réseau qui doit être corrigé ... même si c'est juste un lien qui est surchargé. Les pertes de paquets ne sont pas la seule raison d'un réseau lent, mais c'est la source la plus courante de mon expérience. D'autres sources peuvent être un proxy ou un moteur de cache mal configuré. Malheureusement, je ne peux pas lister ici tous les coupables du réseau.
Cependant, les gens blâment souvent le réseau, alors qu'en fait les problèmes de vitesse sont bien sous leur contrôle. Explications possibles:
Je pourrais continuer, mais le fait est que vous devez déterminer la raison exacte pour laquelle la page est lente vous-même. Un réseau défectueux est possible; il est également possible que d'autres facteurs contribuent à la lenteur des performances.
Pour diagnostiquer davantage:
curl
jusqu'à ce que vous trouviez quelque chose qui semble beaucoup trop lent, puis découvrez pourquoi cet élément particulier est lent.BTW, les exemples Chrome et Firefox ont utilisé une requête CGI de Debian.org ; ceci est un bon exemple de retard provenant d'une recherche CGI.
Lorsque tout le reste échoue, vous pouvez obtenir un
.pcap
auprès de wirehark et l'exécutertcptrace
; cependant, bien qu'iltcptrace
soit très bon pour analyser les vidages de paquets, il n'y a aucune garantie que vous pouvez isoler le problèmetcptrace
seul. Consultez cette réponse pour plus d'informations sur l'utilisation destcptrace
diagnostics.la source
Le résultat de l'article 944884 du Ko est que le temps réel nécessaire pour terminer la réponse peut ne pas être reflété avec précision dans le journal. C'est pourquoi l'article mentionne l'heure du réseau.
Si le symptôme est reproductible, j'effectuerais une capture de paquets côté serveur (et de préférence côté client également) pour voir l'heure réelle à laquelle la connexion a été reconnue par le client.
la source
Le délai de 20 secondes peut également être dû au fait qu'IIS doit redémarrer son w3wp.exe qui se mettra en veille lorsqu'il n'est pas utilisé.
la source