Mengonfigurasi batas memori

Halaman ini menjelaskan cara menyetel batas memori.

Pahami penggunaan memori

Instance Cloud Run yang melebihi batas memori yang diizinkan akan dihentikan.

Berikut hal-hal yang termasuk dalam memori yang tersedia untuk instance 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.

Menetapkan dan memperbarui batas memori

Anda dapat menetapkan batas memori pada layanan Cloud Run. Secara default, memori yang dialokasikan ke setiap instance revisi adalah 512 MiB.

CPU minimum yang diperlukan

Saat mengatur batas memori, diperlukan batas CPU minimum sebagai berikut:

Memori CPU minimum yang diperlukan
Lebih dari 4 GiB 2
Lebih dari 8 GiB 4
Lebih dari 16 GiB 6
Lebih dari 24 GiB 8

Jumlah memori maksimum

Jumlah maksimum memori yang dapat Anda konfigurasi adalah 32 gibibyte (32 Gi).

Memori minimum

Setelan memori minimum bervariasi tergantung apakah Anda menggunakan lingkungan eksekusigenerasi pertama atau generasi kedua:

  • 128 MiB untuk generasi pertama
  • 512 MiB untuk generasi kedua

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

Untuk layanan Cloud Run, Anda dapat menetapkan batas memori menggunakan Google Cloud Console, command line gcloud, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

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

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal sesuai keinginan, kemudian klik Container, vo;ume, jejaring, sekuritas untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Container.

    gambar

    • Pilih ukuran memori yang diinginkan dari daftar dropdownMemori.
  5. Klik Buat atau Deploy.

Command line

Anda dapat memperbarui alokasi memori untuk layanan tertentu menggunakan perintah berikut:

gcloud run services update SERVICE --memory SIZE

Ubah SERVICE dengan nama layanan Anda dan SIZE dengan ukuran memori yang diinginkan. Format untuk ukuran adalah angka tetap atau floating point yang diikuti dengan satuan: G atau M yang sesuai dengan gigabyte atau megabyte, atau menggunakan pangkat dua yang setara Gi atau Mi yang sesuai dengan gibibyte atau mebibyte.

Anda juga dapat menetapkan batas memori selama deployment menggunakan perintah:

gcloud run deploy --image IMAGE_URL --memory SIZE

Ganti

  • IMAGE_URL dengan referensi ke image container misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • SIZE dengan nilai yang sudah dijelaskan di atas.

YAML

Anda dapat mendownload dan melihat konfigurasi layanan yang ada menggunakan perintah gcloud run services describe --format export, yang memberikan hasil yang telah diolah dalam format YAML. Kemudian, Anda dapat mengubah kolom yang dijelaskan di bawah ini dan mengunggah YAML yang telah dimodifikasi menggunakan perintah gcloud run services replace. Pastikan Anda hanya mengubah kolom seperti yang didokumentasikan.

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Perbarui memory atribut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            resources:
              limits:
                memory: SIZE

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • SIZE dengan ukuran memori yang diinginkan. Formatnya yaitu bilangan tetap atau floating point yang diikuti dengan satuan: G atau M yang sesuai dengan gigabyte atau megabyte, atau gunakan pangkat dua yang setara: Gi atau Mi yang sesuai dengan gibibyte atau mebibyte.
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Tambahkan kode berikut ke resource google_cloud_run_v2_service di konfigurasi Terraform Anda, di bawah template.containers.resources.limits. Ganti 512Mi dengan batas memori yang diinginkan layanan Anda.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-memory-limits"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      resources {
        limits = {
          # Memory usage limit (per container)
          memory = "512Mi"
        }
      }
    }
  }
}

Mengoptimalkan memori untuk layanan

Untuk layanan Cloud Run, Anda dapat menentukan kebutuhan memori tertinggi untuk layanan dengan mengikuti: (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.

Lihat setelan batas memori

Untuk melihat setelan batas memori saat ini pada layanan Cloud Run Anda:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisi.

  4. Pada panel detail di sebelah kanan, setelan batas memori dicantumkan di bagian tabContainer.

Command line

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Temukan setelan batas memori dalam konfigurasi yang ditampilkan.