2008-10-08 3 views
1

Quelqu'un peut-il me donner des instructions étape ou le point sur les références correctes dans le bon ordreASP.NET: w3wp utilise beaucoup de mémoire et le processus ne répond pas

afin que je puisse déterminer la cause racine ce problème?

+0

Au cas où quelqu'un ne sait pas, w3wp est le processus de travail de aps.net. (Je pense que l'OP sait déjà en fonction de la façon dont il a étiqueté la question, mais quelqu'un d'autre pourrait ne pas la voir tout de suite). –

Répondre

2

Vous pouvez obtenir une image mémoire du processus et l'examiner WinDbg. Il vous donnera au moins une liste d'exceptions et l'état actuel des threads. Cela permettra de recycler le processus. Il est également possible de joindre à une machine de style QA dans un mode de débogage distant de Visual Studio. Cependant, je n'ai pas fait cela, et cela bloquerait toutes les autres requêtes pendant le débogage.

Si w3wp fonctionne localement, vous pouvez faire un clic droit sur le processus dans le gestionnaire de tâches et sélectionnez débogage pour obtenir un coup d'oeil dans dans WinDbg. Sinon, vous voulez quelque chose comme Debug Diag sur votre machine de production/test pour créer un vidage d'utilisateur complet. Voir: http://msdnrss.thecoderblogs.com/2008/05/21/debugdiag-11-or-windbg-which-one-should-i-use-and-how-do-i-gather-memory-dumps/

Je l'ai fait tout cela en Février, et ai pas besoin de depuis. l'étape complète par étape est en fait un peu douloureux en raison de l'obtention des symboles pour WinDbg et la configuration des variables d'environnement pour lequel ils doivent être stockés etc.

Pour plus d'informations sur la configuration WinDbg pour un look d'inspection ASP.NET à cet article: http://support.microsoft.com/kb/892277

1

w3wp.exe est un processus associé à pool d'applications dans l'ISS. Si vous avez plusieurs pools d'applications, vous aurez plus d'une instance de w3wp.exe en cours d'exécution.

Pour plus d'informations s'il vous plaît lire this

0

w3wp.exe peut consommer une grande quantité de mémoire pour diverses raisons.

  • Un grand nombre de demandes à traiter
  • grands volumes de débit de données (par exemple le traitement des médias)
  • fuite de mémoire
  • Toute combinaison ci-dessus.

Si vous pensez que les deux premières étant le problème, vous aurez besoin à l'échelle du système en place (l'ajout de serveurs supplémentaires, etc.)

Une fuite de mémoire entraînera une augmentation progressive de l'utilisation de la mémoire au fil du temps.

Si vous soupçonnez une fuite de mémoire, les actions suivantes peuvent être envisagées.

  • révision du Code (en particulier à la recherche des objets statiques, et l'enregistrement événement/désinscription)
  • profilage: le profilage pour fuite de mémoire peut parfois être une tâche difficile. Assurez-vous de recueillir des données sur une période de temps/demande tout en profilant et vérifiez les objets vivants et vérifiez que leur durée de vie est valide.
Questions connexes