Mengonfigurasi batas memori

Pelajari cara menetapkan batas untuk memori yang digunakan oleh instance container dalam penayangan Knative.

Memahami penggunaan memori

Instance container penyaluran Knative yang melebihi batas memori yang diizinkan akan dihentikan.

Berikut ini akan mengurangi memori yang tersedia dari instance container Anda:

  • Menjalankan aplikasi yang dapat dieksekusi (karena file yang dapat dieksekusi harus dimuat ke memori)
  • Mengalokasikan memori dalam proses aplikasi Anda
  • Menulis file ke sistem file

Ukuran image container yang di-deploy tidak termasuk dalam memori yang tersedia.

Jumlah memori maksimum

Jumlah maksimum memori yang dapat dikonfigurasi dibatasi oleh konfigurasi cluster GKE Anda.

Mengoptimalkan memori

Anda dapat menentukan persyaratan memori puncak untuk layanan menggunakan hal berikut: (Standing Memory) + (Memory per Request) * (Service Concurrency)

Oleh karena itu,

  • Jika Anda meningkatkan konkurensi layanan, Anda juga harus meningkatkan batas memori untuk memperkirakan penggunaan tertinggi.

  • Jika Anda menurunkan konkurensi layanan, pertimbangkan juga untuk mengurangi batas memori guna menghemat biaya penggunaan memori.

Untuk panduan lebih lanjut tentang meminimalkan penggunaan memori per permintaan, baca Tips Pengembangan Variabel Global.

Menyetel dan mengupdate batas memori

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.

Anda dapat menetapkan batas memori menggunakan Konsol Google Cloud, Google Cloud CLI, atau file YAML saat men-deploy layanan baru atau mengupdate layanan yang ada dan men-deploy revisi:

Konsol

  1. Buka penayangan Knative di konsol Google Cloud:

    Buka penayangan Knative

  2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik Edit & Deploy New revision.

  3. Di bagian Setelan lanjutan, klik Penampung.

  4. Pilih ukuran memori yang diinginkan dari daftar dropdown Memory allocated.

  5. Klik Berikutnya untuk melanjutkan ke bagian berikutnya.

  6. Di bagian Configure bagaimana layanan ini dipicu, pilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.

  7. Klik Create untuk men-deploy image ke penayangan Knative dan tunggu hingga deployment selesai.

Command line

  • Untuk layanan yang ada, perbarui batas memori dengan menjalankan perintah gcloud run services update dengan parameter --memory:

    gcloud run services update SERVICE --memory SIZE
    

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • SIZE dengan ukuran memori yang diinginkan. Format ukuran adalah bilangan floating point atau tetap yang diikuti dengan unit: G, M, atau K yang masing-masing sesuai dengan gigabyte, megabyte, atau kilobyte, atau menggunakan ekuivalen pangkat dua: Gi, Mi, Ki yang masing-masing sesuai dengan gibibyte, mebibyte, atau kibibyte.
  • Untuk layanan baru, tetapkan batas memori dengan menjalankan perintah gcloud run deploy dengan parameter --memory:

    gcloud run deploy SERVICE --image=IMAGE_URL --memory SIZE
    

    Ganti:

    • SERVICE dengan nama layanan Anda.
    • IMAGE_URL dengan mereferensikan ke image container, misalnya, gcr.io/cloudrun/hello.
    • SIZE dengan ukuran memori yang diinginkan. Format ukuran adalah bilangan floating point atau tetap yang diikuti dengan unit: G, M, atau K yang masing-masing sesuai dengan gigabyte, megabyte, atau kilobyte, atau menggunakan ekuivalen pangkat dua: Gi, Mi, Ki yang masing-masing sesuai dengan gibibyte, mebibyte, atau kibibyte.

YAML

Anda dapat mendownload konfigurasi layanan yang ada ke dalam file YAML menggunakan perintah gcloud run services describe menggunakan flag --format=export. Anda kemudian dapat memodifikasi file YAML dan men-deploy perubahan tersebut dengan perintah gcloud run services replace. Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.

  1. Download konfigurasi layanan Anda ke file bernama service.yaml di ruang kerja lokal:

    gcloud run services describe SERVICE --format export > service.yaml

    Ganti SERVICE dengan nama layanan penayangan Knative Anda.

  2. Di file lokal Anda, perbarui atribut memory:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE_NAME
    spec:
      template:
        spec:
          containers:
          – image: IMAGE_URL
            resources:
              limits:
                memory: SIZE

    Ganti SIZE dengan ukuran memori yang diinginkan. Formatnya adalah angka tetap atau floating point yang diikuti oleh unit: G, M, atau K yang masing-masing sesuai dengan gigabyte, megabyte, atau kilobyte, atau menggunakan padanan dua ekuivalen: Gi, Mi, Ki yang sesuai dengan masing-masing gibibyte, mebibyte, atau kibibyte.

  3. Ganti layanan dengan konfigurasi baru menggunakan perintah berikut:

    gcloud run services replace service.yaml