Profilerstellung für Java-Code
Auf dieser Seite wird beschrieben, wie Sie Ihre Java-Anwendung so ändern, dass Datenprofile erstellt und an Ihr Google Cloud-Projekt gesendet werden können. Allgemeine Informationen zur Profilerstellung finden Sie unter Konzepte der Profilerstellung.
.Profiltypen für Java:
- CPU-Zeit
- Heap (erfordert Java 11 oder die App Engine-Standardumgebung, standardmäßig deaktiviert)
- Echtzeit (für Java 8 in der App Engine-Standardumgebung nicht verfügbar)
Unterstützte Java-Sprachversionen:
- HotSpot-basierte JVMs (einschließlich Oracle JDK und einiger OpenJDK-Builds) für Java 8, 11 oder höher.
Unterstützte Profiler-Agent-Versionen:
- Der neueste Release des Agents wird unterstützt. Im Allgemeinen werden Releases, die älter als ein Jahr sind, nicht unterstützt. Wir empfehlen, die neueste veröffentlichte Version des Agents zu verwenden.
Unterstützte Betriebssysteme:
- Linux: Die Profilerstellung für Java-Anwendungen wird für Linux-Kernel unterstützt, deren Standard-C-Bibliothek mit
glibcoder mitmuslimplementiert wurde. Konfigurationsinformationen zu Linux Alpine-Kernels finden Sie unter Mit Linux Alpine ausführen.
Unterstützte Umgebungen:
- Compute Engine
- Google Kubernetes Engine (GKE)
- Flexible App Engine-Umgebung
- App Engine-Standardumgebung (erfordert das App Engine SDK, Version 1.9.64 oder höher)
- Managed Service for Apache Spark (Weitere Informationen finden Sie unter Cloud Profiler für Managed Service for Apache Spark Spark- und Hadoop-Jobs konfigurieren.)
- Außerhalb von Google Cloud (Informationen zu den zusätzlichen Konfigurationsanforderungen finden Sie unter Profilerstellung für Code außerhalb von Google Cloud.)
Profiler API aktivieren
Sorgen Sie vor Verwendung des Profiler-Agents dafür, dass die zugrunde liegende Profiler API aktiviert ist. Sie können den Status der API prüfen und sie bei Bedarf über die Google Cloud CLI oder die Google Cloud -Konsole aktivieren:
gcloud-CLI
Wenn Sie die Google Cloud-Befehlszeile noch nicht auf Ihrer Workstation installiert haben, lesen Sie die Dokumentation zur Google Cloud-Befehlszeile.
Führen Sie dazu diesen Befehl aus:
gcloud services enable cloudprofiler.googleapis.com
Weitere Informationen finden Sie unter gcloud services.
Google Cloud Console
-
Aktivieren Sie die Cloud Profiler API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen Wenn API aktiviert angezeigt wird, ist die API bereits aktiviert. Falls nicht, klicken Sie auf den Button Aktivieren.
Dienstkonto eine IAM-Rolle zuweisen
Wenn Sie Ihre Anwendung auf Google Cloud -Ressourcen bereitstellen und das Standarddienstkonto verwenden und die Rollenzuweisungen für dieses Dienstkonto nicht geändert haben, können Sie diesen Abschnitt überspringen.
Wenn Sie eine der folgenden Aktionen ausführen, müssen Sie dem Dienstkonto die IAM-Rolle Cloud Profiler-Agent (roles/cloudprofiler.agent) zuweisen:
- Sie verwenden das Standarddienstkonto, haben aber die Rollenzuweisungen geändert.
- Sie verwenden ein vom Nutzer erstelltes Dienstkonto.
- Wenn Sie Workload Identity verwenden, weisen Sie dem Kubernetes-Dienstkonto die Rolle „Cloud Profiler-Agent“ zu.
Sie können einem Dienstkonto eine IAM-Rolle über dieGoogle Cloud -Console oder die Google Cloud CLI zuweisen. Sie können beispielsweise den Befehl gcloud projects add-iam-policy-binding verwenden:
gcloud projects add-iam-policy-binding GCP_PROJECT_ID \
--member serviceAccount:MY_SVC_ACCT_ID@GCP_PROJECT_ID.iam.gserviceaccount.com \
--role roles/cloudprofiler.agent
Ersetzen Sie vor dem Ausführen des vorherigen Befehls Folgendes:
- GCP_PROJECT_ID: Ihre Projekt-ID.
- MY_SVC_ACCT_ID: Name Ihres Dienstkontos.
Weitere Informationen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Profiler-Agent installieren
Compute Engine
Erstellen Sie ein Installationsverzeichnis für den Profiler-Agent, z. B.
/opt/cprof:sudo mkdir -p /opt/cprofLaden Sie das Agent-Archiv aus dem Repository
storage.googleapis.comherunter und extrahieren Sie es in das Installationsverzeichnis:wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \ | sudo tar xzv -C /opt/cprof
GKE
Ändern Sie das Dockerfile, um ein Installationsverzeichnis für den Profiler-Agent zu erstellen. Laden Sie dann das Agent-Archiv herunter und extrahieren Sie es in das Installationsverzeichnis.
Linux (glibc-basierte C-Bibliothek):
Verwenden Sie den folgenden Installationsbefehl:
RUN mkdir -p /opt/cprof && \
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
| tar xzv -C /opt/cprofLinux Alpine (musl-basierte C-Bibliothek):
Verwenden Sie den folgenden Installationsbefehl:
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent_alpine.tar.gz \ | tar xzv -C /opt/cprof
Flexible Umgebung
Wenn Sie das Basis-Image der Java 8-Laufzeit oder der Java 9-/Jetty 9-Laufzeit von Google verwenden, ist der Profiler-Agent vorinstalliert. Sie müssen also keine zusätzlichen Schritte ausführen, um den Agent zu installieren.
Für alle anderen Basis-Images müssen Sie den Agent installieren. Das folgende Dockerfile enthält beispielsweise die Anleitungen zum Verwenden des openjdk:11-slim-Image, um den Profiler-Agent zu installieren. Es definiert auch die Standardparameter, die beim Starten der Anwendung verwendet werden sollen:
FROM openjdk:11-slim
COPY . .
RUN apt-get update \
&& apt-get install wget \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p /opt/cprof && \
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz \
| tar xzv -C /opt/cprof
CMD ["java", "-agentpath:/opt/cprof/profiler_java_agent.so=OPTION1,OPTION2", "-jar", "PATH_TO_YOUR_JAR_FILE"]