Pelajari cara menetapkan batas untuk memori yang digunakan oleh instance penampung Anda dalam penayangan Knative.
Memahami penggunaan memori
Instance container penayangan Knative yang melebihi batas memori yang diizinkan akan dihentikan.
Berikut hal-hal yang termasuk dalam memori yang tersedia untuk instance penampung 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 Anda konfigurasi dibatasi oleh konfigurasi cluster GKE Anda.
Mengoptimalkan memori
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.
Menetapkan dan memperbarui 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 memperbarui layanan yang ada dan men-deploy revisi:
Konsol
Buka penayangan Knative di konsol Google Cloud:
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit & Deploy New Revision.
Di bagian Setelan lanjutan, klik Penampung.
Pilih ukuran memori yang diinginkan dari menu dropdown Memory allocated.
Klik Berikutnya untuk melanjutkan ke bagian berikutnya.
Di bagian Configure how this service is triggered, pilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.
Klik Create untuk men-deploy image ke layanan Knative dan tunggu 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 untuk
ukuran adalah angka tetap atau floating point yang diikuti dengan satuan:
G
,M
, atauK
yang sesuai dengan gigabyte, megabyte, atau kilobyte, atau gunakan pangkat dua yang setara:Gi
,Mi
,Ki
yang 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 referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - SIZE dengan ukuran memori yang diinginkan. Format untuk
ukuran adalah angka tetap atau floating point yang diikuti dengan satuan:
G
,M
, atauK
yang sesuai dengan gigabyte, megabyte, atau kilobyte, atau gunakan pangkat dua yang setara:Gi
,Mi
,Ki
yang sesuai dengan gibibyte, mebibyte, atau kibibyte.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan
tanda --format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
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.
Di file lokal, 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 yaitu bilangan tetap atau floating point yang diikuti dengan satuan:
G
,M
, atauK
yang sesuai dengan gigabyte, megabyte, atau kilobyte, atau gunakan pangkat dua yang setara:Gi
,Mi
,Ki
yang sesuai dengan gibibyte, mebibyte, atau kibibyte.Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml