2008-10-02 6 views
28

Il existe des lots de compteurs disponibles dans perfmon pour ASP.NET. Quels sont les meilleurs (je pense à choisir 5-10) qui seront les meilleurs à surveiller dans notre environnement de test afin que nous puissions faire un retour sur les développeurs.Quels sont les meilleurs compteurs de performance ASP.NET à surveiller?

Je pense à des choses comme le temps de demande, demande la longueur de la file d'attente, les sessions actives, etc.

Répondre

20

Pour un (test non performance/stress) normal, vous seriez bien ce qui suit:

  • Demande octets Out total (applications très important, surtout pour le Web (non intranet))
  • demandes ayant échoué
  • demandes/s
  • erreurs lors de l'exécution
  • erreurs non prises en charge pendant l'exécution
  • session Connexions SQL Server total
  • Etat serveur Sessions actives

Pour les tests de performance que vous voulez probablement des choses comme:

  • % Utilisation du processeur (assurez-vous de vérifier que l'utilisation du processeur est très faible et que cela indique peut-être que quelque chose est mort)
  • Demandes
  • Mis en attente Cache de sortie Clics
+6

Comment demande Bytes Out total importante (ou même utile)? C'est juste un nombre sans cesse croissant de tous les octets envoyés. –

+0

Puis-je obtenir ces valeurs *** par programmation *** en utilisant 'Powershell et WMI'? –

9

ceux que j'utilise le plus sont les compteurs de mémoire. Tous. Je sais qu'ils ne sont pas spécifiques à ASP.NET, mais les seuls problèmes que j'ai jamais eu avec une application web étaient des problèmes de mémoire.

Le tas excessif, les collections gen 2 et le% temps en GC sont les plus importants. Si votre temps au sein du GC devient incontrôlable, c'est un signe que votre interface utilisateur et viewstate sont trop gros. Un gros tas et beaucoup de collections de génération 2 disent que vous gardez trop de choses en mémoire (état de session inproc, par exemple).

Les applications ASP.NET régulières basées sur des contrôles Web nécessitent la création et la destruction rapides de nombreux objets, lorsqu'une page est reconstruite puis éliminée. Les collections géno élevées ne sont pas mauvaises. C'est quand vous commencez à voir beaucoup d'objets que ça se transforme en gen1 puis en gen2, ce qui suggère que vous fuyez la mémoire ou que vous maintenez trop d'état.

+2

Pouvez-vous être plus précis avec vos numéros? Qu'est-ce qu'un 'gros tas' et 'beaucoup de connexions de gen 2'? –

+2

Mon expérience est la même que celle de Will. La plupart des problèmes de performance avec les applications Web asp.net sont probablement liés à la mémoire. Le temps en GC est crucial à surveiller. Il est difficile de spécifier des seuils durs pour le temps en GC, mais tout ce qui dépasse en moyenne 15% attirerait mon attention. Il devrait y avoir beaucoup plus de collections Gen 0 que Gen 1, et beaucoup plus de collections Gen 1 que Gen 2. Le GC# Invoked devrait être 0 ou très petit.Si # GC invoqué est proche des collections Gen 2, le code appelle explicitement GC.Collect et l'application passera un grand pourcentage de temps dans GC. En GC, tous les threads sont en pause, donc c'est très mauvais. – BOS

Questions connexes