Cet article détaille le plan d'action à mettre en place pour créer une règle dans Debug Diagnostic 1.2 afin d'automatiser la génération d'une série de dumps au moment d'un hang (blocage) du serveur IIS ou de votre application.

Ce plan d'action est applicable lorsque votre processus "W3WP.exe" ou votre application se bloque et que vous n'en êtes pas informé suffisamment vite pour générer les dumps vous-même. Un hang d'un processus sous-entend que l'application répond très lentement ou ne répond plus du tout sans qu'il y ait un plantage du processus. Nous n'avons donc aucun arrêt ou redémarrage du processus (pas de changement de son PID).

Debug Diag se base donc sur des temps de réponse ou d'exécution pour générer des dumps.
La difficulté de ce plan d'action réside dans le fait de trouver des valeurs pertinentes pour la génération des dumps.
Il ne faut pas positionner une limite de temps trop élevée sinon on ne récupèrera jamais de dumps, mais à l'inverse, une limite trop basse pourrait provoquer la génération d'un trop grand nombre de dumps non représentatifs du problème.

Plan d'action

                

  • Sélectionnez "HTTP Response Times", puis cliquez sur "Suivant >"

                

  • Cliquez sur "Add URL"
    • Ici, nous utiliserons la surveillance par ping. Elle permet de tester l'accessibilité d'une page de l'application web à intervalle régulier. Si la page est inaccessible, Debug Diag génèrera une série de dumps
    • Dans le champ "URL to ping", renseignez l'adresse de la page web posant un problème de blocage
    • Dans le champ "Ping every", positionnez 30 secondes
    • Dans le champ "Timeout after", positionnez 120 secondes
    • Puis cliquez sur "OK"

Remarque : Ces valeurs ne sont que des valeurs par défaut et sont à adapter en fonction des temps réellement constatés pour votre problème.

                

  • Debug Diag vous propose alors de tester l'URL spécifiée afin de vérifier qu'il y accède bien. Vous pouvez cliquer sur "Oui".
    • Une fois le test effectué, cliquez sur "OK"

                

  • Cliquez sur "Suivant >"

                                

  • Dans la fenêtre "Select Dump Targets"
    • Cliquez sur "Add Dump Target"
    • Dans le champ "Target Type", choisissez "Web application pool" et sélectionnez l'application pool rencontrant le problème de blocage
    • Cliquez sur "OK", puis sur "Suivant >"

                

  • Configurer les champs de la fenêtre "Configure UserDump Series" comme suit :
    • Remarque 1 : Les valeurs sont à adapter en fonction des temps de réponse constatés dans votre cas
    • Remarque 2 : Dans ce cas, nous allons générer un Full UserDump toutes les 10 secondes. Un maximum de 3 dumps sera réalisé

                

  • Choisissez un nom et emplacement pour les dumps, puis cliquez sur "Suivant >"
    • Mettre ces dumps sur un autre emplacement que C:\ ne pose pas de problème
    • Vérifiez qu'il y ait suffisamment d'espace disque disponible car la taille d'un dump d'un processus est égale à la taille consommée en mémoire par ce dernier

                

  • Dans la fenêtre "Rule Completed", sélectionnez "Activate the rule now", puis cliquez sur "Terminer"
    • La règle est maintenant configurée et prête à générer des dumps

                

  • Vérifiez que son statut est à "Active"
    • Si ça n'est pas le cas, le service "DbgSvc" n'est surement pas démarré
    • Allez dans "Outils d'aministration > Services" et démarrez le
  • Quand un dump sera généré, vous verrez la colonne "UserDump Count" s'incrémenter

Les dumps sont situés par défaut dans "C:\Program Files\DebugDiag\Logs\Nom_De_La_Règle "

Pour retourner à l'article d'introduction sur Debug Diagnostic 1.2 cliquez ICI


En espérant que cet article vous sera utile.
@ Bientôt
Sylvain Lecerf et L'équipe de support IIS Microsoft France