אתם יכולים לבחור את כמות הזיכרון שיוקצה לעבודת Cloud Run. בדף הזה מוסבר איך מציינים את כמות הזיכרון שזמינה לעבודה.
הסבר על השימוש בזיכרון
מכונות של Cloud Run שחורגות ממגבלת הזיכרון המותרת שלהן מופסקות.
הזיכרון שזמין למופע צריך להיות מספיק בשביל:
- הפעלת קובץ ההפעלה של המשימה, כי קובץ ההפעלה חייב להיטען לזיכרון
- הקצאת זיכרון בתהליך העבודה
- כתיבת קבצים במערכת הקבצים
גודל קובץ אימג' של קונטיינר שפורסם לא משפיע על הזיכרון שזמין למכונה.
הגדרת מגבלות זיכרון ועדכון שלהן
אפשר להגדיר מגבלות זיכרון למשימות ב-Cloud Run. כברירת מחדל, הזיכרון שמוקצה לכל עבודה הוא , והזיכרון שמוקצה לפונקציה הוא 256 MiB.
הזיכרון הנדרש כשמגדירים ערך של מעבד
כשמגדירים ערך של מעבד, נדרש הזיכרון הבא:
| מעבדים (CPU) | הזיכרון הנדרש |
|---|---|
| 1 vCPU | 512MiB עד 4GiB |
| 2 vCPU | 512MiB עד 8GiB |
| 4 vCPU | 2GiB עד 16GiB |
| 6 vCPU | 4 עד 24GiB |
| 8 vCPU | 4 עד 32GiB |
כמות הזיכרון המקסימלית
הכמות המקסימלית של הזיכרון שאפשר להגדיר היא 32 גיביבייט (32 Gi).
זיכרון מינימלי
הגדרת הזיכרון המינימלית היא 512 MiB.
שיקולי עלות
העלות של עבודת Cloud Run מושפעת, בין היתר, מהגדרת הזיכרון שלה ומהמשך הפעילות של המשאב. הקצאת יתר של משאבים עלולה להגדיל את העלויות. כדי לקבוע איזו הגדרת זיכרון הכי מתאימה למשאב:
- קביעת הגדרות בסיסיות ראשוניות.
- כדאי לעקוב אחרי מדדי השימוש בזיכרון ב-Cloud Monitoring בזמן הבדיקה של המערכת בעומס.
- משנים את ההגדרות לפי הצורך.
אם השימוש בזיכרון נמוך באופן עקבי, כדאי להקטין את הזיכרון שהוקצה. אם זמן האחזור גבוה וניצול הזיכרון קרוב ל-100%, כדאי להגדיל את הזיכרון שהוקצה. אם אתם נתקלים בשגיאות של חריגה מזיכרון (OOM), כדאי להגדיל את הזיכרון שהוקצה או לשנות את האפליקציה כדי למנוע דליפות זיכרון ולהשתמש בפחות זיכרון. כדי להבין טוב יותר את השימוש בזיכרון, אפשר לעיין בלוח הבקרה של Cloud Monitoring.
למידע נוסף, אפשר לעיין בתמחור של Cloud Run או להשתמש במחשבון התמחור כדי להעריך את העלויות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות להגדרת משימות של Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Cloud Run Developer (
roles/run.developer) במשימה ב-Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם עבודת Cloud Run שלכם מתקשרת עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת מגבלות זיכרון
צריך לציין לפחות 512Mi לעבודת Cloud Run.
אפשר להגדיר מגבלות זיכרון לעבודת Cloud Run באמצעותGoogle Cloud המסוף, ה-CLI של gcloud, YAML או Terraform:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run:
בתפריט הניווט של 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: נפח הזיכרון. הפורמט של גודל הוא מספר קבוע או מספר עם נקודה עשרונית, שאחריו יחידה:GאוM, שמתאימות לגיגה-בייט או למגה-בייט בהתאמה, או שמשתמשים בערכים המקבילים של חזקות של 2: 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שמתאימות לגיגה-בייט או למגה-בייט, בהתאמה, או יחידות שמתאימות לחזקות של 2:GiאוMiשמתאימות לגיבי-בייט או למבי-בייט, בהתאמה.
אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.
-
יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
אם קיים קובץ
job.yaml, הפקודהgcloud run jobs replaceמשתמשת בו כברירת מחדל.
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. הפורמט הוא מספר נקודה קבועה או צפה, ואחריו יחידה:GאוMשמתאימות לגיגה-בייט או למגה-בייט, בהתאמה, או שמשתמשים בערכים המקבילים בחזקות של 2: GiאוMiשמתאימות לגיבי-בייט או למבי-בייט, בהתאמה.
הצגת הגדרות מגבלת הזיכרון
כדי לראות את הגדרות מגבלת הזיכרון הנוכחיות של משימת Cloud Run, משתמשים במסוף Google Cloud או ב-Google Cloud CLI:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run jobs:
לוחצים על המשרה כדי לפתוח את הדף פרטי המשרה.
לוחצים על הצגה ועריכה של הגדרות העבודה.
מאתרים את הגדרת מגבלת הזיכרון בפרטי ההגדרה.
gcloud
מריצים את הפקודה הבאה:
gcloud run jobs describe JOB
מחפשים את הגדרת מגבלת הזיכרון בהגדרה שמוחזרת.