La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Débogage d'applications ASP .NET en production

Présentations similaires


Présentation au sujet: "Débogage d'applications ASP .NET en production"— Transcription de la présentation:

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 -


Télécharger ppt "Débogage d'applications ASP .NET en production"

Présentations similaires


Annonces Google