Sessions
L’Enregistreur de performances Windows (WPR) étend le suivi d’événements pour Windows (ETW). Une session de journalisation ETW est une collection de tampons en mémoire qui accepte les événements via l’interface de programmation d’application (API) du fournisseur ETW. Ces mémoires tampons sont généralement non paginées et sont gérées par le noyau. ETW affecte une mémoire tampon à chaque processeur. La génération d’événements ETW et la mise en mémoire tampon ne sont pas verrouillées pour permettre à ETW de journaliser toutes sortes d’événements.
Chaque fois qu’ETW appelle la méthode EventWrite , ETW réserve de l’espace dans la mémoire tampon actuelle allouée par ETW au processeur qui exécute le thread appelant. Ensuite, ETW copie l’en-tête d’événement et les données utilisateur dans cet espace. Lorsque la mémoire tampon est pleine, ETW vide la mémoire tampon dans le fichier journal de la session de journalisation ou le consommateur de streaming en temps réel. ETW affecte ensuite une mémoire tampon libre à ce processeur.
Si le débit de journalisation dépasse la capacité du videur à libérer des tampons, tout l’espace tampon disponible dans la session de journalisation peut devenir indisponible. Par exemple, cela peut se produire parce que le débit d’écriture sur disque est inférieur au débit d’événement entrant. EventWrite génère une erreur de ERROR_NOT_ENOUGH_MEMORY et perd les données d’événement. Dans ce cas, ETW incrémente la propriété EventsLost de la session de journalisation afin que les consommateurs puissent voir la perte de données.
Pour plus d’informations sur la façon d’éviter de perdre des événements dans un enregistrement, consultez Éviter les événements perdus.
Journalisation à la mémoire ou à un fichier
Vous pouvez configurer des profils pour enregistrer les données d’événement dans des mémoires tampons ou dans un fichier. Le mode de mise en mémoire tampon est une session circulaire en mémoire. Vous pouvez enregistrer le contenu de cette session en tant que instantané dans un fichier de journal de trace d’événements (ETL) sur demande. WPR ne vide pas le contenu de l’espace tampon en mémoire lorsque vous enregistrez le contenu.
Vous pouvez laisser les sessions en mode de mise en mémoire tampon activées en permanence. Cela est particulièrement utile si vous ne savez pas quand le comportement qui vous intéresse se produira. Choisissez le mode de mise en mémoire tampon lorsque l’espace de mémoire tampon circulaire requis est suffisamment petit pour être conservé en mémoire. Les fichiers journaux séquentiels sont les meilleurs pour les scénarios contrôlés. Par exemple, vous pouvez utiliser des fichiers journaux séquentiels pour le test de régression ou lorsque l’occurrence du comportement intéressant est plus facile à prédire.
Pour plus d’informations sur les options de journalisation, consultez Mode journalisation.
Profils d’enregistrement
Un profil d’enregistrement contrôle chaque session. Le profil peut être un profil intégré ou un profil défini par l’utilisateur. Pour plus d’informations, consultez Profils d’enregistrement.
Taille de la mémoire tampon
La taille de la mémoire tampon est importante pour contrôler l’efficacité des E/S et s’assurer que WPR n’ignore pas les événements volumineux. De très petites mémoires tampons peuvent réduire l’efficacité de l’écriture d’E/S. Nous recommandons une taille de mémoire tampon minimale de 64 Ko ou 128 Ko pour promouvoir de bonnes performances d’écriture et réduire la surcharge de disque et les événements perdus. La taille de la mémoire tampon détermine la durée maximale d’un enregistrement. ETW limite la plus grande taille d’événement à environ 64 Ko.
Collecteurs
Vous devez définir un collecteur système et un ou plusieurs collecteurs d’événements pour une session dans le profil d’enregistrement. Le nom du collecteur doit être unique au système et le système doit disposer d’un accès en écriture exclusif au fichier journal. Le nom du fichier journal doit également être unique parmi les noms de fichiers de tous les collecteurs. WPR ne développe pas les variables d’environnement. Le chemin d’accès au fichier journal doit donc être spécifié sans variables d’environnement. Pour plus d’informations, consultez 1. Définitions du collecteur.
Fournisseurs
Les sessions de journalisation sont collectées à partir d’un ensemble défini de fournisseurs système et d’événements. Il s’agit d’un élément important à configurer par session. La plupart des fournisseurs peuvent avoir une relation plusieurs-à-plusieurs avec les sessions. Des fournisseurs spéciaux sont nécessaires pour certains événements, tels que les événements de noyau ou de tas. Pour plus d’informations, consultez Fournisseurs.