בדף הזה מוסבר איך להפעיל מכונות במצב בלי פעילות בשירות, על ידי הגדרת מספר מינימלי של מכונות באמצעות התנהגות ברירת המחדל של התאמה אוטומטית לעומס (automatic scaling) ב-Cloud Run. כדי לשנות את קנה המידה של השירות באופן ידני, קראו את המאמר שינוי קנה מידה באופן ידני.
אם אתם צריכים יותר שליטה על התנהגות ההתאמה לעומס של השירות, אתם יכולים להגדיר מספר מינימלי של מכונות כדי למנוע זמני התחלה איטיים של קונטיינרים ולהפחית את זמן האחזור של השירות. בשירותי Cloud Run, כברירת מחדל, המערכת מגדילה או מקטינה את מספר המכונות בהתאם למספר הבקשות הנכנסות.
עם זאת, אם השירות שלכם דורש זמן אחזור קצר, במיוחד כשמבצעים התאמה לעומס (scaling) מאפס מכונות פעילות, אתם יכולים לשנות את התנהגות ברירת המחדל הזו על ידי ציון מספר מינימלי של מכונות קונטיינר שצריך לשמור במצב חם ומוכנות להצגת בקשות. בטיפים כלליים לפיתוח מפורטים פרטים נוספים על האופטימיזציה הזו.
מערכת Cloud Run מסירה מכונות שלא מעבדות בקשות (לא פעילות).
כשמגדירים מספר מינימלי של מכונות, Cloud Run מפעיל לפחות את המספר המינימלי של המכונות, גם אם הן לא מעבדות בקשות. אם לא יתקבלו בקשות, מכונות פעילות מעבר למספר min-instances עשויות לעבור למצב של חוסר פעילות.
לדוגמה, אם הערך של min-instances הוא 10 ומספר המכונות הפעילות הוא 0, מספר המכונות במצב המתנה הוא 10. כשמספר המכונות הפעילות עולה ל-6, מספר המכונות במצב המתנה יורד ל-4.
שימו לב: אם שירות לא טיפל בתנועה לאחרונה, המדד של המכונות הפעילות יכול להראות שאין מכונות פעילות, גם אם ציינתם מכונה אחת או יותר כמספר המינימלי של מכונות.
אפשר להפעיל מחדש את המכונות המינימליות בכל שלב.
שיטות מומלצות לזמינות גבוהה
כדי להבטיח שהשירות יהיה זמין מאוד, כדאי להגדיר לפחות 3 מכונות מינימליות.
המגבלות של מספר המכונות המינימלי
מספר המכונות המינימלי הוא יעד שמוגדר כ"במידת האפשר" כדי לשמור על המכונות חמות ומוכנות. יכול להיות שתחוו ירידות זמניות מתחת למספר המינימלי של המכונות שהגדרתם, בגלל הסיכונים הבאים שלא טופלו, גם אם הגדרתם 3 מכונות או יותר:
- קיבולת של אזור או תחום: במקרה של ניצול קיבולת חמור באזור או בתחום, יכול להיות שהמערכת לא תוכל להפעיל או להריץ מכונות.
- איזון מחדש של התשתית: מדי פעם מתבצע איזון מחדש של התשתית הבסיסית, מה שעלול לגרום לעיכוב זמני בהפעלת מכונות חלופיות. מידע נוסף על סיום מכונות זמין במסמכי התיעוד בנושא כיבוי מכונות.
- קריסות של האפליקציה: אם הקונטיינר קורס בזמן ההפעלה או נכשל באופן עקבי בבדיקות התקינות, המערכת מנסה כל הזמן להפעיל מכונות כדי לעמוד במינימום, אבל מספר המכונות התקינות שמוכנות להצגה נשאר מתחת לסף שהוגדר.
- מגבלות מכסה וחיוב: אם הפרויקט מגיע למגבלות המכסה של המעבד (CPU) או הזיכרון, או אם החיוב מושבת, הפלטפורמה מפסיקה את ההתאמה לעומס (scaling) ועשויה להפסיק את המכונות בלי קשר להגדרת המכונות המינימלית.
חיוב
מכונות שפועלות באמצעות התכונה "מספר מינימלי של מכונות" צוברות עלויות חיוב.
בתרשים הבא מוצג איך החיוב פועל במהלך מחזור החיים של המכונה כשמגדירים מספר מינימלי של מכונות לשירות או לגרסה:
בהתאם להגדרות החיוב, החיוב על השירות מתבצע באופן הבא:
- בחיוב לפי בקשות, אתם מחויבים בתעריף נמוך יותר כשהמכונות לא פעילות וממתינות לעיבוד בקשות. אם המספר המינימלי של המכונות מוגדר ל-
0, לא תחויבו כשהמכונות לא פעילות. - בחיוב מבוסס-מכונה, אתם מחויבים בתעריף ברירת המחדל לכל מחזור החיים של המכונה. הזמן מההפעלה ועד לכיבוי כולל את הזמן שבו המכונה מעבדת בקשות או לא פעילה. במילים אחרות, גם אם המספר המינימלי של המכונות מוגדר כ-
0, עדיין תחויבו בתעריף ברירת המחדל. האפשרות הזו מתאימה אם אתם צריכים מעבד (CPU) מחוץ לבקשות. אם המספר המינימלי של המכונות מוגדר ל-0, תחויבו בתעריף ברירת המחדל.
החלת מספר מינימלי של מכונות ברמת השירות לעומת רמת הגרסה
אפשר להגדיר מספר מינימלי של מכונות ברמת השירות או ברמת הגרסה. Google ממליצה להחיל את מספר המכונות המינימלי ברמת השירות, ולא לשלב בין מספר המכונות המינימלי ברמת השירות לבין מספר המכונות המינימלי ברמת הגרסה. מה קורה כשמגדירים את הגדרות ההתאמה לעומס גם ברמת השירות וגם ברמת הגרסה?
אם מחילים את מספר המכונות המינימלי ברמת הגרסה, ההגדרות נכנסות לתוקף כשפורסים את הגרסה. אם תפעילו את התכונה הזו ברמת השירות, ההגדרה תיכנס לתוקף בלי שתצטרכו לפרוס גרסה חדשה.
גרסאות ומספר מינימלי של מכונות
כשמגדירים מספר מינימלי של מכונות ברמת השירות, הבקשות הנכנסות מופצות לכל הגרסאות שמקבלות תנועה באופן יחסי לחלוקת התנועה.
כשמגדירים מספר מינימלי של מכונות ברמת הגרסה, המכונות האלה מופעלות בכל פעם שמפנים לגרסה בחלוקת התנועה או שמוקצה לה תג תנועה. כלומר, המכונה מחויבת כשהיא מעבדת בקשות וגם כשהיא ממתינה לבקשות נכנסות.
גרסאות מתויגות ומספר מינימלי של מכונות ברמת השירות
אם מופעלת גרסה עם תג שהוקצה, המכונה נספרת במסגרת מספר המכונות המינימלי ברמת השירות, אם הן חלק מחלוקת התנועה.
ניתוב בקשות עם מספר מינימלי של מכונות
כשמגדירים מספר מינימלי של מכונות, Cloud Run מחלק את הבקשות הנכנסות באופן שווה בין כל המכונות שהוקצו. חשוב להבין את ההתנהגות הזו כדי לנהל את העלויות, במיוחד בחיוב שמבוסס על בקשות או אם אתם מתכוונים להחזיק מכונות hot spare במצב חוסר פעילות. כדי לצמצם את העלויות, הגדירו את מספר המכונות המינימלי למספר המכונות שנדרש כדי לטפל בתנועה הרגילה.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להגדרה ולפריסה של שירותי Cloud Run, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- מפתח ב-Cloud Run (
roles/run.developer) בשירות Cloud Run - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בזהות השירות
אם אתם פורסים שירות או פונקציה מקוד מקור, אתם צריכים גם תפקידים נוספים בפרויקט ובחשבון השירות של Cloud Build.
רשימה של תפקידים והרשאות ב-IAM שמשויכים ל-Cloud Run מופיעה במאמרים תפקידי IAM ב-Cloud Run והרשאות IAM ב-Cloud Run. אם שירות Cloud Run שלכם מתממשק עם ממשקי API שלGoogle Cloud , כמו ספריות הלקוח ב-Cloud, עיינו במדריך להגדרת זהות השירות. מידע נוסף על הקצאת תפקידים זמין במאמרים הרשאות פריסה וניהול הגישה.
הגדרת מספר מינימלי של מכונות ברמת השירות
כברירת מחדל, במכונות של קונטיינרים מושבתת ההגדרה של מספר מינימלי של מכונות ברמת השירות, והערך שלה הוא 0. אפשר לשנות את ברירת המחדל הזו באמצעות מסוףGoogle Cloud , Google Cloud CLI או קובץ YAML:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Scaling.
בקטע Service scaling, מציינים את המספר המינימלי של מכונות מאגר בשדה Minimum number of instances.
כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
עדכון המספר המינימלי של המכונות לשירות מסוים באמצעות הפקודה הבאה:
gcloud run services update SERVICE --min MIN-VALUE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: שם השירות.
- MIN-VALUE: מספר המכונות של הקונטיינרים שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות. מציינים
defaultכדי למחוק את כל הגדרות המינימום של המכונות.
אפשר גם להגדיר את המספר המינימלי של המכונות במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --min MIN-VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
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. - MIN-VALUE: מספר המכונות של הקונטיינר שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות. מציינים את הערך
defaultכדי למחוק את הגדרת המינימום של המכונות.
YAML
כל שינוי בהגדרות יוצר גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
run.googleapis.com/minScale:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/minScale: 'MIN_INSTANCE'
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run
- MIN-INSTANCE: מספר המכונות שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות.
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
כברירת מחדל, הפקודה
gcloud run services replaceמשתמשת בקובץservice.yamlאם הוא קיים.
ספריות לקוח
כדי לעדכן את מספר המכונות המינימלי ברמת השירות באמצעות קוד:
API בארכיטקטורת REST
כדי לעדכן את מספר המכונות המינימלי ברמת השירות, שולחים בקשת HTTP מסוג PATCH לנקודת הקצה service של Cloud Run Admin API.
לדוגמה, באמצעות curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{ "scaling": { "minInstanceCount": MIN-VALUE }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.minInstanceCount
מחליפים את מה שכתוב בשדות הבאים:
- ACCESS_TOKEN: טוקן גישה תקין לחשבון עם הרשאות IAM לעדכון שירות.
לדוגמה, אם אתם מחוברים ל-
gcloud, אתם יכולים לאחזר טוקן גישה באמצעותgcloud auth print-access-token. מתוך מכונה של קונטיינר ב-Cloud Run, אתם יכולים לאחזר טוקן גישה באמצעות שרת המטא-נתונים של המכונה של הקונטיינר. - MIN-VALUE: מספר המכונות של הקונטיינרים שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות.
- SERVICE: שם השירות.
- REGION: האזור של השירות Google Cloud .
- PROJECT-ID: מזהה הפרויקט ב- Google Cloud .
הצגת המספר המינימלי של מכונות ברמת השירות
כדי לראות את ההגדרות הקיימות של מספר המכונות המינימלי ברמת השירות של Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות הרצוי כדי לפתוח את החלונית Service details.
לוחצים על הכרטיסייה Scaling.
בקטע Service scaling, מאתרים את ההגדרה Minimum number of instances.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הערך של Scaling: Auto (Min: MIN_VALUE, Max: MAX_VALUE) בהגדרות שמוחזרות.
הגדרת מספר מינימלי של מכונות ברמת הגרסה
כל שינוי בהגדרות יוצר גרסה חדשה. גם גרסאות עתידיות יקבלו את הגדרת התצורה הזו באופן אוטומטי, אלא אם תבצעו עדכונים מפורשים כדי לשנות אותה.
כברירת מחדל, המאפיין min-instances מושבת במופעי קונטיינרים, וההגדרה היא 0.
אפשר לשנות את קנה המידה ברמת הגרסה רק בשירותים שהתכונה הזו הוגדרה בהם בעבר.
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני. לאחר מכן לוחצים על Containers, Networking, Security כדי להרחיב את דף הגדרת השירות.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Scaling.
בקטע Revision scaling, מציינים את המספר המינימלי של מכונות קונטיינר בשדה Minimum number of instances.
כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
gcloud
כדי לעדכן את min-instance של שירות מסוים, משתמשים בפקודה הבאה:
gcloud run services update SERVICE --min-instances MIN-VALUE
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: שם השירות.
- MIN-VALUE: מספר המכונות של הקונטיינרים שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות. מציינים
defaultכדי למחוק את כל הגדרות המינימום של המכונות.
אפשר גם להגדיר את min-instance במהלך הפריסה באמצעות הפקודה:
gcloud run deploy --image IMAGE_URL --min-instances MIN-VALUE
מחליפים את מה שכתוב בשדות הבאים:
-
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. - MIN-VALUE: מספר המכונות של הקונטיינרים שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות. מציינים
defaultכדי למחוק את כל הגדרות המינימום של המכונות.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, הורידו את הגדרת ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את המאפיין
autoscaling.knative.dev/minScale::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE' name: REVISION
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run
- MIN-INSTANCE: מספר המכונות שצריך לשמור במצב פעיל, מוכנות לקבלת בקשות.
-
REVISION: שם גרסה חדש או מחיקה של השם (אם הוא קיים). אם אתם מספקים שם חדש לגרסה, הוא חייב לעמוד בקריטריונים הבאים:- מתחיל ב-
SERVICE- - מכיל רק אותיות קטנות, מספרים ו-
- - לא מסתיים ב-
- - לא חורג מ-63 תווים
- מתחיל ב-
יוצרים או מעדכנים את השירות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
כברירת מחדל, הפקודה
gcloud run services replaceמשתמשת בקובץservice.yamlאם הוא קיים.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את הקוד הבא למשאבgoogle_cloud_run_v2_service בתצורה של Terraform:המשאב google_cloud_run_v2_service שלמעלה מציין מספר מינימלי של מופעים של 1 ב-template.scaling.
מחליפים את 1 במספר המינימלי של המכונות שרוצים.
הצגת מספר המכונות המינימלי ברמת הגרסה
אפשר לשנות את קנה המידה ברמת הגרסה רק בשירותים שבהם התכונה הוגדרה בעבר.
כדי לראות את ההגדרות הקיימות של מספר המכונות המינימלי ברמת הגרסה של שירות Cloud Run:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות הרצוי כדי לפתוח את החלונית Service details.
לוחצים על הכרטיסייה Scaling.
מוצאים את ההגדרה Minimum number of instances בקטע Revision scaling.
gcloud
משתמשים בפקודה הבאה:
gcloud run services describe SERVICE
מאתרים את הערך של Min instances: בהגדרות שמוחזרות.
דוגמאות
בקטעים הבאים מוסבר איך השירות פועל כשמגדירים מספר מינימלי של מכונות.
שימוש במספר מינימלי או מקסימלי של מכונות ברמת השירות וברמת הגרסה
אפשר לשלב בין מספר מינימלי או מקסימלי של מכונות ברמת השירות וברמת הגרסה. כשמגדירים את שתי המגבלות, המגבלות הסופיות של המכונות נקבעות לפי הכללים הבאים:
- מגבלות מקסימום תמיד גוברות על מגבלות מינימום: כל מגבלת מקסימום שתגדירו ברמת השירות או ברמת הגרסה מונעת מהמערכת לחרוג מהערך הזה, בלי קשר להגדרות המינימום.
- במגבלות מינימום, הערך הגבוה ביותר מנצח: כשכמה מגבלות מינימום פעילות ולא חסומות על ידי מגבלת מקסימום, ה-autoscaler עומד במגבלת המינימום הגבוהה ביותר.
| שירות | גרסה קודמת | כלל פתרון | ההתנהגות שמתקבלת |
|---|---|---|---|
| מינימום | מינימום | הצעת המחיר המינימלית הגבוהה ביותר זוכה | אם הערך המינימלי של השירות הוא 10 והערך המינימלי של הגרסה הוא 5, הגרסה תריץ 10 מכונות כדי לעמוד בערך המינימלי הגלובלי הגדול יותר. |
| מינימום | מקסימום | הערך המקסימלי של הגרסה מבטל את הערך המינימלי של השירות | אם המספר המינימלי של המופעים בשירות הוא 10 אבל המספר המקסימלי של המופעים בגרסה הוא 5, הגרסה מוגבלת ל-5 מופעים בלבד. |
| מקסימום | מינימום | הערך המקסימלי של השירות מבטל את הערך המינימלי של הגרסה | אם המספר המקסימלי של המכונות בשירות הוא 5 אבל המספר המינימלי של המכונות בגרסה הוא 10, הגרסה מוגבלת ל-5 מכונות בלבד. |
| מקסימום | מקסימום | המספר הנמוך ביותר של ניצחונות מקסימליים | אם המספר המקסימלי של המכונות בשירות הוא 5 ובגרסה הוא 10, הגרסה מוגבלת ל-5 מכונות. |
כדי לפתור אילוצי קיבולת, קודם כל Cloud Run מחשב את המספר המקסימלי של המופעים בפועל (הערך הקטן יותר מבין הערכים המקסימליים ברמת השירות וברמת הגרסה). לאחר מכן, המערכת קובעת את מספר המכונות המינימלי בפועל (הערך הגבוה יותר מבין המינימום ברמת הגרסה והמינימום שהוקצה ברמת השירות), ומגבילה את התוצאה למקסימום בפועל.
אם לא מגדירים ערך, המידרוג האוטומטי משתמש בערכי ברירת המחדל, כמו 0 למספר המינימלי של מכונות ברמת השירות וברמת הגרסה, ו-100 למספר המקסימלי של מכונות ברמת הגרסה.
שימוש במספר מינימלי של מכונות ברמת השירות עם חלוקת תנועה
אם אתם משתמשים בחלוקת תנועה, מספר המכונות המינימלי ברמת השירות מחולק בין הגרסאות בהתאם ליחס של חלוקת התנועה. לדוגמה, אם מספר המכונות המינימלי ברמת השירות הוא 10, חלוקת תנועה של 50/50 מקצה 5 מכונות מינימליות ברמת השירות לכל גרסה.
בטבלה הבאה מוצגים תרחישי הגדרה לדוגמה:
| תרחיש שימוש לדוגמה | דקות שירות | גרסה א' | גרסה ב' | חלוקת התנועה | ההתנהגות שמתקבלת |
|---|---|---|---|---|---|
| אין הגדרות ברמת הגרסה | 10 | מינימום: 0 | מינימום: 0 | 60/40 | גרסה א' מקבלת 6 מכונות ממספר המכונות המינימלי ברמת השירות, באופן יחסי לחלוקת התנועה. גרסה ב' מקבלת 4 מכסות של מספר המכונות המינימלי ברמת השירות, באופן יחסי לחלוקת התנועה. |
| קבלת יותר מופעים מהמינימום ברמת השירות בגלל המינימום ברמת הגרסה | 10 | מינימום: 6 | מינימום: 0 | 50/50 | גרסה א' מקבלת 6 מכונות ממספר המכונות המינימלי ברמת הגרסה. גרסה ב' מקבלת 5 מכונות ממספר המכונות המינימלי ברמת השירות, באופן יחסי לחלוקת התנועה. המספר הזה חורג מהמספר המינימלי של מכונות ברמת השירות, וזה מכוון. |
| מתקבלים פחות מופעים מהמינימום ברמת השירות בגלל המקסימום ברמת הגרסה | 10 | מינימום: 0 מקסימום: 3 |
מינימום: 0 | 50/50 | גרסה א' מקבלת 3 מכונות ממספר המכונות המינימלי ברמת השירות, בהתאם לחלוקת התנועה, אבל היא מוגבלת למספר המכונות המקסימלי ברמת הגרסה. גרסה ב' מקבלת 5 מכונות ממספר המכונות המינימלי ברמת השירות, באופן יחסי לחלוקת התנועה. התוצאה היא 8 מכונות ברמת השירות, כי 2 מכונות אבדו בגלל המספר המקסימלי של מכונות ברמת הגרסה של גרסה א'. |
| מספר המכונות המינימלי ברמת השירות גדול ממספר הגרסאות בחלוקת התנועה, ויש כמות חלקית של מכונות ביחס לחלוקת התנועה | 3 | מינימום: 0 | מינימום: 0 | 50/50 | הקצאות חלקיות (1.5 מופעים לכל אחת) מעוגלות. הגרסה הראשונה שמופיעה ברשימה בקטע התנועה מקבלת את הערך המעוגל כלפי מעלה: גרסה ב' (שמופיעה ראשונה ברשימה) מקבלת 2 מופעים, וגרסה א' מקבלת מופע אחד. מספר המופעים הכולל הוא 3. |
קובעים את מספר המכונות המינימלי שצריך
אם המספר המינימלי של המכונות מוגדר גבוה יותר ממה שנדרש לתנועה הרגילה, יכול להיות שהרבה מכונות יהיו פעילות באופן חלקי, וכל אחת מהן תעבד כמה בקשות. לדוגמה, אם השירות דורש בדרך כלל 200 מכונות לעומס שיא, אבל מספר המכונות המינימלי מוגדר ל-600, הבקשות הנכנסות יתפרסו על פני כל 600 המכונות. כתוצאה מכך, הרבה מ-600 המכונות האלה הופכות לפעילות במידה מסוימת, וכל אחת מהן מטפלת בחלק קטן מהתנועה, במקום ש-200 מכונות יהיו פעילות מאוד ו-400 המכונות הנותרות יישארו במצב חוסר פעילות.
כדי לצמצם את העלויות (על ידי ניצול גבוה יותר של פחות מכונות), הגדירו את מספר המכונות המינימלי לערך שקרוב למספר המכונות שנדרש בפועל כדי לשרת את התנועה הרגילה.
בנוסף, כשההתאמה האוטומטית לעומס מקצה מכונות נוספות מעבר למספר המינימלי שהוגדר, Cloud Run מעדיף לנתב את הבקשות הנכנסות קודם למספר המינימלי של המכונות שהוגדרו, ורק אחר כך לשלוח בקשות למכונות שהוקצו בהתאמה האוטומטית לעומס. בחיוב שמבוסס על בקשות, הניתוב המועדף הזה למספר המינימלי של המכונות שהוגדרו מפחית את העלות, כי המכונות האלה מתמלאות לפני שנעשה שימוש במכונות שנוצרו על ידי התאמה אוטומטית לעומס. שימו לב שהניתוב המועדף הזה יכול גם לגרום לכך שהניצול של המכונות המינימליות שהוגדרו יהיה גבוה יותר מזה של המכונות שנוספו בהתאמה אוטומטית לעומס, בהתאם לכמות התנועה.