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 Sébastien Bovo Support Développeurs - Microsoft France –

Présentations similaires


Présentation au sujet: "Débogage d'applications ASP.NET en production Sébastien Bovo Support Développeurs - Microsoft France –"— 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 lanalyse Présentation de WinDbg et SOS IIS et CLR Commandes SOS Exemples de problématiques

3 Préambule Comportement anormal dune application ASP.NET mise en pré production ou production : Un état de blocage ou dattente qui empêche le traitement des requêtes (deadlock ou hang du processus dexécution) 100% CPU du processus dexécution Apparition de messages derreurs aux utilisateurs alors quaucune exception nest loguée (Exceptions non gérées) Un arrêt du processus dexécution inexpliqué (crash de W3WP.EXE)

4 Préambule 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 lorigine du problème ? 1.Capture dinformations 2.Analyse ultérieure

5 Outils – capture dinformations Outils Moniteur de performance Journaux dévènements Prise de dumps Adplus.vbs -hang -crash Debugdiag Outils pour lanalyse WinDbg Extensions WindDbg comme SOS

6 Outils – capture dinformations Quest-ce quun dump de mémoire ? Capture de lespace dadressage dun processus Pourquoi est-ce utile ? Etat des threads Piles dappels Objets en mémoire Modules chargés

7 Outils – Analyse Outils WinDbg Extensions WindDbg comme SOS

8 Présentation de WinDbg et SOS Quest ce que WinDbg ? Le débogueur le plus utilisé chez Microsoft Débogage User et Kernel Peut être étendu en écrivant des extensions Quest 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*http://msdl.microsoft.com/download/sy mbols.reload Chargement de lextension SOS.load clr10\sos.dll Ou.loadby sos mscorlib.dll !help

10 Présentation de WinDbg et SOS kp Affiche la pile dappel 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 dexécution aspnet_wp.exe (IIS5) ou w3wp.exe (IIS6) ASP.NET runtime dans.NET CLR inetinfo.exe (IIS5) HTTP pipeline aspnet_isapi.dll (code natif) http.sys: driver en mode kernel (IIS 6) HttpApplication \vdir1 HttpApplication \vdir2

12 CLR Il nexiste pas de processus managé 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 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 à lexé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 lobjet managé !dumpallexceptions Fournit toutes les exceptions du dump !gcroot indique qui maintient une référence sur lobjet

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 dapplication ASP.NET ayant un fuite mémoire La taille du processus W3WP.EXE ne cesse daugmenter 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 dobjets managés

20 Ressources Téléchargement de WinDbg - ging/installx86.mspx ging/installx86.mspx

21 Ressources Troubleshooting ASP.NET using WinDbg and the SOS extension - Reference SOS - us/library/ms aspxhttp://msdn2.microsoft.com/en- us/library/ms aspx

22 Ressources Compteurs de performance Optimizing IIS 6.0 Performance (IIS 6.0) – erver2003/Library/IIS/e621190d c2-a5ec- 0dcb32c98286.mspx erver2003/Library/IIS/e621190d c2-a5ec- 0dcb32c98286.mspx En particulier Monitoring ASP.NET Performance (IIS 6.0) - er2003/Library/IIS/97d0872a-96b3-41e b174a9dbb87f.mspx?mfr=true er2003/Library/IIS/97d0872a-96b3-41e b174a9dbb87f.mspx?mfr=true Controlling Memory Usage (IIS 6.0) - er2003/Library/IIS/ad56540c b981- 7ebb70352baa.mspx er2003/Library/IIS/ad56540c b981- 7ebb70352baa.mspx

23 Ressources Compteurs de performance ASP.NET Performance Counters (IIS 6.0) - erver2003/Library/IIS/a8c5b dc6-a246- 7dfe667c6816.mspx?mfr=true erver2003/Library/IIS/a8c5b dc6-a246- 7dfe667c6816.mspx?mfr=true Performance Counters for ASP.NET - /en- us/cpguide/html/cpconmonitoringaspnetapplicationperform ance.asp?frame=true /en- us/cpguide/html/cpconmonitoringaspnetapplicationperform ance.asp?frame=true


Télécharger ppt "Débogage d'applications ASP.NET en production Sébastien Bovo Support Développeurs - Microsoft France –"

Présentations similaires


Annonces Google