Concepts avancés

Analyse du cache de RAM PVS avec débordement

Cet article fournit des informations sur la détermination précise de la taille du cache RAM lors de l’utilisation du cache RAM de fonctionnalité avec débordement sur disque.

Le cache RAM avec débordement sur disque est une fonctionnalité PVS dans laquelle les écritures vDisk sont écrites en premier lieu sur la RAM du pool Windows non paginée. Une fois que la taille du cache RAM spécifiée par l’utilisateur a atteint sa taille spécifiée, PVS vide le contenu du cache RAM sur le disque afin de créer de la place pour de nouvelles données. La taille du cache RAM fluctue en fonction du modèle de charge de travail et d’autres variations. PoolMon est un outil pour prendre un instantané de la taille d’utilisation actuelle du cache RAM en recherchant le VhdRde pool tag.

Pour plus d’informations sur cette fonctionnalité PVS, consultez le blog sur l’utilisation du cache RAM avec dépassement.

Important

Les outils décrits dans cet article sont destinés aux administrateurs ayant une connaissance avancée de Provisioning Services. Ces informations peuvent être utilisées pour aider à déboguer des problèmes liés aux performances qui vont au-delà de l’utilisation d’outils et de processus couramment utilisés, y compris ProcMon (ProcMonitor). Avec ces informations, vous aurez une meilleure compréhension du fonctionnement du pilote PVS.

Moniteur de pool de mémoire

PoolMon (poolmon.exe) fait référence au Moniteur de pool de mémoire. Il est utilisé pour afficher les données (allocations de mémoire à partir des pools de noyau paginés et non paginés système, et les pools de mémoire utilisés pour les sessions des services Terminal Server) collectées par un système d’exploitation. Ces données sont regroupées par balise d’allocation de pool.

Avec la mémoire de pool non paginée, vous pouvez utiliser l’outil PoolMon pour vérifier l’existence de la balise de pool désignée par vHDR. VhdR est utilisé pour l’allocation du cache RAM ; cette balise, avec le pool tag VhdL, est utile lors de la création de scripts pour aider à analyser les données associées au cache RAM dans la mémoire de pool non paginée.

Conseil

Les développeurs et les testeurs utilisent généralement PoolMon pour détecter les fuites de mémoire lorsqu’un pilote est créé, le code du pilote est modifié ou pour tester le pilote sous tension. PoolMon peut également être utilisé à chaque étape du processus de test pour vérifier le modèle d’allocation de mémoire et les opérations libres d’un pilote, y compris pour déterminer la quantité de mémoire de pool que le pilote utilise à un moment donné. Pour plus d’informations sur l’utilisation du moniteur de pool de mémoire, consultez la documentation Microsoft.

Utilisation de l’Analyseur de performances Windows

Windows Performance Analyzer (WPA) est un outil qui vous permet de créer des graphiques et des tables de données liés aux événements (en particulier, le suivi des événements pour Windows) qui sont enregistrés par l’enregistreur de performances Windows (WPR). Utilisez le WPA pour identifier les goulots d’étranglement des performances lors du débogage des problèmes liés au pilote PVS, à la pile de stockage et aux problèmes liés aux performances qui se produisent lors de l’écriture sur le disque VHDX. Avec ces outils, vous pouvez exécuter des évaluations et ouvrir n’importe quel fichier journal de suivi des événements pour analyse. Consultez le site Microsoft Developer Network pour plus d’informations sur l’ analyseur de performances Windows.

Remarque

Le WPA et le WPR sont inclus dans le kit de déploiement et d’évaluation Windows (Windows ADK) ; pour plus d’informations sur ce kit de déploiement, consultez le site Web de Microsoft. Visitez le site Web de Microsoft pour obtenir la dernière version de Windows Performance Analyzer.

Fonctionnement de l’Analyseur de performances Windows avec Provisioning Services

PVS génère des événements capturés par le mécanisme ETW (Event Tracing for Windows). Cette fonctionnalité permet de suivre et de consigner les événements qui sont soulevés par les applications en mode utilisateur et les pilotes en mode noyau. ETW est implémenté dans le système d’exploitation Windows et fournit un moyen facile pour les développeurs d’utiliser un ensemble de fonctionnalités de suivi d’événements. Pour plus d’informations, consultez le site Microsoft Developers Network.

Installation de l’Analyseur de performances Windows

WPA doit être installé sur l’image principale.

Le WPA fait partie du dernier SDK pour le système d’exploitation Windows 10. Vous pouvez installer sélectivement le kit Performance Toolkit qui inclut à la fois le WPA et le WPR :

Image de la fonctionnalité Windows Performance Toolkit sélectionnée pour l'installation

Après avoir installé le WPA et le WPR, utilisez le WPR pour simuler l’activité des E/S du disque PVS et des fichiers. Une fois ce trafic créé, analysez les données à l’aide du WPA. Pour effectuer ces actions :

  1. Lancez le WPR sur le périphérique cible et cliquez sur Ajouter des profils.

  2. Dans l’écran Ajouter des profils, accédez au modèle ou au profil spécifique au PVS. Cela vous permet de recevoir les événements générés par le fournisseur d’événements PVS. Après avoir importé le profil, revenez à l’écran WPR et sélectionnez les options supplémentaires que vous souhaitez analyser et cliquez sur le bouton Démarrer :

    Image de l'enregistreur de performances Windows

    Après avoir ajouté les options et cliqué sur Démarrer, vous pouvez simuler l’activité PVS. Dans cet exemple, un nouveau cache d’écriture avec un petit tampon de mémoire (128 Mo) est créé. Un fichier plus volumineux (279 Mo) est copié dans C:\Users\User\Documents\test.bin pour forcer le pilote PVS à écrire des données dans le pool non paginé pour vérifier ce qui se passe en cas de basculement, ce qui commence à écrire sur le disque local (par exemple, D:\vdiskdif.vhdx). Après avoir copié le fichier et forcé le tampon à dépasser la capacité, vous pouvez arrêter le processus de capture dans WPR et ouvrir les résultats à l’aide de WPA.

  3. À l’aide du WPA, ouvrez l’ Explorateur de graphiques, développez Activité systèmeet sélectionnez Evénements génériques. À l’aide de l’écran ci-dessous, affichez le contenu des sections WriteData et WriteRamData. Cette information affiche le nombre exact de fichiers écrits sur C : vDisk (2419 fichiers), y compris le fichier VHDX sur le lecteur D : (348 fichiers) :

    Exemple de résultats de l'Analyseur de performances Windows

    Conseil

    La valeur WriteData est inférieure à la valeur affichée car elle est mise en cache dans la RAM et n’a pas été vidée sur le disque.

  4. Revenez à l’écran Explorateur de graphiques , puis développez Fichier E/S et Nombre par type . L’image ci-dessous illustre la réduction des E/S (nombre de fichiers) et la durée entre l’écriture dans C:\Users\User\Documents\test.bin et le fichier cache d’écriture spillover situé à D:\vdiskdif.vhdx. À l’aide de ces données, vous pouvez afficher les goulots d’étranglement potentiels en termes de performances et exclure efficacement le pilote de filtre PVS comme un problème :

    Exemple de résultats de l'Analyseur de performances Windows affichant les E/S de fichier et le nombre par type

  5. Après avoir affiché le nombre de fichiers et la durée entre les écritures (entre le fichier journal et le cache d’écriture débordant), vous pouvez aller plus loin dans le processus de débogage pour comprendre où les données sont écrites initialement (et où elles finissent) à l’aide de décalages de disque. Dans l’Analyseur de performances Windows, ouvrez l’ Explorateur de graphiques , développez Activité système et sélectionnez Événements génériques . Modifiez la vue des colonnes pour permettre à l’outil WPA d’afficher la transition des données dans les différentes couches de stockage. Pour un débogage supplémentaire, revenez à l’environnement PVS et définissez le tampon de cache RAM sur 0 Mo, puis réexécutez les outils de l’enregistreur (WPR) et de l’analyseur (WPA). L’image ci-dessous illustre comment se produit le débordement vers le disque :

Exemple de Windows Performance Analyzer montrant l'activité système et les événements génériques

Analyse du cache de RAM PVS avec débordement