Cloud Profiler – Übersicht

Die Leistung von Produktionssystemen nachzuvollziehen, ist bekanntermaßen schwierig. Bei Leistungsmessungen in Testumgebungen gelingt es meist nicht, die Beanspruchung eines Produktionssystems zu reproduzieren. Microbenchmarking für Teile der Anwendung ist zwar in einigen Fällen möglich, die Arbeitslast und das Verhalten eines Produktionssystems können jedoch üblicherweise nicht nachgebildet werden.

Das kontinuierliche Erstellen von Produktionssystemprofilen ist ein probates Mittel, um herauszufinden, wo Ressourcen wie CPU-Zyklen und Arbeitsspeicher beansprucht werden, wenn ein Dienst in seiner Arbeitsumgebung ausgeführt wird. Allerdings stellt die Profilerstellung eine zusätzliche Belastung für das Produktionssystem dar: Damit Muster des Ressourcenverbrauchs auf akzeptable Weise erkannt werden können, muss die zusätzliche Last der Profilerstellung gering sein.

Cloud Profiler ist ein statistischer Profiler mit geringem Overhead, der kontinuierlich Informationen zur CPU-Nutzung und Arbeitsspeicherzuweisung aus Ihren Produktionsanwendungen sammelt. Anschließend werden diese Informationen dem Quellcode zugeordnet, der sie generiert hat. So können Sie feststellen, welche Codesegmente die meisten Ressourcen beanspruchen. Außerdem können Sie auch die Leistungsmerkmale des Codes hervorheben.

Verfügbare Arten der Profilerstellung

Cloud Profiler unterstützt verschiedene Arten der Profilerstellung, je nach der Sprache, in der ein Programm geschrieben ist. In der folgenden Tabelle sind die unterstützten Profiltypen nach Sprache aufgeführt:

Profiltyp Einfach loslegen (Go) Java Node.js Python
CPU-Zeit JaJa Ja
Heap JaJa Ja
Zugewiesener Heap Ja
Konflikt Ja
Threads Ja
Echtzeit Ja JaJa

Ausführliche Informationen zu den Sprachanforderungen und möglichen Einschränkungen finden Sie auf der Anleitungsseite der jeweiligen Sprache. Weitere Informationen zu diesen Profiltypen finden Sie unter Konzepte der Profilerstellung.

Unterstützte Konfigurationen

Wenn Sie Ihre Anwendung zur Erfassung von Profildaten konfigurieren, fügen Sie einen sprachspezifischen Profiler-Agent hinzu. In der folgenden Tabelle sind die unterstützten Umgebungen aufgeführt:

Umgebungen Einfach loslegen (Go) Java Node.js Python
Compute Engine JaJaJaJa
Google Kubernetes Engine JaJaJaJa
Flexible App Engine-Umgebung JaJaJaJa
App Engine-Standardumgebung JaJaJaJa
Dataproc J
Dataflow JaJa
Außerhalb von Google Cloud JaJaJaJa

In der folgenden Tabelle sind die unterstützen Betriebssysteme aufgeführt:

Betriebssysteme Einfach loslegen (Go) Java Node.js Python
Linux
glibc-Implementierung der Standard-C-Bibliothek
JaJa JaJa
Linux
musl-Implementierung der Standard-C-Bibliothek
JaJa (Alpha) JaJa (Alpha)

Auswirkungen auf die Leistung

Für ein einzelnes Profil erfasst Cloud Profiler normalerweise zehn Sekunden lang Profildaten für eine einzelne Instanz des konfigurierten Dienstes in einer einzelnen Compute Engine-Zone. Pro Minute wird ein Profil erstellt. Wenn Ihr GKE-Dienst beispielsweise zehn Replikate eines Pods ausführt, werden in einem Zeitraum von zehn Minuten ungefähr zehn Profile erstellt, wobei für jeden Pod etwa ein Profil erstellt wird. Der Zeitraum der Profilerstellung ist randomisiert, sodass es Abweichungen gibt. Weitere Informationen finden Sie unter Profilerfassung.

Der Overhead beim Erstellen von CPU- und Heap-Zuweisungsprofilen beträgt zum Zeitpunkt der Datenerfassung weniger als fünf Prozent. Über die Ausführungszeit und mehrere Replikate eines Dienstes hinweg gesehen beträgt der Overhead normalerweise weniger als 0,5 %. Dies macht Stackdriver Profiler zu einer erschwinglichen Option für die permanente Profilerstellung in Produktionssystemen.

Komponenten

Cloud Profiler besteht aus dem Profiler-Agent, der die Daten erfasst, und einer Konsolenoberfläche in Google Cloud, mit der Sie die vom Agent erfassten Daten ansehen und analysieren können.

Profiler-Agent

Der Agent wird auf den virtuellen Maschinen installiert, auf denen Ihre Anwendung ausgeführt wird. Er wird normalerweise als Bibliothek bereitgestellt, die Sie dem Code bei dessen Ausführung hinzufügen. Der Agent erfasst Profildaten, während die Anwendung ausgeführt wird.

Informationen zum Ausführen des Cloud Profiler-Agents finden Sie unter:

Stackdriver Profiler-Oberfläche

Nachdem der Agent einige Profildaten erfasst hat, können Sie anhand der Profiler-Oberfläche ermitteln, wie die Statistiken zur CPU- und Speichernutzung mit bestimmten Bereichen Ihrer Anwendung korrelieren.

Screenshot: Cloud Profiler-Oberfläche

Die Profildaten werden 30 Tage lang aufbewahrt, sodass Sie Leistungsdaten über einen 30 Tage zurückliegenden Zeitraum analysieren können. Die Profile lassen sich zur langfristigen Speicherung herunterladen.

Kontingente und Limits

Weitere Informationen zum Aufrufen und Verwalten Ihrer Profiler-Kontingente finden Sie unter Kontingente und Limits.

Datensicherheit

Cloud Profiler ist ein von VPC Service Controls unterstützter Dienst. Weitere Informationen dazu finden Sie in der Dokumentation zu VPC Service Controls.