בדף הזה מוסבר איך מציינים את מספר ליבות ה-CPU הווירטואליות שבהן רוצים להשתמש בכל מופע של Cloud Run. כברירת מחדל, מופעלת הגבלה על מכונות קונטיינר ב-Cloud Run, והן יכולות להשתמש רק ב-vCPU אחד. אפשר להגדיל או להקטין את הערך הזה כמו שמתואר בדף הזה.
בדף הזה מוסבר גם איך להפעיל או להשבית את הגברת מהירות המעבד בהפעלה, תכונה שמגדילה באופן זמני את הקצאת ה-vCPU במהלך הפעלת המופע כדי לצמצם את זמן האחזור של ההפעלה.
הגדרת מגבלות vCPU ועדכון שלהן
כברירת מחדל, כל מופע מוגבל למעבד וירטואלי אחד. אפשר לשנות את הערך הזה לכל אחד מהערכים שמוצגים בטבלה הבאה.
טבלת vCPU וזיכרון
אלה דרישות הזיכרון ל-vCPU:
| מעבדים (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 |
לחלופין, אם רוצים להשתמש בפחות מ-1 vCPU, אפשר לבחור כל ערך בין 0.08 ל-1, במרווחים של 0.001. ערכים שגדולים מ-1 חייבים להיות מספרים שלמים. אם אתם משתמשים בפחות מ-1 vCPU, הדרישות הבאות חלות:
| הגדרה | דרישה |
|---|---|
| זיכרון | כדי להגדיר מגבלת זיכרון שגבוהה מ-512MiB, צריך לפחות 0.5 vCPU. נדרש לפחות vCPU אחד כדי להגדיר מגבלת זיכרון של יותר מ-1GiB. |
| בו-זמניות | הערך של Maximum concurrency (מקסימום פעולות בו-זמניות) צריך להיות 1. |
| חיוב | הגדרות החיוב צריכות להיות מוגדרות לחיוב לפי בקשות. |
| סביבת הפעלה | חובה להשתמש בסביבת ההפעלה מהדור הראשון. |
כמות מקסימלית של vCPU
הכמות המקסימלית של vCPU שאפשר להגדיר היא 8 vCPU.
כמות מינימלית של vCPU
ההגדרה המינימלית של vCPU היא 0.08 vCPU.
שיקולי עלות
העלות של משאב Cloud Run מושפעת, בין היתר, מהגדרת המעבד (CPU) שלו ומהמשך הפעילות של המשאב. הקצאת יתר של משאבים עלולה להגדיל את העלויות. כדי לקבוע איזו הגדרת CPU הכי מתאימה למשאב שלכם:
- הגדרת תצורת בסיס ראשונית למגבלת מעבד שתאזן בין ניצול המעבד לבין העלויות.
- עוקבים אחרי מדדי ניצול ה-CPU ב-Cloud Monitoring בזמן בדיקת המערכת בעומס.
- משנים את הגדרות המעבד לפי הצורך.
אם ניצול ה-CPU נמוך באופן עקבי בעומס שיא, כדאי לצמצם את הקצאת ה-vCPU. אם זמן האחזור גבוה, כדאי להגדיל את הקצאת ה-vCPU.
בדף Cloud Hub Optimization אפשר לראות נתוני עלות, נתוני שימוש והמלצות לאופטימיזציה של עלויות השירותים. למידע נוסף, אפשר לעיין בתמחור של 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, כדאי לעיין במדריך להגדרת זהות שירות. מידע נוסף על מתן תפקידים זמין במאמרים הרשאות פריסה וניהול גישה.
הגדרת מגבלות על יחידת העיבוד המרכזית (CPU)
כל שינוי בהגדרות מוביל ליצירה של גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אפשר להגדיר מגבלות על השימוש במעבד באמצעות מסוף Google Cloud, שורת הפקודה של gcloud או קובץ YAML כשיוצרים שירות חדש או פורסים עדכון חדש: Google Cloud
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
לוחצים על הכרטיסייה מאגר תגים.
- בוחרים את מגבלת המעבד הרצויה מהרשימה הנפתחת. אם רוצים להשתמש בפחות ממעבד אחד, בוחרים באפשרות Custom (התאמה אישית). בוחרים ערך של
1,2,4,6או8מעבדים, או אם רוצים פחות ממעבד אחד, מציינים ערך מ-0.08 עד פחות מ-1.00, במרווחים של 0.01. (ההגדרות הנדרשות מפורטות בטבלה שבקטע הגדרה ועדכון של מגבלות השימוש במעבד).
- בוחרים את מגבלת המעבד הרצויה מהרשימה הנפתחת. אם רוצים להשתמש בפחות ממעבד אחד, בוחרים באפשרות Custom (התאמה אישית). בוחרים ערך של
לוחצים על יצירה או על פריסה.
gcloud
כדי לעדכן את מגבלות השימוש במעבד בשירות מסוים, משתמשים בפקודה הבאה:
gcloud run services update SERVICE --cpu CPU
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של השירות.
- CPU: מגבלת ה-CPU הרצויה. מציינים את הערך
1,2,4,6או8מעבדים, או אם רוצים לציין פחות ממעבד אחד, מציינים ערך מ-0.08 עד פחות מ-1.00, במרווחים של 0.01. (ההגדרות הנדרשות מפורטות בטבלה שבקטע הגדרה ועדכון של מגבלות השימוש במעבד).
אפשר גם להגדיר את המעבד במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --cpu CPU
מחליפים את מה שכתוב בשדות הבאים:
- 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. - CPU: הערך
1,2,4,6או8מעבדים, או ערך בין 0.08 ל-1.00 (לא כולל) במרווחים של 0.01. (ההגדרות הנדרשות מפורטות בטבלה שבקטע הגדרה ועדכון של מגבלות השימוש במעבד).
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
cpu:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE resources: limits: cpu: CPU
מחליפים את מה שכתוב בשדות הבאים:
- 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. - CPU: ערך המגבלה הרצוי של יחידת העיבוד המרכזית (CPU).
מציינים את הערך
1,2,4,6או8מעבדים, או אם רוצים לציין פחות ממעבד אחד, מציינים ערך מ-0.08 עד פחות מ-1.00, במרווחים של 0.01. (ההגדרות הנדרשות מפורטות בטבלה שבקטע הגדרה ועדכון של מגבלות השימוש במעבד). - REVISION עם שם חדש של גרסה או למחוק אותה (אם היא קיימת). אם מספקים שם חדש לגרסה, חובה שהוא יעמוד בקריטריונים הבאים:
- מתחיל ב-
SERVICE- - הוא מכיל רק אותיות קטנות, מספרים וגם
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בקובץ התצורה של Terraform:המשאב google_cloud_run_v2_service שבדוגמה שלמעלה מציין מגבלת CPU של template.containers.resources.limits.
מחליפים את 1 במספר המעבדים הרצוי. כדאי לדעת: 1 שווה ל-1 vCPU.
הגדרת תוספת מהירות למעבד בזמן ההפעלה
התכונה startup CPU boost לגרסאות מספקת ליבות CPU נוספות במהלך זמן ההפעלה של המופע ולמשך 10 שניות אחרי שהמופע מופעל.
ההגברה בפועל של יחידת העיבוד המרכזית משתנה בהתאם להגדרות המגבלה של יחידת העיבוד המרכזית:
| מגבלת CPU | הגדלת המעבד |
|---|---|
| 0-1 | 2 |
| 2 | 4 |
| 4 | 8 |
| 6 | 8 |
| 8 | 8 |
אתם מחויבים על השימוש במעבד המוקצה המוגבר למשך זמן ההפעלה של הקונטיינר. לדוגמה, אם זמן האתחול של המאגר הוא 15 שניות, והקציתם 2 מעבדי CPU, עם הגדלת מהירות האתחול של ה-CPU, תחויבו על 4 מעבדי CPU במהלך זמן האתחול של המופע (שיכול להיות קצר יותר), כולל 10 השניות אחרי שהמאגר סיים את האתחול, ועל 2 מעבדי CPU במהלך שאר מחזור החיים של המאגר.
אם הפריסה שלכם ב-Cloud Run משתמשת ב-sidecars, ואתם מפעילים את האצת המעבד (CPU) בהפעלה, כל הקונטיינרים מקבלים את האצת המעבד. מערכת Cloud Run קובעת את כמות המעבד (CPU) המוגדלת לכל קונטיינר לפי מגבלת המעבד.
אפשר להפעיל או להשבית את הגדלת מהירות המעבד בהפעלה באמצעות Google Cloud המסוף, Google Cloud CLI, קובץ YAML או קובץ Terraform.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, בוחרים באפשרות Services (שירותים) ולוחצים על Deploy container (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Container(s), Volumes, Networking, Security (מאגרים, אמצעי אחסון, רשתות, אבטחה) כדי להרחיב את דף הגדרות השירות.
לוחצים על הכרטיסייה מאגר תגים.
- כדי להפעיל את האפשרות 'הגברת מהירות המעבד בהפעלה', מסמנים את התיבה הגברת מהירות המעבד בהפעלה. כדי להשבית את התכונה, מבטלים את הסימון בתיבת הסימון.
לוחצים על יצירה או על פריסה.
gcloud
כדי להפעיל את האצת המעבד בהפעלה בשירות מסוים, משתמשים בפקודה הבאה:
gcloud run services update SERVICE --cpu-boost
מחליפים את SERVICE בשם השירות.
אפשר להפעיל את ההגדלה של מהירות המעבד בזמן הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --cpu-boost
מחליפים את 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.כדי להשבית את הגדלת מהירות המעבד בהפעלה בשירות מסוים, משתמשים בפקודה הבאה:
gcloud run services update SERVICE --no-cpu-boost
מחליפים את SERVICE בשם השירות.
אפשר להשבית את ההגדרה 'הגברת מהירות המעבד בהפעלה' במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --no-cpu-boost
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, מורידים את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
run.googleapis.com/startup-cpu-boostעל ידי ציון'true'כדי להפעיל את הגברת מהירות המעבד בהפעלה או'false'כדי להשבית אותה:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/startup-cpu-boost: 'true'
מחליפים את SERVICE בשם של שירות Cloud Run.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בקובץ התצורה של Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
resources {
startup_cpu_boost = CPU_BOOST
}
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- REGION: האזור Google Cloud . לדוגמה,
europe-west1. - CPU_BOOST:
trueכדי להפעיל את ההגדרה 'הגברת מהירות המעבד בהפעלה' אוfalseכדי להשבית אותה.
הצגת הגדרות המעבד
כדי לראות את הגדרות המעבד הנוכחיות בשירות Cloud Run:
המסוף
במסוף Google Cloud , נכנסים לדף Services של Cloud Run:
לוחצים על השירות שרוצים לראות את הפרטים שלו כדי לפתוח את הדף פרטי השירות.
לוחצים על הכרטיסייה עדכונים.
בחלונית הפרטים שמשמאל, הגדרת המעבד מופיעה בכרטיסייה Container.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הגדרת ה-CPU בהגדרה שהוחזרה.
השרשור באפליקציה וניצול המעבד
כשבוחרים הגבלת מעבד (CPU) של יותר מ-1 vCPU, צריך לקחת בחשבון את מודל ה-threading של האפליקציה. במהלך התאמה אוטומטית לעומס, Cloud Run משתמש בממוצע של ניצול המעבד בכל המעבדים שהוקצו. אם האפליקציה שלכם היא בעלת תהליך יחיד, יכול להיות שהיא תנצל רק ליבה אחת באופן מלא, מה שיוביל לניצול נמוך של המעבד בממוצע, גם בעומס. הדבר עלול למנוע את ההתאמה האוטומטית לעומס על סמך השימוש במעבד, כפי שמצופה.
כדי להימנע מההתנהגות הזו באפליקציה עם שרשור יחיד, אם דרישות הזיכרון מאפשרות זאת, מומלץ להתחיל עם 1 vCPU. כך מתקבלת התאמה אוטומטית לעומס טובה יותר שמבוססת על מעבד (CPU). אם דרישות הזיכרון הגבוהות מחייבות בחירה של כמה מעבדים לאפליקציה עם תהליכים של חוט יחיד, כדאי לשנות את הגדרת המקביליות.