Mengonfigurasi batas memori

Anda dapat menyediakan layanan Cloud Run dengan jumlah memori yang berbeda. Halaman ini menjelaskan cara menentukan jumlah memori yang tersedia untuk layanan Anda.

Memahami 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 file yang dapat dieksekusi layanan, karena file yang dapat dieksekusi harus dimuat ke memori
  • Mengalokasikan memori dalam proses layanan 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, dan memori yang dialokasikan untuk fungsi adalah 256 MiB.

CPU minimum yang diperlukan

Jumlah memori yang dialokasikan yang Anda pilih sesuai dengan jumlah CPU yang dialokasikan untuk layanan Anda. Saat menetapkan batas memori, diperlukan batas CPU minimum sebagai berikut:

Memori CPU minimum yang diperlukan
128 MiB .083 vCPU
256 MiB .167 vCPU
512 MiB .333 vCPU
1 GiB .583 vCPU
2 GiB 1 vCPU
Lebih dari 4 GiB 2 vCPU
Lebih dari 8 GiB 4 vCPU
Lebih dari 16 GiB 6 vCPU
Lebih dari 24 GiB 8 vCPU
Jika menggunakan memori kurang dari 512 MiB, Anda harus menggunakan lingkungan eksekusi generasi pertama.

Jumlah memori maksimum

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

Anda dapat menerapkan batas memori maksimum menggunakan kebijakan organisasi kustom.

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

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.

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 Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Container.

    gambar

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

gcloud

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

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

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

    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. Buat atau perbarui layanan 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"

  deletion_protection = false # set to "true" in production

  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.

gcloud

  1. Gunakan perintah berikut:

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