2009-02-17 8 views
1

J'ai un site Web ASP.NET volumineux sur une plateforme hébergée. Il partage la machine avec beaucoup d'autres applications. Nous n'avons pas accès à la machine elle-même (seulement un compte FTP). Notre client se plaint qu'il commence à avoir de très mauvais résultats, en particulier aux heures de pointe. J'ai effectué quelques mesures à distance (à l'aide d'un outil de type JMeter) qui me dit que, oui, il se comporte plutôt mal pendant les heures de pointe. Cela ne me dit pas pourquoi. Le client résiste à un transfert vers un serveur dédié sans quelques faits concrets. Comme je le vois, ce dont j'ai besoin, ce sont des données concrètes sur la machine elle-même. La configuration d'un environnement de test de performance local prendrait beaucoup de temps et je n'ai aucun moyen d'estimer les performances du serveur.Mesures de performances ASP.NET sur une plate-forme hébergée

Ma question: est-il un bon moyen de recueillir (beaucoup) de mesures de performances lorsque j'ai un accès limité à la machine, et certainement pas d'accès au moniteur de performance? Tout code devrait fonctionner dans l'application asp.net elle-même, sans trop le visser.

Répondre

1

Nous avons eu un problème similaire avec notre application asp.net hébergée sur un serveur partagé, qui a également commencé à mal fonctionner pendant les heures de pointe.

Bien que je ne connais pas une solution élégante à votre question, voici ce que nous avons fait:

  1. Parlez à vos fournisseurs d'hébergement pour voir quelles informations supplémentaires ils peuvent vous donner - il est dans leur intérêt à garder leurs clients heureux. Nos fournisseurs d'hébergement ont pu nous donner du temps avec l'un de leurs ingénieurs réseau qui nous a fourni des statistiques d'utilisation du processeur et de la mémoire. Prenez vos propres mesures de performance en vidant les informations dans un fichier journal (en utilisant log4net) et/ou dans la base de données - par exemple, sessions utilisateur, temps de recherche, accès aux pages, mesures temporelles autour des principales fonctionnalités. À partir de ces informations, nous avons pu déterminer le comportement normal de nos systèmes pour un nombre donné de tests d'automatisation. Configurez un serveur local (pas nécessairement les mêmes statistiques que le serveur hébergé/de production) avec votre application chargée et effectuez un test de charge/performance/capacité complet (nous avons utilisé ANTS Profiler de Red Gate). Les statistiques que vous en tirerez vous donneront à vous et à votre client une bonne indication de la façon dont le système devrait se comporter sous certaines charges avec un environnement connu. Oui, cela peut prendre beaucoup de temps, mais cela vous donnera un excellent outil de mesure des performances afin que vous puissiez attraper/corriger les goulots d'étranglement localement plutôt que sur la production.

Bonne chance.

Questions connexes