Question

Je présente mes excuses à l'avance que ce poste est né de la frustration sévère.

J'ai un site Web classique asp qui a été exécuté sous Windows 2000 / IIS5 pendant des années, et un autre site ASP.NET 2.0 que nous avons récemment commencé à courir sur les mêmes serveurs. Jusqu'à présent, tout fonctionne bien.

L'année dernière, j'ai essayé la mise à niveau (installation fraîche) vers Windows 2003 / IIS6. Le site ASP classique a été beaucoup plus lent, environ 50% plus lent en fonction des logs / statistiques en moyenne au cours des semaines d'utilisation. J'ai tout essayé de savoir ce qui était lent. quelques réglages réseau. Intégré. Classique en mode IIS5. En cours. En dehors du processus. Rien ne fait mieux les choses et je roulais bientôt revenir à IIS5 / 2000. Le jour même annulée, la performance a droit à l'endroit où il était. Cela est arrivé sur plus d'un serveur. Finalement, j'ai donné et il écrit à la craie jusqu'à 2003 les problèmes de TCP de quelque sorte.

J'ai récemment installé un Windows 2008 / serveur IIS sur une machine similaire, mais plus puissant dans l'espoir que les choses étaient mieux. Une grande partie de mon bonheur, mon application ASP classique est plus rapide sous Windows 2008. Malheureusement, mon application ASP.NET est 50-75% plus lent pour la raison apparente maintenant. Tout cela est contenu des charges. Il est sur le même réseau que la machine 2000. Le site a été copié directement à partir de l'autre machine, et il est une application web de précompilation du studio 2005.

Alors que la page ne touche la base de données et un autre serveur pour les données initiales, il met en cache à partir de là pour un certain temps, il utilise aussi les mêmes serveurs db que le site classique, qui est rapide, donc je sais que ce n'est pas nécessairement problème de connexion.

J'ai essayé la piscine d'application par défaut et la piscine .NET classique ne fait aucune différence. Upped./check les fils max, max par cpu dans tous les endroits habituels, Garen web ou non rien ne semble à la matière. Je l'ai vérifié deux fois que la compilation debug = false est toujours situé dans le web.config.

Pour une référence rapide, j'ai utilisé ab.exe (Apache Bench) pour envoyer 10 demande, 1 à la fois. Même si j'utilise IE ou Firefox pour frapper le site, il est nettement plus lente que sous 2000, selon même Firebug.

À ce stade, je suis frustré et à une perte complète où commencer. Quelqu'un at-il été à travers ce genre de désordre avant?

Était-ce utile?

La solution 2

Dans mon cas, la réponse est avéré être simple, je tirai Wireshark. Il y avait 1 demande de ressource externe qui ne pouvait pas être résolu puisque la machine d'essai avait pas d'accès direct à l'Internet comme la machine en direct a fait.

Il est toujours les petites choses.

Autres conseils

La vitesse dépend de nombreux facteurs. Vous avez besoin de mesurer les performances que sur le serveur pour comprendre si cela est question du serveur. Activer le suivi pour votre site Web dans la configuration web et voir quelle partie / fonction ralentit vers le bas. Vous pouvez ajouter vos propres traçage après chaque opération pour voir quel bloc de code est plus lent. Je suis sûr que vous trouverez des choses que vous pouvez améliorer / optimiser une fois que vous quelle partie de la page est la plus lente.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top