Analisar o uso de heap de memória do operador do AlloyDB Omni no Kubernetes

Selecione uma versão da documentação:

Neste documento, descrevemos como fazer um snapshot do heap de memória do operador do AlloyDB Omni para ajudar a diagnosticar e depurar possíveis problemas de memória. Siga estas etapas para receber um heap de memória para análise:

  1. Determine qual implantação do operador do AlloyDB Omni analisar. O operador do 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 a seguir:

    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 uma das implantações. Para fins de demonstração, estas etapas mostram como extrair o heap de memória da implantação local-controller-manager.

  2. Ative a análise de memória especificando uma porta disponível para uso. Depois que a porta for especificada, o pod será reiniciado. Para especificar uma porta disponível, use o argumento pprof-address na implantação:

    1. Abra a implantação em um editor de texto executando o seguinte comando:

      kubectl edit -n alloydb-omni-system deploy local-controller-manager
    2. Especifique a porta no args da seção container no modelo spec:

      apiVersion: apps/v1
      kind: Deployment
      spec:
        ...
        template:
        ...
          spec:
            containers:
            - args
              - --pprof-address=:PORT
      
    3. Salve o arquivo de implantação. Depois de salvar o arquivo de implantação, o pod será reiniciado.

  3. 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

    Confira se o valor de saída na coluna STATUS do pod é Running e se o valor de saída na coluna AGE é de curta duração. Por exemplo, se a coluna STATUS for Running e o valor na coluna AGE for 50s, então o pod estará em execução há 50 segundos após a reinicialização.

  4. 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 sua implantação, conforme aparece na coluna NAME da saída do comando a seguir:

    kubectl get pod -n alloydb-omni-system
  5. Em outro terminal, execute o seguinte comando para criar um arquivo com um snapshot do heap de memória da implantação:

    curl http://localhost:PORT/debug/pprof/heap > heap.out
  6. Salve o arquivo heap.out e use-o para ver o heap de memória da implantação do operador do AlloyDB Omni que você escolheu analisar.

  7. Para desativar a análise de memória, remova o argumento pprof-address com a porta usada da implantação:

    1. Abra a implantação em um editor de texto:

      kubectl edit -n alloydb-omni-system deploy local-controller-manager
    2. Remova a linha da porta --pprof-address=:PORT do args da seção container no modelo spec que você adicionou antes.

A seguir