분석할 AlloyDB Omni 연산자 배포를 결정합니다. AlloyDB Omni 연산자에는 두 개의 배포가 포함되어 있으며 둘 중 하나의 메모리 힙을 분석할 수 있습니다. 두 배포를 식별하려면 다음 명령어를 실행합니다.
kubectl get deployment -n alloydb-omni-system
출력에
alloydb-omni-system
네임스페이스의 두 배포가 표시됩니다.fleet-controller-manager
local-controller-manager
두 배포 중 하나의 메모리 힙을 가져올 수 있습니다. 데모를 위해 다음 단계에서는
local-controller-manager
배포의 메모리 힙을 가져오는 방법을 보여줍니다.사용 가능한 포트를 지정하여 메모리 분석을 사용 설정합니다. 포트가 지정되면 포드가 다시 시작됩니다. 사용 가능한 포트를 지정하려면 배포에서
pprof-address
인수를 사용합니다.다음 명령어를 실행하여 텍스트 편집기에서 배포를 엽니다.
kubectl edit -n alloydb-omni-system deploy local-controller-manager
템플릿
spec
의container
섹션에 있는args
에 포트를 지정합니다.apiVersion: apps/v1 kind: Deployment spec: ... template: ... spec: containers: - args - --pprof-address=:PORT
배포 파일을 저장합니다. 배포 파일을 저장하면 포드가 다시 시작됩니다.
포드가 다시 시작될 때까지 기다린 후 다음 단계로 진행합니다.
포드가 다시 시작되었는지 확인하려면 다음 명령어를 실행합니다.
kubectl get pod -n alloydb-omni-system
포드의
STATUS
열의 출력 값이Running
이고AGE
열의 출력 값이 짧은 기간인지 확인합니다. 예를 들어STATUS
열이Running
이고AGE
열의 값이50s
이면 포드가 다시 시작된 후 50초 동안 실행된 것입니다.다음 명령어를 사용하여 포트 전달을 사용 설정합니다.
kubectl port-forward -n alloydb-omni-system DEPLOYMENT_POD_NAME PORT:PORT
DEPLOYMENT_POD_NAME을 다음 명령어의 출력에 있는
NAME
열에 표시된 배포 이름으로 바꿉니다.kubectl get pod -n alloydb-omni-system
다른 터미널에서 다음 명령어를 실행하여 배포의 메모리 힙 스냅샷이 포함된 파일을 만듭니다.
curl http://localhost:PORT/debug/pprof/heap > heap.out
heap.out
파일을 저장하고 이를 사용하여 분석할 AlloyDB Omni 연산자 배포의 메모리 힙을 확인합니다.배포에서 사용한 포트와 함께
pprof-address
인수를 삭제하여 메모리 분석을 사용 중지합니다.텍스트 편집기에서 배포를 엽니다.
kubectl edit -n alloydb-omni-system deploy local-controller-manager
이전에 추가한 템플릿
spec
의container
섹션에 있는args
에서 포트--pprof-address=:PORT
줄을 삭제합니다.
AlloyDB Omni Kubernetes 연산자 메모리 힙 사용량 분석
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
문서 버전을 선택합니다.
이 문서에서는 AlloyDB Omni 연산자의 메모리 힙 스냅샷을 가져와 잠재적인 메모리 문제를 진단하고 디버그하는 방법을 설명합니다. 다음 단계에 따라 분석할 메모리 힙을 가져옵니다.