אתם יכולים לבחור את נפח הזיכרון שיוקצה למשימה ב-Cloud Run. בדף הזה מוסבר איך לציין את כמות הזיכרון הזמינה למשימה.
הסבר על השימוש בזיכרון
מכונות של Cloud Run שחורגות ממגבלת הזיכרון המותרת נסגרות.
הזיכרון הזמין במכונה צריך להספיק בשביל:
- הרצת קובץ ההפעלה של המשימה, כי צריך לטעון את קובץ ההפעלה לזיכרון
- הקצאת זיכרון בתהליך של המשימה
- כתיבת קבצים במערכת הקבצים
גודל קובץ האימג' של הקונטיינר שנפרס לא משפיע על הזיכרון שזמין למכונה.
הגדרה ועדכון של מגבלות הזיכרון
אפשר להגדיר מגבלות זיכרון למשימות ב-Cloud Run. כברירת מחדל, הזיכרון שמוקצה לכל משימה הוא , והזיכרון שמוקצה לפונקציה הוא 256MiB.
הזיכרון הנדרש כשמגדירים ערך למעבד (CPU)
כשמגדירים ערך למעבד (CPU), נדרש הזיכרון הבא:
| מעבדים (CPU) | נדרש זיכרון |
|---|---|
| 1 vCPU | 512MiB עד 4GiB |
| 2 vCPU | 512MiB עד 8GiB |
| 4 vCPU | 2 עד 16GiB |
| 6 vCPU | 4 עד 24GiB |
| 8 מעבדי vCPU | 4 עד 32GiB |
כמות הזיכרון המקסימלית
כמות הזיכרון המקסימלית שאפשר להגדיר היא 32GiB (32 Gi).
זיכרון מינימלי
הגדרת הזיכרון המינימלית היא 512MiB.
שיקולי עלות
העלות של משימת Cloud Run מושפעת מהגדרת הזיכרון שלה, ממשך הזמן שבו המשאב פעיל ומגורמים נוספים. הקצאת יתר של משאבים יכולה להגדיל את העלויות. כדי לקבוע איזו הגדרת זיכרון הכי מתאימה למשאב:
- קובעים הגדרות בסיסיות ראשוניות.
- בזמן בדיקת המערכת בעומס, עוקבים אחרי מדדי ניצול הזיכרון ב-Cloud Monitoring.
- משנים את ההגדרות לפי הצורך.
אם ניצול הזיכרון נמוך באופן עקבי, כדאי להקטין את הזיכרון שהוקצה. אם זמן האחזור ארוך וניצול הזיכרון קרוב ל-100%, כדאי להגדיל את הזיכרון שהוקצה. אם אתם נתקלים בשגיאות של חוסר בזיכרון (OOM), כדאי להגדיל את הזיכרון שהוקצה או לשנות את האפליקציה כדי למנוע דליפות זיכרון ולהשתמש בפחות זיכרון. כדי להבין טוב יותר את ניצול הזיכרון, אפשר לעיין בלוח הבקרה של Cloud Monitoring.
למידע נוסף, קראו את המאמר תמחור של Cloud Run או השתמשו במחשבון עלויות כדי להעריך את העלויות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות ב-Cloud Run, בקשו מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח ב-Cloud Run (
roles/run.developer) במשימה ב-Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם המשימה ב-Cloud Run מתממשקת עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרת מגבלות זיכרון
במשימה ב-Cloud Run צריך לציין לפחות 512Mi.
אפשר להגדיר מגבלות זיכרון למשימה ב-Cloud Run באמצעות מסוףGoogle Cloud , ה-CLI של gcloud, YAML או Terraform:
המסוף
נכנסים לדף Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Jobs:
אם אתם יוצרים משימה חדשה, לוחצים על Deploy container כדי למלא את דף הגדרות המשימה הראשוני.
אם אתם מגדירים משימה קיימת, בוחרים את המשימה ולוחצים על View and edit job configuration.
לוחצים על Containers, Connections, Security כדי להרחיב את דף מאפייני המשימה.
בכרטיסייה Containers, בוחרים את גודל הזיכרון מהרשימה Memory.
לוחצים על יצירה או על עדכון.
gcloud
כדי להגדיר מגבלות זיכרון כשיוצרים משימה חדשה, מריצים את הפקודה הבאה:
gcloud run jobs create JOB --image IMAGE_URL --memory SIZE
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/job:latest. -
SIZE: נפח הזיכרון. הפורמט של הגודל הוא מספר קבוע או מספר נקודה צפה (floating point) ואחריו יחידה:GאוM, בהתאמה לג'יגה-בייט או למגה-בייט, או שימוש במקבילות של חזקה של שתיים:GiאוMi, בהתאמה לגיביבייט או למביבייט.
-
כדי להגדיר מגבלות זיכרון כשמעדכנים משימה קיימת, מריצים את הפקודה הבאה:
gcloud run jobs update JOB --memory SIZE
YAML
אם אתם יוצרים משימה חדשה, דלגו על השלב הזה. אם מעדכנים משימה קיימת, מורידים את הגדרת ה-YAML שלה:
gcloud run jobs describe JOB --format export > job.yaml
מעדכנים את המאפיין
memory:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE_URL resources: limits: memory: SIZE
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
IMAGE_URL: הפניה לקובץ האימג' של הקונטיינר, לדוגמהus-docker.pkg.dev/cloudrun/container/job:latest. -
SIZE: גודל הזיכרון, עם ערך מינימלי של 512Mi. הפורמט הוא מספר עם נקודה קבועה או צפה, ואחריו יחידה:GאוMשתואמים לג'יגה-בייט או למגה-בייט, בהתאמה, או שימוש במקבילות של חזקה של שתיים:GiאוMiשתואמים לגיביבייט או למביבייט, בהתאמה.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
-
יוצרים או מעדכנים את המשימה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
כברירת מחדל, הפקודה
gcloud run jobs replaceמשתמשת בקובץjob.yamlאם הוא קיים.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את הקוד הבא למשאבgoogle_cloud_run_v2_job בתצורה של Terraform:resource "google_cloud_run_v2_job" "default" {
name = "JOB"
location = "REGION"
deletion_protection = false
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
resources {
limits = {
cpu = "2"
memory = "SIZE"
}
}
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
JOB: השם של המשימה ב-Cloud Run. -
REGION: האזור של Google Cloud . לדוגמה:europe-west1. -
SIZE: גודל הזיכרון הנדרש, עם ציון מינימום של 512Mi. הפורמט הוא מספר קבוע או מספר נקודה צפה (floating point) ואחריו יחידה:GאוMשתואמים לג'יגה-בייט או למגה-בייט, בהתאמה, או שימוש במקבילות של חזקה של שתיים:GiאוMiשתואמים לגיביבייט או למביבייט, בהתאמה.
הצגת ההגדרות של מגבלת הזיכרון
כדי לראות את ההגדרות הנוכחיות של מגבלת הזיכרון של משימת Cloud Run, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
נכנסים לדף Cloud Run jobs במסוף Google Cloud :
לוחצים על המשימה כדי לפתוח את הדף Job details.
לוחצים על הצגה ועריכה של הגדרות המשימה.
מאתרים את ההגדרה של מגבלת הזיכרון בפרטי ההגדרות האישיות.
gcloud
מריצים את הפקודה הבאה:
gcloud run jobs describe JOB
מאתרים את ההגדרה של מגבלת הזיכרון בהגדרות שהוחזרו.