Erweiterte Konzepte

Analyse des PVS-RAM-Cache mit Überlauf

Dieser Artikel enthält Informationen zur genauen Bestimmung der RAM-Cachegröße beim Verwenden des Feature- RAM-Cache mit Überlauf auf die Festplatte.

RAM-Cache mit Überlauf auf Festplatte ist eine PVS-Funktion, bei der vDisk-Schreibvorgänge zuerst in Windows nicht ausgelagerten Pool-RAM geschrieben werden. Sobald die vom Benutzer angegebene RAM-Cachegröße ihre angegebene Größe erreicht hat, leert PVS den RAM-Cache-Inhalt auf die Festplatte, um Platz für neue Daten zu schaffen. Die Größe des RAM-Caches schwankt je nach Arbeitslastmuster und anderen Variationen. PoolMon ist ein Tool, um einen Snapshot der aktuellen RAM-Cache-Nutzungsgröße zu erstellen, indem Sie Pooltag vHDRnachschlagen.

Weitere Informationen zu dieser PVS-Funktion finden Sie im Blog zur Verwendung von RAM-Cache mit Überlauf.

Wichtig

Die in diesem Artikel beschriebenen Tools sind für Administratoren mit fortgeschrittenen Kenntnissen in Provisioning Services. Diese Informationen können verwendet werden, um Performance-Probleme zu debuggen, die über die Verwendung häufig verwendeter Tools und Prozesse hinausgehen, einschließlich des ProcMon (ProcMon). Mit diesen Informationen haben Sie ein besseres Verständnis der Funktionsweise des PVS-Treibers.

Speicherpool-Monitor

PoolMon (poolmon.exe) bezieht sich auf den Speicherpool-Monitor. Es wird verwendet, um Daten (Speicherzuweisungen aus dem System ausgelagerten und nicht ausgelagerten Kernel-Pools und die Speicherpools, die für Terminaldienstesitzungen verwendet werden) anzuzeigen, die von einem Betriebssystem gesammelt wurden. Diese Daten werden nach dem Pool-Zuordnungs-Tag gruppiert.

Bei nicht ausgelagertem Poolspeicher können Sie das PoolMon-Tool verwenden, um die Existenz des von vHDR bezeichneten Pooltagszu überprüfen. VHDR wird für die RAM-Cache-Zuweisung verwendet. Dieses Tag ist zusammen mit dem Pooltag vHDLnützlich, wenn Skripts erstellt werden, um Daten zu analysieren, die mit dem RAM-Cache im nicht ausgelagerten Poolspeicher verknüpft sind.

Tipp

Entwickler und Tester verwenden PoolMon in der Regel, um Speicherlecks zu erkennen, wenn ein Treiber erstellt wird, Treibercode geändert wird oder um den Treiber Stress zu testen. PoolMon kann auch in jeder Phase des Testprozesses verwendet werden, um das Muster der Speicherzuweisung und freien Operationen eines Treibers zu überprüfen, einschließlich der Bestimmung, wie viel Poolspeicher der Treiber zu einem bestimmten Zeitpunkt verwendet. Weitere Informationen zur Verwendung des Memory Pool Monitors finden Sie in der Microsoft-Dokumentation.

Verwenden des Windows Performance Analyzer

Der Windows Performance Analyzer (WPA) ist ein Tool, mit dem Sie Diagramme und Datentabellen erstellen können, die sich auf Ereignisse beziehen (insbesondere Ereignisablaufverfolgung für Windows), die vom Windows Performance Recorder (WPR) aufgezeichnet werden. Verwenden Sie die WPA, um Leistungsengpässe beim Debuggen von Problemen im Zusammenhang mit dem PVS-Treiber, dem Speicherstapel und leistungsbezogenen Problemen zu identifizieren, die beim Schreiben auf den VHDX-Datenträger auftreten. Mit diesen Tools können Sie Bewertungen ausführen und jede Ereignisablaufverfolgungsprotokolldatei zur Analyse öffnen. Weitere Informationen zum Windows Performance Analyzerfinden Sie auf der Microsoft Developer Network-Website.

Hinweis

WPA und WPR sind im Windows Assessment and Deployment Kit (Windows ADK) enthalten. Weitere Informationen zu diesem Deployment Kit finden Sie auf der Microsoft-Website. Besuchen Sie die Microsoft-Website für die neueste Version von Windows Performance Analyzer.

Funktionsweise des Windows Performance Analyzer mit Provisioning Services

PVS generiert Ereignisse, die vom ETW-Mechanismus (Event Tracing for Windows) erfasst werden. Diese Funktionalität bietet eine Möglichkeit, Ereignisse zu verfolgen und zu protokollieren, die von Benutzermodusanwendungen und Kernelmodustreibern ausgelöst werden. ETW ist im Windows-Betriebssystem implementiert und bietet Entwicklern eine einfache Möglichkeit, eine Reihe von Ereignisprotokollierungsfunktionen zu verwenden. Weitere Informationen finden Sie im Microsoft Developers Network.

Installieren des Windows Performance Analyzer

WPA muss auf dem Master-Image installiert werden.

Die WPA ist Teil des neuesten SDK für das Windows 10-Betriebssystem. Sie können das Performance Toolkit selektiv installieren, das sowohl WPA als auch WPR enthält:

Abbild des für die Installation ausgewählten Windows Performance Toolkit-Features

Verwenden Sie nach der Installation von WPA und WPR die WPR, um PVS-Datenträger- und Datei-E/A -Aktivität zu simulieren. Sobald dieser Datenverkehr erstellt wurde, analysieren Sie die Daten mit dem WPA. So führen Sie folgende Aktionen aus:

  1. Starten Sie die WPR auf dem Zielgerät und klicken Sie auf Profile hinzufügen.

  2. Navigieren Sie im Fenster Profile hinzufügen zu der PVS-spezifischen Vorlage oder dem Profil. Dadurch können Sie die vom PVS-Ereignisanbieter generierten Ereignisse empfangen. Kehren Sie nach dem Importieren des Profils zum WPR-Bildschirm zurück und wählen Sie weitere Optionen aus, die Sie analysieren möchten, und klicken Sie auf die Schaltfläche Start :

    Abbild des Windows Performance Recorder

    Nachdem Sie die Optionen hinzugefügt und auf Start geklickt haben, können Sie PVS-Aktivitäten simulieren. In diesem Beispiel wird ein neuer Schreibcache mit einem kleinen Speicherpuffer (128 MB) erstellt. Eine größere Datei (279 MB) wird in C:\Users\User\Documents\test.bin kopiert, um den PVS-Treiber zu zwingen, einige Daten in den nicht ausgelagerten Pool zu schreiben, um zu überprüfen, was passiert, wenn ein Failover auftritt, das beginnt, auf den lokalen Datenträger zu schreiben (z. B. D:\vdiskdif.vhdx). Nachdem Sie die Datei kopiert und den Puffer gezwungen haben, die Kapazität zu überschreiten, können Sie den Erfassungsprozess in WPR beenden und die Ergebnisse mit WPA öffnen.

  3. Öffnen Sie mit dem WPA den Graph Explorer, erweitern Sie Systemaktivitätund wählen Sie Generische Ereignisseaus. Zeigen Sie anhand des folgenden Bildschirms den Inhalt in den Abschnitten WriteData und WriteRamData an. Diese Informationen zeigen die genaue Anzahl der Dateien an, die in C: vDisk (2419 Dateien) geschrieben werden, einschließlich der VHDX-Datei auf dem Laufwerk D: (348 Dateien):

    Beispiel für Windows Performance Analyzer Ergebnisse

    Tipp

    Der WriteData ist kleiner als der angezeigte Wert, da er im RAM zwischengespeichert wird und nicht auf den Datenträger geleert wurde.

  4. Kehren Sie zum Bildschirm Graph Explorer zurück, und erweitern Sie Datei-E/A und Anzahl nach Typ . Die folgende Abbildung veranschaulicht die Reduzierung der E/A (Dateianzahl) und die Dauer, die zwischen dem Schreiben in C:\Users\User\Documents\test.bin und der Spillover-Schreib-Cache-Datei unter D:\vdiskdif.vhdx benötigt wird. Mithilfe dieser Daten können Sie potenzielle Leistungsengpässe anzeigen und den PVS-Filtertreiber effektiv als Problem ausschließen:

    Beispiel für Windows Performance Analyzer-Ergebnisse mit Datei-E/A und Anzahl nach Typ

  5. Nachdem Sie die Dateianzahl und die Dauer der Zeit zwischen Schreibvorgängen (zwischen der Protokolldatei und dem Spillover-Schreibcache) angezeigt haben, können Sie im Debugging-Prozess weiter gehen, um zu verstehen, wo Daten anfänglich geschrieben werden (und wo sie enden), mithilfe von Disk-Offsets. Öffnen Sie im Windows Performance Analyzer den Graph Explorer und erweitern Sie Systemaktivität , und wählen Sie Generische Ereignisse aus. Ändern Sie die Spaltenansicht, damit das WPA-Tool den Datenübergang in den verschiedenen Speicher-Layern anzeigen kann. Kehren Sie zum weiteren Debuggen zur PVS-Umgebung zurück und legen Sie den RAM-Cache-Puffer auf 0 MB fest. Führen Sie dann die Recorder (WPR) und Analyzer (WPA) -Tools neu aus. Die folgende Abbildung veranschaulicht, wie ein Spillover auf die Festplatte auftritt:

Beispiel für Windows Performance Analyzer mit Systemaktivität und generischen Ereignissen

Analyse des PVS-RAM-Cache mit Überlauf