Determina quale deployment dell'operatore AlloyDB Omni analizzare. L'operatore
AlloyDB Omni include due deployment e puoi analizzare
l'heap di memoria per uno dei due. Per identificare i due deployment, esegui questo comando:
kubectlgetdeployment-nalloydb-omni-system
L'output mostra i due deployment nello spazio dei nomi alloydb-omni-system:
fleet-controller-manager
local-controller-manager
Puoi ottenere l'heap di memoria di uno dei due deployment. A scopo dimostrativo,
questi passaggi mostrano come ottenere l'heap di memoria per il
deployment local-controller-manager.
Attiva l'analisi della memoria specificando una porta disponibile da utilizzare. Dopo aver specificato la porta, il pod viene riavviato. Per specificare una porta disponibile, utilizza
l'argomento pprof-address nel deployment:
Apri il deployment in un editor di testo eseguendo questo comando:
Salva il file di deployment. Dopo aver salvato il file di deployment, il pod
viene riavviato.
Attendi il riavvio del pod prima di procedere al passaggio successivo.
Per assicurarti che il pod sia stato riavviato, esegui questo comando:
kubectlgetpod-nalloydb-omni-system
Verifica che il valore di output nella colonna STATUS del pod sia Running e che
il valore di output nella colonna AGE sia una durata breve. Ad esempio, se la colonna
STATUS è Running e il valore nella colonna AGE è 50s, il pod è in esecuzione da 50 secondi dopo il riavvio.
Attiva l'inoltro delle porte utilizzando il seguente comando:
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-05 UTC."],[[["\u003cp\u003eThis document guides you through capturing a memory heap snapshot of the AlloyDB Omni operator to help diagnose and debug potential memory issues.\u003c/p\u003e\n"],["\u003cp\u003eYou can analyze either the \u003ccode\u003efleet-controller-manager\u003c/code\u003e or \u003ccode\u003elocal-controller-manager\u003c/code\u003e deployment by enabling memory analysis via the \u003ccode\u003epprof-address\u003c/code\u003e argument with an available port, causing a pod restart.\u003c/p\u003e\n"],["\u003cp\u003eAfter restarting, port forwarding must be used to capture the memory heap snapshot using \u003ccode\u003ecurl\u003c/code\u003e into a file called \u003ccode\u003eheap.out\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eOnce you have the memory heap information you need, it is important that you turn off memory analysis by removing the \u003ccode\u003epprof-address\u003c/code\u003e argument from the deployment.\u003c/p\u003e\n"]]],[],null,["# Analyze AlloyDB Omni Kubernetes operator memory heap usage\n\nSelect a documentation version: 15.7.0keyboard_arrow_down\n\n- [Current (16.8.0)](/alloydb/omni/current/docs/analyze-memory-heap-usage)\n- [16.8.0](/alloydb/omni/16.8.0/docs/analyze-memory-heap-usage)\n- [16.3.0](/alloydb/omni/16.3.0/docs/analyze-memory-heap-usage)\n- [15.12.0](/alloydb/omni/15.12.0/docs/analyze-memory-heap-usage)\n- [15.7.1](/alloydb/omni/15.7.1/docs/analyze-memory-heap-usage)\n- [15.7.0](/alloydb/omni/15.7.0/docs/analyze-memory-heap-usage)\n\n\u003cbr /\u003e\n\nThis document describes how you can get a snapshot of the memory heap of AlloyDB Omni operator to help diagnose and debug potential memory issues. Use the following steps to get a memory heap for analysis:\n\n\u003cbr /\u003e\n\n1. Determine which AlloyDB Omni operator deployment to analyze. The\n AlloyDB Omni operator includes two deployments, and you can analyze\n the memory heap for either one. To identify the two deployments, run the\n following command:\n\n kubectl get deployment -n alloydb-omni-system\n\n The output shows you the two deployments in the `alloydb-omni-system`\n namespace:\n - `fleet-controller-manager`\n - `local-controller-manager`\n\n You can get the memory heap of either deployment. For demonstration purposes,\n these steps show how to get the memory heap for the\n `local-controller-manager` deployment.\n2. Turn on memory analysis by specifying an available port to use. After the\n port is specified, the pod restarts. To specify an available port, use the\n `pprof-address` argument in the deployment:\n\n 1. Open the deployment in a text editor by running the following command:\n\n kubectl edit -n alloydb-omni-system deploy local-controller-manager\n\n 2. Specify the port in the `args` of the `container` section in the template\n `spec`:\n\n apiVersion: apps/v1\n kind: Deployment\n spec:\n ...\n template:\n ...\n spec:\n containers:\n - args\n - --pprof-address=:\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e\n\n | **Important:** To prevent malicious use of the feature, turn off memory analysis by removing this port argument when you finish analyzing the memory heap.\n 3. Save the deployment file. After you save the deployment file, the pod\n restarts.\n\n3. Wait for the pod to restart before continuing to the next step.\n\n To make sure the pod restarted, run the following command: \n\n kubectl get pod -n alloydb-omni-system\n\n Verify that the output value in the pod's `STATUS` column is `Running` and the\n output value in its `AGE` column is a short duration. For example, if the\n `STATUS` column is `Running` and the value in the `AGE` column is `50s`, then\n the pod has been running for 50 seconds after the restart.\n4. Turn on port forwarding using the following command:\n\n kubectl port-forward -n alloydb-omni-system \u003cvar translate=\"no\"\u003eDEPLOYMENT_POD_NAME\u003c/var\u003e \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e:\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e\n\n Replace \u003cvar translate=\"no\"\u003eDEPLOYMENT_POD_NAME\u003c/var\u003e with the name of your deployment as it\n appears in the `NAME` column of the output of the following command: \n\n kubectl get pod -n alloydb-omni-system\n\n5. In a different terminal, run the following command to create a file with a\n snapshot of the memory heap of the deployment:\n\n curl http://localhost:\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e/debug/pprof/heap \u003e heap.out\n\n6. Save the `heap.out` file and use it to view the memory heap of the\n AlloyDB Omni operator deployment you chose to analyze.\n\n7. Turn off memory analysis by removing the `pprof-address` argument with the\n port you used from the deployment:\n\n 1. Open the deployment in a text editor:\n\n kubectl edit -n alloydb-omni-system deploy local-controller-manager\n\n 2. Remove the port `--pprof-address=:`\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e line from the\n `args` of the `container` section in template `spec` that you added\n earlier.\n\nWhat's next\n-----------\n\n- [Run and connect to AlloyDB Omni](/alloydb/omni/15.7.0/docs/run-connect)\n- [Generate and diagnose AlloyDB Omni dump files](/alloydb/omni/15.7.0/docs/manage-dump-files)\n- [Learn about automatic memory management](/alloydb/omni/15.7.0/docs/automatic-memory-management)"]]