בדף הזה מוסבר איך מציינים את מספר ליבות ה-CPU הווירטואליות שבהן רוצים להשתמש בכל מופע של Cloud Run. כברירת מחדל, מכונות קונטיינר ב-Cloud Run מוגבלות ל-vCPU אחד. אפשר להגדיל או להקטין את הערך הזה כמו שמתואר בדף הזה.
בדף הזה מוסבר גם איך להפעיל או להשבית את הגברת מהירות המעבד בהפעלה, תכונה שמגדילה באופן זמני את הקצאת ה-vCPU במהלך הפעלת המופע כדי לצמצם את זמן האחזור של ההפעלה.
הגדרת מגבלות vCPU ועדכון שלהן
כברירת מחדל, כל מופע מוגבל למעבד וירטואלי אחד. אפשר לשנות את הערך הזה לכל אחד מהערכים שמוצגים בטבלה הבאה.
טבלה של vCPU וזיכרון
אלה דרישות הזיכרון ל-vCPU:
| מעבדים (CPU) | הזיכרון הנדרש |
|---|---|
| .08 vCPU | עד 512 MiB |
| 0.5 vCPU | עד 1 GiB |
| 1 vCPU | עד 4GiB |
| 2 vCPU | עד 8GiB |
| 4 vCPU | 2GiB עד 16GiB |
| 6 vCPU | 4 עד 24GiB |
| 8 vCPU | 4 עד 32 GiB |
ערכים שגדולים מ-1 חייבים להיות מספרים שלמים.
כמות מקסימלית של vCPU
הכמות המקסימלית של vCPU שאפשר להגדיר היא 8 vCPU.
מספר ליבות vCPU מינימלי
ההגדרה המינימלית של vCPU היא 0.08 vCPU.
אם רוצים להשתמש בפחות מ-vCPU אחד, אפשר לבחור כל ערך בין 0.08 ל-1, במרווחים של 0.001.
אם אתם משתמשים בפחות מ-1 vCPU, הדרישות הבאות יחולו:
| הגדרה | דרישה |
|---|---|
| זיכרון | כדי להגדיר מגבלת זיכרון של יותר מ-512MiB, צריך לפחות 0.5 vCPU. נדרש לפחות vCPU אחד כדי להגדיר מגבלת זיכרון גדולה מ-1GiB. |
| בו-זמניות (concurrency) | הערך של Maximum concurrency (מקסימום פעולות בו-זמניות) צריך להיות 1. |
| חיוב | הגדרות החיוב צריכות להיות מוגדרות לחיוב לפי בקשות. |
| סביבת הפעלה | חובה להשתמש בסביבת ההפעלה מהדור הראשון. |
שיקולי עלות
העלות של משאב Cloud Run מושפעת, בין היתר, מהגדרת ה-CPU שלו ומהמשך הפעילות של המשאב. הקצאת יתר של משאבים עלולה להגדיל את העלויות. כדי לקבוע איזו הגדרת 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 (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, 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מעבדים, או ערך קטן מ-1.00 וגדול מ-0.08, במרווחים של 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 לגרסאות מספקת שימוש נוסף במעבד במהלך זמן ההפעלה של המופע ולמשך 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 (פריסת קונטיינר) כדי להגדיר שירות חדש. אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על עריכה ופריסה של עדכון חדש.
אם אתם מגדירים שירות חדש, ממלאים את דף ההגדרות הראשוניות של השירות ואז לוחצים על Containers, 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כדי להשבית אותה.
פיתוח נייטיב
כדי להגדיר מגבלות על השימוש במעבד בקובץ compose.yaml, מוסיפים את המאפיין cpus להגדרת השירות.
services: web: image: IMAGE cpus: CPU_VALUE
מחליפים את מה שכתוב בשדות הבאים:
- IMAGE: כתובת ה-URL של תמונת המאגר.
- CPU_VALUE: מגבלת ה-CPU הנדרשת, לדוגמה
2.
פריסת השירותים
כדי לפרוס את השירותים, מריצים את הפקודה
gcloud run compose up:gcloud run compose up compose.yamlמגיבים
yלכל ההנחיות להתקנת רכיבים נדרשים או להפעלת ממשקי API.אופציונלי: הפיכת השירות לציבורי אם רוצים לאפשר גישה לשירות ללא אימות.
אחרי הפריסה, מוצגת כתובת ה-URL של שירות Cloud Run. מעתיקים את כתובת ה-URL הזו ומדביקים אותה בדפדפן כדי לראות את הקונטיינר הפועל. אפשר להשבית את אימות ברירת המחדל במסוף Google Cloud .
הצגת הגדרות המעבד
כדי לראות את הגדרות המעבד הנוכחיות בשירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות שרוצים לראות כדי לפתוח את הדף פרטי השירות.
לוחצים על הכרטיסייה עדכונים.
בחלונית הפרטים שמשמאל, הגדרת המעבד מופיעה בכרטיסייה Container.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הגדרת המעבד בהגדרה שמוחזרת.
העברת נתונים באפליקציה וניצול המעבד
כשבוחרים הגבלת CPU גדולה מ-1 vCPU, צריך לקחת בחשבון את מודל ה-threading של האפליקציה. במהלך התאמה אוטומטית לעומס, Cloud Run משתמש בממוצע של ניצול המעבד בכל המעבדים שהוקצו. אם האפליקציה שלכם היא בעלת תהליך יחיד, יכול להיות שהיא תנצל רק ליבה אחת באופן מלא, מה שיוביל לניצול נמוך של המעבד בממוצע, גם בעומס. כך אפשר למנוע את ההתרחבות האוטומטית שמבוססת על מעבד, כפי שמצופה.
כדי להימנע מההתנהגות הזו באפליקציה עם שרשור יחיד, אם דרישות הזיכרון מאפשרות זאת, מומלץ להתחיל עם 1 vCPU. כך מתקבלת התאמה אוטומטית לעומס טובה יותר שמבוססת על מעבד (CPU). אם הצורך בזיכרון גבוה יותר מחייב בחירה של כמה מעבדים לאפליקציה עם שרשור יחיד, כדאי לשקול שינוי של הגדרת המקביליות.