Erstellen clientseitiger Leistungsüberwachungen
Es gibt zahlreiche Gründe, aus denen die Leistung von Azure Remote Rendering möglicherweise nicht den Erwartungen entspricht. Neben der reinen Renderingleistung auf dem Cloudserver hat insbesondere die Qualität der Netzwerkverbindung einen erheblichen Einfluss auf die Leistung. Informationen zum Erstellen von Profilen für die Leistung des Servers finden Sie im Kapitel Serverseitige Leistungsabfragen.
In diesem Kapitel wird erläutert, wie potenzielle clientseitige Engpässe mithilfe von performance traces. identifiziert werden.
Erste Schritte
Falls Sie noch nicht mit der performance tracing-Funktionalität von Windows vertraut sind, wird in diesem Abschnitt auf die grundlegenden Begriffe und Anwendungen für den Einstieg eingegangen.
Installation
Die Anwendungen für die Ablaufverfolgung mithilfe von Azure Remote Rendering (ARR) sind universelle Tools, die generell für die Entwicklung unter Windows genutzt werden können. Sie werden über das Windows Performance Toolkit bereitgestellt. Sie erhalten dieses Toolkit, indem Sie das Windows Assessment and Deployment Kit (Windows ADK) herunterladen.
Terminologie
Eine Reihe von Begriffen ist wichtig, wenn es um Leistungsablaufverfolgungen geht. Die wichtigsten sind:
Ereignisablaufverfolgung für Windows (Event Tracing for Windows, ETW)
ETW ist einfach der allgemeine Name für die in Windows integrierte effiziente Ablaufverfolgungsfunktion auf Kernelebene. Anwendungen, die ETW unterstützen, geben Ereignisse zur Protokollierung von Aktionen aus, anhand derer Sie Leistungsprobleme nachverfolgen können, daher die Bezeichnung Ereignisablaufverfolgung. Standardmäßig gibt das Betriebssystem bereits Ereignisse für Datenträgerzugriffe, Programmumschaltung und Ähnliches aus. Anwendungen wie ARR geben zusätzlich benutzerdefinierte Ereignisse aus, z. B. zu gelöschten Frames, Netzwerkverzögerungen usw.Ablaufverfolgungsprotokolle für Ereignisse (Event Trace Logging, ETL)
ETL beschreibt eine erfasste (protokollierte) Ablaufverfolgung und wird daher in der Regel als Dateierweiterung für Dateien verwendet wird, in denen die Ablaufverfolgungsdaten gespeichert werden. Wenn Sie also eine Ablaufverfolgung durchführen, erhalten Sie in der Regel eine *.etl-Datei.Windows-Leistungsaufzeichnung (Windows Performance Recorder, WPR)
WPR ist der Name der Anwendung, welche die Aufzeichnung von Ereignisablaufverfolgungen startet und beendet. WPR akzeptiert eine Profildatei (*.wprp), in der konfiguriert ist, welche konkreten Ereignisse zu protokollieren sind. Eine solchewprp
-Datei wird mit dem ARR SDK bereitgestellt. Beim Ausführen von Ablaufverfolgungen auf einem Desktop-PC können Sie WPR direkt starten. Beim Ausführen einer Ablaufverfolgung auf HoloLens nutzen Sie stattdessen normalerweise die Weboberfläche.Windows-Leistungsanalyse (Windows Performance Analyzer, WPA)
WPA ist der Name der GUI-Anwendung, mit der Sie Dateien vom Typ *.etl öffnen und die Daten durchsuchen, um Leistungsprobleme zu ermitteln. Mit WPA können Sie die Daten nach verschiedenen Kriterien sortieren, die Daten auf verschiedene Weise anzeigen lassen, Details genauer untersuchen und Informationen korrelieren.Perfetto
Perfetto ist ein Tool zur Systemprofilerstellung Anwendungsablaufverfolgung für Android und Linux, das seit Android 9 Pie verfügbar ist. Perfetto ist seit v27 des Betriebssystems auch auf Meta Quest- und Quest 2-Geräten (bei aktiviertem Entwicklermodus) aktiviert. Die Benutzeroberfläche des Perfetto-Viewers für Ablaufverfolgungen kann verwendet werden, um resultierende Perfetto-Ablaufverfolgungen zu öffnen und zu analysieren.
ETL-Ablaufverfolgungen können zwar auf jedem Windows-Gerät (lokaler PC, HoloLens, Cloudserver usw.) erstellt werden, sie werden jedoch in der Regel auf einem Datenträger gespeichert und mit WPA auf einem Desktop-PC analysiert. ETL-Dateien können zur weiteren Untersuchung an andere Entwickler gesendet werden. ETL-Ablaufverfolgungen können vertrauliche Informationen enthalten, z. B. Dateipfade und IP-Adressen. Sie haben zwei Möglichkeiten, ETW zu verwenden: zum Aufzeichnen von Ablaufverfolgungen oder zum Analysieren von Ablaufverfolgungen. Das Aufzeichnen von Ablaufverfolgungen ist ein direkter Vorgang, und es ist nur ein minimales Setup erforderlich. Für das Analysieren von Ablaufverfolgungen ist hingegen ein grundlegendes Verständnis sowohl hinsichtlich des WPA-Tools als auch in Bezug auf das untersuchte Problem erforderlich. Allgemeine Informationen zum Kennenlernen von WPA sowie Richtlinien für die Interpretation von ARR-spezifischen Ablaufverfolgungen wird später bereitgestellt.
Aufzeichnen einer Ablaufverfolgung auf einem lokalen PC
Verwenden Sie Ablaufverfolgungen auf dem PC, um sich entweder mit den Tools vertraut zu machen, oder wenn Sie ein Problem haben, bei dem die Hardwareeinschränkungen von HoloLens nicht relevant sind. Andernfalls können Sie mit dem Abschnitt Aufzeichnen einer Ablaufverfolgung auf HoloLens fortfahren. Insbesondere ARR-Leistungsprobleme sollten nur direkt auf HoloLens nachverfolgt werden.
WPR-Konfiguration
- Starten Sie Windows Performance Recorder im Startmenü.
- Erweitern Sie Weitere Optionen.
- Wählen Sie Profile hinzufügen … aus.
- Wählen Sie die Datei AzureRemoteRenderingNetworkProfiling.wprp aus. Sie finden diese Datei im ARR SDK unter Tools/ETLProfiles. Das Profil ist in WPR unter Benutzerdefinierte Messungen aufgelistet. Stellen Sie sicher, dass dies das einzige aktivierte Profil ist.
- Erweitern Sie Selektierung 1. Ebene.
- Wenn Sie lediglich eine schnelle Ablaufverfolgung der ARR-Netzwerkereignisse aufzeichnen möchten, deaktivieren Sie diese Option.
- Wenn Sie ARR-Netzwerkereignisse mit anderen Systemmerkmalen korrelieren müssen, z. B. CPU- oder Arbeitsspeicherauslastung, aktivieren Sie diese Option.
- Ablaufverfolgungen, für die diese Option aktiviert ist, sind wahrscheinlich mehrere Gigabyte groß, und das Speichern und Öffnen in WPA kann lange dauern.
Anschließend sollte Ihre WPR-Konfiguration in etwa so aussehen:
Aufzeichnung
Wählen Sie Starten aus, um die Aufzeichnung einer Ablaufverfolgung zu starten. Sie können die Aufzeichnung jederzeit starten und anhalten. Sie müssen Ihre Anwendung dazu vorher nicht schließen. Wie Sie feststellen, müssen Sie nicht angeben, für welche Anwendung die Ablaufverfolgung ausgeführt werden soll, da ETW eine Ablaufverfolgung immer für das gesamte System aufzeichnet. In der wprp
-Datei ist angegeben, welche Ereignistypen aufgezeichnet werden sollen.
Wählen Sie Speichern aus, um die Aufzeichnung zu beenden und anzugeben, wo die ETL-Datei gespeichert werden soll.
Sie verfügen jetzt über eine ETL-Datei, die Sie in WPA öffnen können.
Aufzeichnen einer Ablaufverfolgung auf einer HoloLens
Wenn Sie eine Ablaufverfolgung auf einer HoloLens aufzeichnen möchten, starten Sie das Gerät, und geben Sie seine IP-Adresse in einem Browser ein, um das Geräteportal zu öffnen.
- Navigieren Sie links zu Performance > Performance Tracing (Leistung > Ablaufleistungsverfolgung).
- Wählen Sie Benutzerdefinierte Profile aus.
- Wählen Sie Browse... aus.
- Wählen Sie die Datei AzureRemoteRenderingNetworkProfiling.wprp aus. Sie finden diese Datei im ARR SDK unter Tools/ETLProfiles.
- Wählen Sie Ablaufverfolgung starten aus.
- Die HoloLens zeichnet nun eine Ablaufverfolgung auf. Vergewissern Sie sich, dass die zu untersuchenden Leistungsprobleme ausgelöst wurden. Wählen Sie dann Ablaufverfolgung beenden aus.
- Die Ablaufverfolgung wird dann unten auf der Webseite aufgeführt. Um die ETL-Datei herunterzuladen, wählen Sie auf der rechten Seite das Datenträgersymbol aus.
Sie verfügen jetzt über eine ETL-Datei, die Sie in WPA öffnen können.
Aufzeichnen einer Ablaufverfolgung auf einem Meta Quest-Gerät
Um eine Ablaufverfolgung auf Quest aufzuzeichnen, benötigen Sie das Befehlszeilentool „adb“.
- Stellen Sie sicher, dass der Entwicklermodus auf Ihrem Quest-Gerät aktiviert ist.
- Stellen Sie sicher, dass adb berechtigt ist, auf Ihr Gerät zuzugreifen, indem Sie
adb devices
ausführen und überprüfen, ob das Gerät aufgeführt ist. - Suchen Sie die Konfigurationsdatei für die Ablaufverfolgung AzureRemoteRenderingPerfetto.txt aus dem ARR SDK unter Tools/ETLProfiles.
- Die Ablaufverfolgungskonfiguration ist standardmäßig so eingerichtet, dass sie 30 Sekunden lang ausgeführt wird. Diese Konfiguration kann durch Bearbeiten des Werts von
duration_ms: 30000
in der Datei AzureRemoteRenderingPerfetto.txt geändert werden.
- Die Ablaufverfolgungskonfiguration ist standardmäßig so eingerichtet, dass sie 30 Sekunden lang ausgeführt wird. Diese Konfiguration kann durch Bearbeiten des Werts von
- Führen Sie in PowerShell
$config = cat "AzureRemoteRenderingPerfetto.txt" | adb shell perfetto -c - $config --txt --o "/data/misc/perfetto-traces/trace"
aus. - Sie sollten eine ähnliche Ausgabe wie diese Zeile erhalten.
[522.149] perfetto_cmd.cc:825 Connected to the Perfetto traced service, TTL: 30s
- Das Quest-Gerät zeichnet nun eine Ablaufverfolgung auf. Starten Sie Ihre Anwendung, und lösen Sie das Problem aus, das Sie untersuchen möchten.
- Wenn die Aufzeichnung der Ablaufverfolgung abgeschlossen ist, sollten Sie eine ähnliche Ausgabe wie diese Zeile erhalten.
[552.637] perfetto_cmd.cc:946 Trace written into the output file
- Schließlich können Sie die Datei vom Gerät abrufen, indem Sie
adb pull "/data/misc/perfetto-traces/trace" "outputTrace.pftrace"
ausführen.
Sie verfügen jetzt über eine Perfetto-Ablaufverfolgungsdatei, die Sie auf der Benutzeroberfläche des Perfetto-Viewers für Ablaufverfolgungen öffnen können.
Analysieren von Ablaufverfolgungen mit WPA
WPA-Grundlagen
Die Windows-Leistungsanalyse (Windows Performance Analyzer, WPA) ist das Standardtool zum Öffnen von ETL-Dateien und zum Untersuchen der Ablaufverfolgungen. Eine Beschreibung der Funktionsweise von WPA überschreitet den Rahmen dieses Artikels. Schauen Sie sich zunächst die folgenden Ressourcen an:
- Sehen Sie sich die Einführungsvideos an, um einen ersten Überblick zu erhalten.
- Sehen Sie sich die Registerkarte Erste Schritte WPA selbst an, auf der allgemeine Schritte erläutert sind. Werfen Sie einen Blick in die verfügbaren Artikel. Insbesondere unter „Daten anzeigen“ erhalten Sie eine kurze Einführung zum Erstellen von Diagrammen für bestimmte Daten.
- Schauen Sie sich die hervorragenden Informationen auf dieser Websitean, aber beachten Sie, dass nicht alle Informationen für Einsteiger relevant sind.
Erstellen von Diagrammen für Daten
Für den Einstieg in die Arbeit mit der ARR-Ablaufverfolgung empfiehlt es sich, sich mit folgenden Aspekten vertraut zu machen.
Die Abbildung zeigt eine Tabelle mit Ablaufverfolgungsdaten und die Diagrammdarstellung derselben Daten.
Schauen Sie sich unten in der Tabelle den gelben (goldenen) Balken und den blauen Balken an. Sie können diese Balken an eine beliebige Position ziehen.
Alle Spalten links vom gelben Balken werden als Schlüssel interpretiert. Mithilfe von Schlüsseln wird die Struktur im oberen linken Fenster strukturiert. Hier gibt es zwei Schlüsselspalten, „Anbietername“ und „Taskname“. Folglich ist die Baumstruktur im oberen linken Fenster zwei Ebenen tief. Wenn Sie die Spalten neu anordnen oder Spalten im Schlüsselbereich hinzufügen oder entfernen, ändert sich die Struktur in der Strukturansicht.
Spalten rechts vom blauen Balken werden für die Diagrammanzeige im Fenster oben rechts verwendet. In den meisten Fällen wird nur die erste Spalte verwendet, für einige Diagrammmodi sind jedoch mehrere Datenspalten erforderlich. Damit Liniendiagramme funktionieren, muss der Aggregationsmodus für die betreffende Spalte festgelegt sein. Verwenden Sie „Avg“ oder „Max“. Mit dem Aggregationsmodus wird der Wert des Diagramms für ein bestimmtes Pixel bestimmt, wenn ein Pixel einen Bereich mit mehreren Ereignissen abdeckt. Diese Eigenschaft kann beobachtet werden, wenn die Aggregation auf „Sum“ festgelegt und die Ansicht anschließend vergrößert und verkleinert wird.
Die Spalten in der Mitte haben keine besondere Bedeutung.
Im Editor für die Anzeige „Generische Ereignisse“ können Sie alle anzuzeigenden Spalten, den Aggregationsmodus, die Sortierung sowie die Spalten konfigurieren, die als Schlüssel für die Diagrammerstellung verwendet werden sollen. Im der Beispielabbildung ist Feld 2 aktiviert, und die Felder 3 bis 6 sind deaktiviert. Feld 2 ist normalerweise das erste Feld mit benutzerdefinierten Daten eines ETW-Ereignisses und bezieht sich damit auf ARR-Ereignisse vom Typ „FrameStatistics“, die einen Netzwerklatenzwert darstellen. Aktivieren Sie andere „Feld“-Spalten, um weitere Werte dieses Ereignisses anzuzeigen.
Voreinstellungen
Um eine Ablaufverfolgung ordnungsgemäß zu analysieren, müssen Sie Ihren eigenen Workflow und die bevorzugte Datenanzeige ermitteln. Damit wir einen raschen Überblick über die ARR-spezifischen Ereignisse erhalten, schließen wir ein Profil für den Windows-Softwareschutzplattform-Dienst und Dateien mit Voreinstellungen in den Ordner Tools/ETLProfiles ein. Wenn Sie ein vollständiges Profil laden möchten, wählen Sie in der WPA-Menüleiste Profiles > Apply... (Profile > Anwenden) aus, oder öffnen Sie den Bereich My Presets (Meine Voreinstellungen) (Window > My Presets (Fenster > Meine Voreinstellungen)), und wählen Sie Import (Importieren) aus. Mit der ersten Option wird eine vollständige WPA-Konfiguration wie in der Abbildung unter diesem Abschnitt festgelegt. Mit der zweiten Option hingegen werden nur Voreinstellungen für die diversen verfügbaren Ansichtskonfigurationen festgelegt, und Sie können schnell eine Ansicht öffnen, um einen Blick auf bestimmte ARR-Ereignisdaten zu werfen.
Die Abbildung veranschaulicht Ansichten verschiedener ARR-spezifischer Ereignisse sowie eine Ansicht der CPU-Gesamtauslastung.