Bei einer Webanwendung, die mit einem JRE-basierten Docker-Image im Kubernetes-Cluster ausgeführt wird, Beispiel: tomcat:9.0-jre11-temurin, ist das Abrufen des Thread-Dumps nicht einfach, da das JRE-basierte Docker-Image keine Tools wie jstack enthält , jmap...
Wir können Jattach-Tools verwenden, um unsere Aufgabe zu erledigen. TLDR; jattach ist ein kompaktes Tool, das von Andrei Pangin in C geschrieben wurde.
Zuerst müssen wir das Tool in den Container herunterladen:
Öffnen Sie die Schale im Behälter:
kubectl -n default exec -it your-tomcat-pod -c your-tomcat-container -- bash
Laden Sie den Jattach in das Arbeitsverzeichnis herunter
cd /working-dir curl -L -O https://github.com/apangin/jattach/releases/download/v2.2/jattach chmod +x jattach
Erstellen Sie von Ihrem Terminal aus einen Thread-Dump und speichern Sie ihn in der Ausgabedatei
kubectl -n default exec your-tomcat-pod \ -c your-tomcat-container -- \ /working-dir/jattach 1 threaddump > thread-dump.txt
Dann können Sie das Tool jstack.review verwenden, um den Thread-Dump zu analysieren.
Das obige ist der detaillierte Inhalt vonHolen Sie sich den Thread-Dump des Java-Containers, der auf dem JRE-Docker-Image ausgeführt wird. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!