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

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

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

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

במשימה ב-Cloud Run צריך לציין לפחות ‎512Mi.

אפשר להגדיר מגבלות זיכרון למשימה ב-Cloud Run באמצעות מסוףGoogle Cloud , ה-CLI של gcloud, ‏YAML או Terraform:

המסוף

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

    כניסה ל-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: נפח הזיכרון. הפורמט של הגודל הוא מספר קבוע או מספר נקודה צפה (floating point) ואחריו יחידה: G או M, בהתאמה לג'יגה-בייט או למגה-בייט, או שימוש במקבילות של חזקה של שתיים: 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 שתואמים לג'יגה-בייט או למגה-בייט, בהתאמה, או שימוש במקבילות של חזקה של שתיים: Gi או Mi שתואמים לגיביבייט או למביבייט, בהתאמה.

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

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

    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:

המסוף

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

    כניסה לדף Cloud Run jobs

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

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

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

gcloud

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

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