Menganalisis penggunaan heap memori operator AlloyDB Omni Kubernetes

Dokumen ini menjelaskan cara mendapatkan ringkasan heap memori operator AlloyDB Omni untuk membantu mendiagnosis dan men-debug potensi masalah memori. Gunakan langkah-langkah berikut untuk mendapatkan heap memori untuk analisis:

  1. Tentukan deployment operator AlloyDB Omni yang akan dianalisis. Operator AlloyDB Omni menyertakan dua deployment, dan Anda dapat menganalisis heap memori untuk salah satunya. Untuk mengidentifikasi dua deployment, jalankan perintah berikut:

    kubectl get deployment -n alloydb-omni-system

    Output akan menampilkan dua deployment di namespace alloydb-omni-system:

    • fleet-controller-manager
    • local-controller-manager

    Anda bisa mendapatkan heap memori dari salah satu deployment. Untuk tujuan demonstrasi, langkah-langkah ini menunjukkan cara mendapatkan heap memori untuk deployment local-controller-manager.

  2. Aktifkan analisis memori dengan menentukan port yang tersedia untuk digunakan. Setelah port ditentukan, pod akan dimulai ulang. Untuk menentukan port yang tersedia, gunakan argumen pprof-address dalam deployment:

    1. Buka deployment di editor teks dengan menjalankan perintah berikut:

      kubectl edit -n alloydb-omni-system deploy local-controller-manager
    2. Tentukan port di args bagian container di template spec:

      apiVersion: apps/v1
      kind: Deployment
      spec:
        ...
        template:
        ...
          spec:
            containers:
            - args
              - --pprof-address=:PORT
      
    3. Simpan file deployment. Setelah Anda menyimpan file deployment, pod akan dimulai ulang.

  3. Tunggu hingga pod dimulai ulang sebelum melanjutkan ke langkah berikutnya.

    Untuk memastikan pod dimulai ulang, jalankan perintah berikut:

    kubectl get pod -n alloydb-omni-system

    Verifikasi bahwa nilai output di kolom STATUS pod adalah Running dan nilai output di kolom AGE-nya adalah durasi singkat. Misalnya, jika kolom STATUS adalah Running dan nilai di kolom AGE adalah 50s, maka pod telah berjalan selama 50 detik setelah dimulai ulang.

  4. Aktifkan penerusan port menggunakan perintah berikut:

    kubectl port-forward -n alloydb-omni-system DEPLOYMENT_POD_NAME PORT:PORT

    Ganti DEPLOYMENT_POD_NAME dengan nama deployment Anda seperti yang muncul di kolom NAME pada output perintah berikut:

    kubectl get pod -n alloydb-omni-system
  5. Di terminal lain, jalankan perintah berikut untuk membuat file dengan snapshot heap memori deployment:

    curl http://localhost:PORT/debug/pprof/heap > heap.out
  6. Simpan file heap.out dan gunakan untuk melihat heap memori deployment operator AlloyDB Omni yang Anda pilih untuk dianalisis.

  7. Nonaktifkan analisis memori dengan menghapus argumen pprof-address dengan port yang Anda gunakan dari deployment:

    1. Buka deployment di editor teks:

      kubectl edit -n alloydb-omni-system deploy local-controller-manager
    2. Hapus baris port --pprof-address=:PORT dari args bagian container dalam template spec yang Anda tambahkan sebelumnya.

Langkah selanjutnya