Este documento descreve como é possível fazer um snapshot do heap de memória do operador AlloyDB Omni para ajudar a diagnosticar e depurar possíveis problemas de memória. Siga estas etapas para conseguir um heap de memória para análise:
Determine qual implantação do operador do AlloyDB Omni analisar. O operador AlloyDB Omni inclui duas implantações, e você pode analisar o heap de memória de qualquer uma delas. Para identificar as duas implantações, execute o comando abaixo:
kubectl get deployment -n alloydb-omni-system
A saída mostra as duas implantações no namespace
alloydb-omni-system
:fleet-controller-manager
local-controller-manager
É possível acessar o heap de memória de qualquer implantação. Para fins de demonstração, estas etapas mostram como acessar o heap de memória para a implantação de
local-controller-manager
.Ative a análise de memória especificando uma porta disponível para uso. Depois que o puerto é especificado, o pod é reinicializado. Para especificar uma porta disponível, use o argumento
pprof-address
na implantação:Abra a implantação em um editor de texto executando o seguinte comando:
kubectl edit -n alloydb-omni-system deploy local-controller-manager
Especifique a porta no
args
da seçãocontainer
no modelospec
:apiVersion: apps/v1 kind: Deployment spec: ... template: ... spec: containers: - args - --pprof-address=:PORT
Salve o arquivo de implantação. Depois de salvar o arquivo de implantação, o pod é reiniciado.
Aguarde a reinicialização do pod antes de continuar para a próxima etapa.
Para garantir que o pod foi reiniciado, execute o seguinte comando:
kubectl get pod -n alloydb-omni-system
Verifique se o valor de saída na coluna
STATUS
do pod éRunning
e se o valor de saída na colunaAGE
tem uma duração curta. Por exemplo, se a colunaSTATUS
forRunning
e o valor na colunaAGE
for50s
, o pod estará em execução por 50 segundos após a reinicialização.Ative o encaminhamento de portas usando o seguinte comando:
kubectl port-forward -n alloydb-omni-system DEPLOYMENT_POD_NAME PORT:PORT
Substitua DEPLOYMENT_POD_NAME pelo nome da implantação, conforme aparece na coluna
NAME
da saída do comando a seguir:kubectl get pod -n alloydb-omni-system
Em outro terminal, execute o comando a seguir para criar um arquivo com um snapshot do heap de memória da implantação:
curl http://localhost:PORT/debug/pprof/heap > heap.out
Salve o arquivo
heap.out
e use-o para conferir o heap de memória da implantação do operador do AlloyDB Omni que você escolheu analisar.Desative a análise de memória removendo o argumento
pprof-address
com a porta usada na implantação:Abra a implantação em um editor de texto:
kubectl edit -n alloydb-omni-system deploy local-controller-manager
Remova a linha de porta
--pprof-address=:PORT
doargs
da seçãocontainer
no modelospec
que você adicionou anteriormente.
A seguir
- Executar e se conectar ao AlloyDB Omni
- Gerar e diagnosticar arquivos de despejo do AlloyDB Omni
- Saiba mais sobre o gerenciamento automático de memória