הגדרת מגבלות זיכרון לעבודות

אתם יכולים לבחור את כמות הזיכרון שיוקצה לעבודת 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 מושפעת, בין היתר, מהגדרת הזיכרון שלה ומהמשך הפעילות של המשאב. הקצאת יתר של משאבים עלולה להגדיל את העלויות. כדי לקבוע איזו הגדרת זיכרון הכי מתאימה למשאב:

  1. קביעת הגדרות בסיסיות ראשוניות.
  2. כדאי לעקוב אחרי מדדי השימוש בזיכרון ב-Cloud Monitoring בזמן הבדיקה של המערכת בעומס.
  3. משנים את ההגדרות לפי הצורך.

אם השימוש בזיכרון נמוך באופן עקבי, כדאי להקטין את הזיכרון שהוקצה. אם זמן האחזור גבוה וניצול הזיכרון קרוב ל-100%, כדאי להגדיל את הזיכרון שהוקצה. אם אתם נתקלים בשגיאות של חריגה מזיכרון (OOM), כדאי להגדיל את הזיכרון שהוקצה או לשנות את האפליקציה כדי למנוע דליפות זיכרון ולהשתמש בפחות זיכרון. כדי להבין טוב יותר את השימוש בזיכרון, אפשר לעיין בלוח הבקרה של Cloud Monitoring.

למידע נוסף, אפשר לעיין בתמחור של Cloud Run או להשתמש במחשבון התמחור כדי להעריך את העלויות.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרת משימות של Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

רשימת ההרשאות והתפקידים ב-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:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Run:

    כניסה ל-Cloud Run

  2. בתפריט הניווט של Cloud Run, לוחצים על Jobs (משימות):

    1. אם יוצרים משימה חדשה, לוחצים על Deploy container (פריסת מאגר תגים) כדי למלא את דף ההגדרות הראשוני של המשימה.

    2. אם מגדירים עבודה קיימת, בוחרים את העבודה ולוחצים על View and edit job configuration (הצגה ועריכה של הגדרת העבודה).

  3. לוחצים על Containers, Connections, Security (מאגרי תגים, חיבורים, אבטחה) כדי להרחיב את דף מאפייני העבודה.

  4. בכרטיסייה Containers, בוחרים את גודל הזיכרון מהרשימה Memory.

  5. לוחצים על יצירה או על עדכון.

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

  1. אם אתם יוצרים משרה חדשה, דלגו על השלב הזה. אם אתם מעדכנים משימה קיימת, אתם צריכים להוריד את הגדרת ה-YAML שלה:

    gcloud run jobs describe JOB --format export > job.yaml
  2. מעדכנים את מאפיין 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 שמתאימות לגיבי-בייט או למבי-בייט, בהתאמה.

    אפשר גם לציין הגדרות נוספות, כמו משתני סביבה או מגבלות זיכרון.

  3. יוצרים או מעדכנים את העבודה באמצעות הפקודה הבאה:

    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:

המסוף

  1. במסוף Google Cloud , נכנסים לדף Cloud Run jobs:

    כניסה לדף Cloud Run jobs

  2. לוחצים על המשרה כדי לפתוח את הדף פרטי המשרה.

  3. לוחצים על הצגה ועריכה של הגדרות העבודה.

  4. מאתרים את הגדרת מגבלת הזיכרון בפרטי ההגדרה.

gcloud

  1. מריצים את הפקודה הבאה:

    gcloud run jobs describe JOB
  2. מחפשים את הגדרת מגבלת הזיכרון בהגדרה שמוחזרת.