Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAnastaise Albert Modifié depuis plus de 11 années
1
Débogage d'applications ASP .NET en production
Sébastien Bovo Support Développeurs - Microsoft France –
2
Agenda Préambule Outils pour la capture et l’analyse
Présentation de WinDbg et SOS IIS et CLR Commandes SOS Exemples de problématiques
3
Préambule Comportement anormal d’une application ASP.NET mise en pré production ou production : Un état de blocage ou d’attente qui empêche le traitement des requêtes (deadlock ou hang du processus d’exécution) 100% CPU du processus d’exécution Apparition de messages d’erreurs aux utilisateurs alors qu’aucune exception n’est loguée (Exceptions non gérées) Un arrêt du processus d’exécution inexpliqué (crash de W3WP.EXE)
4
Préambule Problème Comment faire pour trouver l’origine du problème ?
Non identifié au préalable lors du développement et de la phase de tests Ne pouvant être reproduit sur une autre plateforme Comment faire pour trouver l’origine du problème ? Capture d’informations Analyse ultérieure
5
Outils – capture d’informations
Moniteur de performance Journaux d’évènements Prise de dumps Adplus.vbs -hang -crash Debugdiag Outils pour l’analyse WinDbg Extensions WindDbg comme SOS
6
Outils – capture d’informations
Qu’est-ce qu’un dump de mémoire ? Capture de l’espace d’adressage d’un processus Pourquoi est-ce utile ? Etat des threads Piles d’appels Objets en mémoire Modules chargés
7
Outils – Analyse Outils WinDbg Extensions WindDbg comme SOS
8
Présentation de WinDbg et SOS
Qu’est ce que WinDbg ? Le débogueur le plus utilisé chez Microsoft Débogage User et Kernel Peut être étendu en écrivant des extensions Qu’est ce que SOS ? Extension WinDbg Connait les structures mémoires interne utilisées par .NET
9
Présentation de WinDbg et SOS
Chargement des symboles .sympath SRV*c:\symbols* .reload Chargement de l’extension SOS .load clr10\sos.dll Ou .loadby sos mscorlib.dll !help
10
Présentation de WinDbg et SOS
kp Affiche la pile d’appel de tous les threads Que fait le processus au moment de la prise de dump ~*kp Pour tous les threads ~1s Changement de thread !clrStack Montre la partie managée du thread ~*e !clrStack Pour tous les threads
11
IIS Processus d’exécution aspnet_wp.exe (IIS5) ou w3wp.exe (IIS6)
ASP.NET runtime dans .NET CLR inetinfo.exe (IIS5) HttpApplication \vdir1 aspnet_isapi.dll (code natif) HTTP pipeline HttpApplication \vdir2 http.sys: driver en mode kernel (IIS 6) aspnet_isapi.dll (code natif)
12
CLR Il n’existe pas de processus managé Dans un processus
Un processus Win32 charge le runtime .NET Dans un processus Plusieurs AppDomains = séparations logiques 1 AppDomain plusieurs threads 1 Thread plusieurs AppDomains
13
CLR En ASP.NET, 1 application = 1 AppDomain Heaps Garbage Collector
Objets managés Garbage Collector Générations Compactage large objects heap
14
Commandes SOS !DumpHttpRuntime Applications ASP.NET
!FindDebugTrue Applications qui ont debug=true !FindDebugModules Modules/dlls compilés en mode debug
15
Commandes SOS !threads Indique les threads managés
!ASPXPages Parse les threads pour dire lesquels sont relatifs à l’exécution de pages ASPX !runaway Montre le temps CPU pour chacun des threads
16
Commandes SOS !eeheap -gc Taille des heaps du Garbage collector
!eeheap -loader Assemblées chargées !DumpHeap Affiche les objets managés -stat -mt -min
17
Commandes SOS !dumpobj Donne l’objet managé
!dumpallexceptions Fournit toutes les exceptions du dump !gcroot indique qui maintient une référence sur l’objet
18
Exemples de problématiques
Application ASP.NET présentant des problèmes de performances important Le temps de réponse s’écroule avec la charge utilisateur Non Réponse du serveur dans certains cas Le problème disparait avec un charge moins importante
19
Exemples de problématiques
Exemple d’application ASP.NET ayant un fuite mémoire La taille du processus W3WP.EXE ne cesse d’augmenter A partir des compteurs de performance Si « Process/Virtual Bytes » et « .net CLR Memory/# Bytes in all Heaps » suivent la même progression… Fuite mémoire d’objets managés
20
Ressources Téléchargement de WinDbg -
21
Ressources Troubleshooting ASP.NET using WinDbg and the SOS extension - Reference SOS -
22
Ressources Compteurs de performance
Optimizing IIS 6.0 Performance (IIS 6.0) – En particulier Monitoring ASP.NET Performance (IIS 6.0) - Controlling Memory Usage (IIS 6.0) -
23
Ressources Compteurs de performance
ASP.NET Performance Counters (IIS 6.0) - Performance Counters for ASP.NET -
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.