W3WP.EXE l'utilisation de 100% de CPU - par où commencer?
Un ASP.NET web app en cours d'exécution sur IIS6 régulièrement les pousses de la CPU à 100%. C'est le W3WP qui est responsable de presque tous l'utilisation du PROCESSEUR lors de ces épisodes. Le CPU reste épinglé à 100% n'importe où de quelques minutes à plus d'une heure.
C'est sur un serveur de test et le site ne reçoit que très peu de circulation de testeurs à ce point.
Nous avons pointillés profiler sur le serveur, mais il a été unenlightening.
Où peut-on commencer à trouver ce qui est à l'origine de ces épisodes et ce code est de garder le CPU occupé pendant tout ce temps?
- Êtes-vous en quelque sorte la journalisation des exceptions à l'intérieur de votre code? Appeler quelque chose comme "Logger.Log(Exception)"?
Vous devez vous connecter pour publier un commentaire.
C'est pas vraiment une réponse, mais vous pourriez avoir besoin d'aller vieille école et de capturer une image de l'instantané du processus IIS et le débogage. Vous pourriez également vouloir vérifier Tess Ferrandez's blog - elle est un coup de pied un** microsoft ingénieur d'escalade et de son blog se concentre sur le débogage de windows ASP.NET mais le blog est pertinent pour le débogage de windows en général. Si vous sélectionnez l'ASP.NET tag (qui est ce que j'ai lié à) ensuite, vous trouverez plusieurs articles qui sont similaires.
Si votre CPU est de dopage à 100% et rester là, il est tout à fait probable que vous avez un blocage ou une boucle infinie. Un profileur semble être un bon choix pour trouver une boucle infinie. Les blocages sont beaucoup plus difficiles à repérer, cependant.
Processus Explorer est un excellent outil pour le dépannage. Vous pouvez essayer de trouver le problème de haute CPU d'utilisation. Il vous donne un aperçu de la façon dont votre application fonctionne.
Vous pouvez également essayer Procdump pour vider le processus et d'analyser ce qui s'est réellement passé sur le CPU.
Aussi, regardez vos compteurs perfmon. Ils peuvent vous dire où beaucoup de temps cpu est passé. Voici un lien pour le plus commun des compteurs à utiliser:
Nous avons eu ce sur une requête récursive qui a été dumping des tonnes de données à la sortie - avez-vous vérifié, tout n'sortie et pas de boucles infinies qui existent?
Pourrait essayer de le réduire à une seule page, nous avons trouvé des FOURMIS de ne pas être beaucoup d'aide dans ce même cas, soit - ce que nous nous sommes retrouvés à faire était de courir le site de frapper une page regarder le CPU - frapper la page suivante montre CPU - très méthodique et beaucoup de temps, mais si vous ne pouvez pas le trouver avec un peu de code de traçage vous pouvez être hors de la chance -
Nous avons été en mesure d'utiliser les fichiers journaux IIS de suivre à un ensemble de pages qui ont été suspect -
Espère que ça aide !
C'est une supposition, au mieux, mais peut-être que votre équipe de développement est la construction et le déploiement de l'application en mode debug, au lieu de mode de lancement. Ce sera la cause de l'apparition de .fichiers pdb. L'implication de ceci est que votre application va prendre des ressources supplémentaires afin de recueillir de l'état du système et les informations de débogage lors de l'exécution de votre système, causant plus de l'utilisation du processeur.
Alors, il serait assez simple de s'assurer qu'ils sont de construction et de déploiement en mode release.
C'est un très vieux post, je sais, mais c'est également un problème commun. Toutes les méthodes proposées sont très gentils mais ils auront toujours le point à un processus, et il y a beaucoup de chances pour que nous savons déjà que notre site est créer des problèmes, mais nous voulons juste savoir ce que page spécifique est de passer trop de temps dans le traitement.
Le plus précis et outil simple à mon avis est IIS.
colonne) dans cette piscine
Si vous identifiez une page qui prend du temps à charger, l'utilisation de SharePoint Tableau De Bord Du Développeur pour voir quel composant prend du temps.