אתם יכולים לבחור את כמות הזיכרון שיוקצה לשירות Cloud Run. בדף הזה מוסבר איך מציינים את כמות הזיכרון שזמינה לשירות.
הסבר על השימוש בזיכרון
מכונות של Cloud Run שחורגות ממגבלת הזיכרון המותרת שלהן מופסקות.
הזיכרון שזמין למופע צריך להיות מספיק בשביל:
- הפעלת קובץ ההפעלה של השירות, כי צריך לטעון את קובץ ההפעלה לזיכרון
- הקצאת זיכרון בתהליך השירות
- כתיבת קבצים למערכת הקבצים
גודל קובץ אימג' של קונטיינר שפריסתו בוצעה לא משפיע על הזיכרון שזמין למופע.
הגדרה ועדכון של מגבלות זיכרון
אפשר להגדיר מגבלות זיכרון בשירותי Cloud Run. כברירת מחדל, הזיכרון שמוקצה לכל מופע של גרסה הוא 512 MiB, והזיכרון שמוקצה לפונקציה הוא 256 MiB.
הזיכרון הנדרש כשמגדירים ערך של מעבד
כשמגדירים ערך של מעבד, נדרש הזיכרון הבא:
| מעבדים (CPU) | הזיכרון הנדרש |
|---|---|
| 0.08 vCPU | עד 512 MiB |
| 0.5 vCPU | עד 1 GiB |
| 1 vCPU | עד 4 GiB |
| 2 vCPU | עד 8 GiB |
| 4 vCPU | 2GiB עד 16GiB |
| 6 vCPU | 4 עד 24 גיגה-בייט |
| 8 vCPU | 4 עד 32GiB |
כמות הזיכרון המקסימלית
הכמות המקסימלית של הזיכרון שאפשר להגדיר היא 32 גיביבייט (32 Gi).
זיכרון מינימלי
הגדרת הזיכרון המינימלית משתנה בהתאם לסביבת ההפעלה שבה אתם משתמשים: דור ראשון או דור שני:
- 128MiB לדור הראשון
- 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) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם לקבל תפקידים נוספים בפרויקט ובחשבון השירות של Cloud Build.
רשימת ההרשאות והתפקידים ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתקשר עםGoogle Cloud ממשקי API, כמו ספריות לקוח ב-Cloud, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת מגבלות זיכרון
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
בשירותי Cloud Run, אפשר להגדיר מגבלות זיכרון באמצעות מסוף Cloud, שורת הפקודה gcloud או קובץ YAML כשיוצרים שירות חדש או פורסים עדכון חדש: Google Cloud
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
לוחצים על הכרטיסייה מאגר תגים.
- בוחרים את גודל הזיכרון הרצוי מהתפריט הנפתח זיכרון.
לוחצים על יצירה או על פריסה.
gcloud
כדי לעדכן את הקצאת הזיכרון של שירות מסוים, משתמשים בפקודה הבאה:
gcloud run services update SERVICE --memory SIZE
מחליפים את SERVICE בשם השירות ואת SIZE בגודל הזיכרון הרצוי. הפורמט של הגודל הוא מספר נקודה קבועה או מספר נקודה צפה, ואחריו יחידה: G או M, שמתאימות לגיגה-בייט או למגה-בייט בהתאמה, או שמשתמשים בערכים המקבילים של חזקות של 2: Gi או Mi, שמתאימים לגיבי-בייט או למבי-בייט בהתאמה.
אפשר גם להגדיר מגבלות זיכרון במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --memory SIZE
מחליפים את מה שכתוב בשדות הבאים:
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - SIZE: הערכים שמתוארים למעלה.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
memory:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: memory: SIZE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. - SIZE: גודל הזיכרון הרצוי.
הפורמט הוא מספר נקודה צפה או מספר קבוע, ואחריו יחידה:
GאוMשמתאימים לגיגה-בייט או למגה-בייט, בהתאמה, או שמשתמשים בערכים המקבילים בחזקות של 2: GiאוMiשמתאימים לגיבי-בייט או למבי-בייט, בהתאמה. - REVISION עם שם חדש של גרסה או למחוק אותה (אם היא קיימת). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
- מתחיל ב-
SERVICE- - הוא מכיל רק אותיות קטנות, מספרים וגם
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בקובץ התצורה של Terraform:בקטע template.containers.resources.limits, מחליפים את 512Mi במגבלת הזיכרון הרצויה של השירות.
אופטימיזציה של הזיכרון לשירותים
בשביל שירות של Cloud Run, אפשר לקבוע את דרישת הזיכרון המקסימלית של שירות באמצעות הנוסחה הבאה: (זיכרון קבוע) + (זיכרון לכל בקשה) * (מקבילות השירות)
לכן,
אם מגדילים את מספר הבקשות המקבילות בשירות, צריך גם להגדיל את מגבלת הזיכרון כדי להתחשב בשימוש בשיא.
אם אתם מקטינים את מספר הבקשות המקבילות בשירות, כדאי להקטין את מגבלת הזיכרון כדי לחסוך בעלויות השימוש בזיכרון.
לקבלת הדרכה נוספת בנושא מזעור שימוש בזיכרון לכל בקשה, קראו את טיפים לפיתוח בנושא משתנים גלובליים.
הצגת הגדרות של מגבלת הזיכרון
כדי לראות את הגדרות מגבלת הזיכרון הנוכחיות בשירות Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Services של Cloud Run:
לוחצים על השירות שרוצים לראות את הפרטים שלו כדי לפתוח את הדף פרטי השירות.
לוחצים על הכרטיסייה עדכונים.
בחלונית הפרטים שמשמאל, הגדרת מגבלת הזיכרון מופיעה בכרטיסייה Container.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מחפשים את הגדרת מגבלת הזיכרון בהגדרה שמוחזרת.