Débogage d'applications ASP .NET en production

Slides:



Advertisements
Présentations similaires
SQL Server Profiler Deadlock graph Outil : SQL Server Profiler Patrick Guimonet Architecte Infrastructure Division Développeurs et Plateforme dEntreprise.
Advertisements

Pierre Lagarde Relation technique développeur Grégory Renard [Rédo] Responsable Développement Wygwam.
Formation universitaire à .NET: Introduction à C#
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 2 : Bases de données partie 2 : Fichiers, Journalisation.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 3 : Le serveur Patrick Guimonet Architecte Infrastructure Division.
1 HPC pour les opérations. Sommaire Quelques rappels sur Windows Compute Cluster Server Déploiement de Compute Cluster Administration de Compute cluster.
Comment créer une alerte WMI ? WMI Windows Management Instrumentation Outils : SQL Server Management Studio SQL Agent Patrick Guimonet Architecte Infrastructure.
La plateforme.NET 2.0 vue par le développeur Pascal Belaud Microsoft France SAGA.NET
ASP.NET 2.0 et la sécurité Nicolas CLERC
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
.NET MicroFramework Historique & état des lieux Architecture A lintérieur du MicroFramework Demo: Sumo Robot.NET MicroFramework.
Agenda de la journée 10h00 : La place dASP.NET dans la plate-forme Microsoft 10h30 : Développement rapide dapplications Web en ASP.NET 12h00 : Construire.
« Les Mercredis du développement » Introduction Office « 12 » Présenté par Bernard Fedotoff Microsoft Regional Director Agilcom.
Conclusion Rencontres ASP.NET : Développement Rapide dApplications Web.
Assistant paramétrage. du moteur de base de données
Rencontres Windows Forms
Configuration de la Surface dexposition SQL Server 2005 SQL Server Surface Area Configuration Outils : Configuration de la Surface dexposition SQL Server.
Open Days 2006 Le Web 2.0 demain: produits, technologies, outils.
Présentation de l’Architecture Windows NT
Exposé système et nouvelles technologies réseaux Windows Management Intrumentation José-Manuel DUARTE – IR3.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Page 1 Déboguer un programme Java Jacques Lonchamp.
Module 10 : Gestion et analyse de l'accès réseau
Construire une Set Top Box Avec Windows CE 6.0
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Eric Vernié - Microsoft Yann Faure - Bewise Etude de cas FMStocks 2000.
« Les Mercredis du développement » Retour dexpérience / Framework de dév. Présenté par Grégory Renard [Rédo] Responsable Développement.
Un regard sur les bonnes pratiques d'implémentation Eric Mittelette Eric Vernié Microsoft France - DPE.
Pierre Lagarde Christophe Lauer
Philippe FREDDI Entreprise Architecte -- PFFC
ASP.NET un peu plus loin… Développement Rapide dApplications Web avec.NET.
Formation universitaire à .NET: Visual Studio .NET
Ajax. Contexte Dabord, il y a eu les terminaux des ordinateurs centraux (environnements TSO, CICS, etc.) et les terminaux plein écran des environnements.
Développement Rapide dApplications Web avec.NET « Mon premier site »
Bonnes pratiques et top Issues Ce quapporte Vista Démos!
Juin 2013 – Query memory grants
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Cette session suppose une connaissance préalable des grands principes de Workflow Foundation Nous parlerons très peu de lécriture de workflows Une session.
Internet Information Server 7.0 Laurent Bonnet Microsoft France.
Microsoft .NET.
Architecture dun site de vente au détail1 Modèle d'un site simple de vente Lexemple du livre Ruby on Rails Partie II Java Adventure Builder Demo Réalisé.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 1 : Introduction.
Module 2 : Préparation de l'analyse des performances du serveur
SQL Server 2005 pour les développeurs Raphaël Bijiaoui Consultant Avanade
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Débogage ASP.NET (niveau 300)
2 Développer, tester et déployer un site web avec WebMatrix (RIA101) Christine Dubois 9 février 2011.
Windows Sharepoint Services “v3“ (1/6) Les nouveautés Stéphane Crozatier Relation Technique Editeurs de Logiciels DPE - Microsoft France
Technologies Web Microsoft
Module 8 : Surveillance des performances de SQL Server
SPS & WSS. Le 27 mai Planning d’installation de SPS+ Installer : –IIS SMTP + WS + ASP.NET. –Windows 2003 Server US. –DNS (hiérarchie dans.
.NET Plateforme, framework, produits Bernard Fedotoff (Pdg) Stéphane Vancauwenberghe (Consultant)
Combien envisagent d’utiliser SSMA pour migrer : OracleSybaseAccess.
Page 1Dernière mise à jour: 13 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
Introduction à la plateforme .NET
2 Le futur de VB et l’asynchronisme [LAN101] 08/02 14h30 Patrice Lamarche GPI
Outil de conception d’applications WPF Anciennement « Interactive Designer » Orienté « intégrateur graphistes » Particularité : Blend tm est une application.
Détecter et éviter les fuites de mémoire dans les applications .NET
Dyalog.Net Peter Donnelly Managing Director Dyadic Systems Toronto 30/10/2002.
Les 2 personnes doivent réussir un des examens ci-dessous Site Formation & CertificationSite Formation & Certification l Réserver sa date d’examen l Devenir.
Programmation Système et Réseau
Technet Office System
Code Contracts Gilles TOURREAU - MVP C# Architecte .NET / Formateur
Projet débuté en décembre 1989 Première version publique en février 1991 Lancement du site python.org en 1997 Python Software Foundation en 2001 Version.
Introduction au socle MEAN
11 Un tour d’horizon des dernières technologies Web 9 Février 2010 Simon FERQUEL Développeur Access it Adrien SIFFERMANN PDG Imajin.
1 Visual Studio 2005 Tools For Office: Présentation et Démonstrations.
Introduction aux outils de supervision
Réflexion sur un exemple possible de projet proposé en I.S.N.
Transcription de la présentation:

Débogage d'applications ASP .NET en production Sébastien Bovo Support Développeurs - Microsoft France sbovo@microsoft.com – http://blogs.microsoft.fr/sbovo/

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

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)

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

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

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

Outils – Analyse Outils WinDbg Extensions WindDbg comme SOS

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

Présentation de WinDbg et SOS Chargement des symboles .sympath SRV*c:\symbols*http://msdl.microsoft.com/download/symbols .reload Chargement de l’extension SOS .load clr10\sos.dll Ou .loadby sos mscorlib.dll !help

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

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)

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

CLR En ASP.NET, 1 application = 1 AppDomain Heaps Garbage Collector Objets managés Garbage Collector Générations Compactage large objects heap

Commandes SOS !DumpHttpRuntime  Applications ASP.NET !FindDebugTrue  Applications qui ont debug=true !FindDebugModules  Modules/dlls compilés en mode debug

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

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

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

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

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

Ressources Téléchargement de WinDbg - http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx

Ressources Troubleshooting ASP.NET using WinDbg and the SOS extension - http://support.microsoft.com/?id=892277 Reference SOS - http://msdn2.microsoft.com/en-us/library/ms404370.aspx

Ressources Compteurs de performance Optimizing IIS 6.0 Performance (IIS 6.0) – http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/e621190d-1015-40c2-a5ec-0dcb32c98286.mspx En particulier Monitoring ASP.NET Performance (IIS 6.0) - http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/97d0872a-96b3-41e4-8997-b174a9dbb87f.mspx?mfr=true Controlling Memory Usage (IIS 6.0) - http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ad56540c-2323-4316-b981-7ebb70352baa.mspx

Ressources Compteurs de performance ASP.NET Performance Counters (IIS 6.0) - http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a8c5b994-7722-4dc6-a246-7dfe667c6816.mspx?mfr=true Performance Counters for ASP.NET - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconmonitoringaspnetapplicationperformance.asp?frame=true