In diesem Dokument wird beschrieben, wie Sie einen Snapshot des Speicher-Heaps des AlloyDB Omni-Operators abrufen können, um potenzielle Speicherprobleme zu diagnostizieren und zu beheben. So rufen Sie einen Speicher-Heap zur Analyse ab:
Legen Sie fest, welche AlloyDB Omni-Operatorbereitstellung analysiert werden soll. Der AlloyDB Omni-Operator umfasst zwei Bereitstellungen und Sie können den Speicher-Heap für beide analysieren. Führen Sie den folgenden Befehl aus, um die beiden Bereitstellungen zu identifizieren:
kubectl get deployment -n alloydb-omni-system
Die Ausgabe zeigt die beiden Bereitstellungen im Namespace
alloydb-omni-system
:fleet-controller-manager
local-controller-manager
Sie können den Speicher-Heap jeder Bereitstellung abrufen. In diesen Schritten wird zu Demonstrationszwecken gezeigt, wie Sie den Speicher-Heap für die
local-controller-manager
-Bereitstellung abrufen.Aktivieren Sie die Speicheranalyse, indem Sie einen verfügbaren Port angeben. Nachdem der Port angegeben wurde, wird der Pod neu gestartet. Verwenden Sie das Argument
pprof-address
in der Bereitstellung, um einen verfügbaren Port anzugeben:Öffnen Sie die Bereitstellung in einem Texteditor. Führen Sie dazu den folgenden Befehl aus:
kubectl edit -n alloydb-omni-system deploy local-controller-manager
Geben Sie den Anschluss im Abschnitt
container
des Elementsargs
in der Vorlage an:spec
apiVersion: apps/v1 kind: Deployment spec: ... template: ... spec: containers: - args - --pprof-address=:PORT
Speichern Sie die Bereitstellungsdatei. Nachdem Sie die Bereitstellungsdatei gespeichert haben, wird der Pod neu gestartet.
Warten Sie, bis der Pod neu gestartet wurde, bevor Sie mit dem nächsten Schritt fortfahren.
Führen Sie den folgenden Befehl aus, um sicherzustellen, dass der Pod neu gestartet wurde:
kubectl get pod -n alloydb-omni-system
Prüfen Sie, ob der Ausgabewert in der Spalte
STATUS
des PodsRunning
ist und der Ausgabewert in der SpalteAGE
eine kurze Dauer hat. Wenn der Wert in der SpalteSTATUS
beispielsweiseRunning
und der Wert in der SpalteAGE
50s
ist, läuft der Pod nach dem Neustart seit 50 Sekunden.Aktivieren Sie die Portweiterleitung mit dem folgenden Befehl:
kubectl port-forward -n alloydb-omni-system DEPLOYMENT_POD_NAME PORT:PORT
Ersetzen Sie DEPLOYMENT_POD_NAME durch den Namen Ihrer Bereitstellung, wie er in der Spalte
NAME
der Ausgabe des folgenden Befehls angezeigt wird:kubectl get pod -n alloydb-omni-system
Führen Sie in einem anderen Terminal den folgenden Befehl aus, um eine Datei mit einem Snapshot des Speicherheaps der Bereitstellung zu erstellen:
curl http://localhost:PORT/debug/pprof/heap > heap.out
Speichern Sie die
heap.out
-Datei und verwenden Sie sie, um den Speicher-Heap der AlloyDB Omni-Betriebsbereitstellung aufzurufen, die Sie analysieren möchten.Deaktivieren Sie die Speicheranalyse, indem Sie das
pprof-address
-Argument mit dem verwendeten Anschluss aus der Bereitstellung entfernen:Öffnen Sie die Bereitstellung in einem Texteditor:
kubectl edit -n alloydb-omni-system deploy local-controller-manager
Entfernen Sie die Zeile „Port
--pprof-address=:PORT
“ aus demargs
des Abschnittscontainer
in der Vorlagespec
, die Sie zuvor hinzugefügt haben.
Nächste Schritte
- AlloyDB Omni ausführen und eine Verbindung herstellen
- AlloyDB Omni-Dumpdateien generieren und analysieren
- Weitere Informationen zur automatischen Arbeitsspeicherverwaltung