במסמך הזה מוסבר איך לראות את הזמינות בזמן אמת ואת זמן הפעולה הצפוי של מכונות וירטואליות מסוג Spot.
לפני שיוצרים מכונות וירטואליות מסוג Spot, אפשר להשתמש ב-API advice.capacity כדי לראות את הזמינות בזמן אמת ואת זמן הפעולה הצפוי במגוון סוגים ומיקומים של מכונות. המידע הזה עוזר לכם:
צמצום השגיאות שקשורות לזמינות משאבים. כשאתם רואים אילו אזורים או אזורי זמינות כוללים קיבולת זמינה של סוגי מכונות, אתם יכולים לציין את ההגדרות האלה כשאתם יוצרים מכונות וירטואליות מסוג Spot. הפעולה הזו מצמצמת את הסיכוי שתיתקלו בשגיאות שקשורות לזמינות משאבים.
אופטימיזציה של עומסי עבודה להפסקת פעולה. השוואה בין זמני הפעולה הצפויים בתצורות שונות של מכונות ובמיקומים שונים מאפשרת לכם לבחור את התצורות שהכי מתאימות לעומסי העבודה שלכם. בדיקת הגורמים האלה מאפשרת לתכנן ולארגן את המכונות הווירטואליות מסוג Spot כך שההפסקות לא יפגעו בעומסי העבודה.
כדי להשוות בין היציבות והעלות של סוגים ומיקומים שונים של מכונות, אפשר לעיין במאמר הצגת שיעור ההפסקות והתמחור של מכונות Spot.
מגבלות
כששולחים בקשה ל-advice.capacity API, אי אפשר לראות את הזמינות של TPU.
הסבר על צפייה בזמינות של משאבים למכונות וירטואליות במודל Spot
כששולחים בקשה ל-advice.capacity API, הפלט מציג את מדדי ההמלצות הבאים. המדדים האלה מבוססים על סוג המכונה שבה רוצים להשתמש במכונות הווירטואליות מסוג Spot, על האזור שבו רוצים ליצור מכונות וירטואליות מסוג Spot ועל הזמינות בזמן אמת ושיעורי ההפקעה ההיסטוריים של המשאבים המבוקשים.
ציון הזמינות: הסבירות לכך שהבקשה ליצירת מכונות וירטואליות מסוג Spot עם מספר המכונות והגדרת המכונה שציינתם תצליח. מידע נוסף זמין במאמר ציון הזמינות של מכונות וירטואליות מסוג Spot.
זמן פעולה משוער: פרק הזמן המינימלי שבו אפשר לצפות שרוב מכונות ה-VM מסוג Spot יפעלו לפני ש-Compute Engine יבצע להן קדימות. מידע נוסף זמין במאמר בנושא זמן הפעולה המשוער של מכונות וירטואליות מסוג Spot.
ציון הזמינות של מכונות וירטואליות (VM) מסוג Spot
כששולחים בקשה ל-advice.capacity API, ציון הזמינות (obtainability) בפלט מציין את הסבירות לכך שתוכלו ליצור בהצלחה את מספר המכונות הווירטואליות מסוג Spot שציינתם באזור אחד או יותר. Compute Engine מחשב את הציון הזה על סמך הזמינות בזמן אמת של המשאבים המבוקשים ושיעור ההצלחה של בקשות יצירה מהזמן האחרון.
הציון שמתקבל נע בין 0.0 ל-1.0, והוא מציין את אחד מסיכויי ההצלחה הבאים:
סיכוי גבוה להצלחה (
0.7עד1.0): סביר מאוד שתצליחו ליצור את מכונות ה-Spot הווירטואליות שביקשתם.סיכויים בינוניים להצלחה (
0.4עד0.6): יש סיכוי סביר שתיצרו את המכונות הווירטואליות מסוג Spot שביקשתם. אם יוצרים מכונות וירטואליות מסוג Spot בכמות גדולה או ב-MIG עם גודל יעד, יכול להיות שתקבלו רק חלק מהמכונות הווירטואליות שביקשתם.סיכוי נמוך להצלחה (
0.0עד0.3): הסיכוי ליצור את מכונות ה-VM מסוג Spot שביקשתם נמוך. מומלץ לבדוק את זמינות המשאבים במיקום אחר או עבור סוג מכונה אחר, או ליצור מכונות וירטואליות באמצעות מודל הקצאת משאבים אחר.
זמן פעולה משוער של מכונות וירטואליות במודל Spot
כששולחים בקשה ל-advice.capacity API, זמן הפעולה המשוער (estimatedUptime) בפלט מציין את הזמן המינימלי שרוב המכונות הווירטואליות מסוג Spot שצוינו צפויות לפעול לפני שהן יידחקו. Compute Engine מחשב את זמן הפעולה הזה על סמך דפוסי שימוש היסטוריים ונוכחיים בסוג המכונה ובמיקום שציינתם.
Compute Engine יכול להגדיר את זמן הפעולה המשוער לאחד מהערכים הבאים:
60 דקות (3,600 שניות): רוב המכונות הווירטואליות מסוג Spot יפעלו למשך שעה לפני ש-Compute Engine יבצע להן קדימה. כדאי ליצור מכונות וירטואליות לעומסי עבודה שפועלים לטווח ארוך ויכולים לעמוד בהפרעות, כמו עומסי עבודה של אצווה.
10 דקות (600 שניות): רוב מכונות ה-Spot VM יפעלו למשך 10 דקות לפני ש-Compute Engine יבצע להן דחיקה. כדאי ליצור מכונות וירטואליות רק למשימות קצרות או לעומסי עבודה עמידים בכשלים ששומרים את ההתקדמות שלהם במרווחי זמן קצרים.
דקה אחת (60 שניות): רוב המכונות הווירטואליות מסוג Spot יפעלו למשך דקה אחת לפני ש-Compute Engine יבצע הפסקה שלהן. מומלץ לבצע אחת מהפעולות הבאות:
יוצרים מכונות וירטואליות רק למשימות קצרות מאוד, לבדיקות או לעומסי עבודה לא קריטיים.
בודקים את זמינות המשאבים במיקום אחר או בסוג מכונה אחר.
יצירת מכונות וירטואליות באמצעות מודל הקצאת משאבים אחר.
שיטות מומלצות
כדי להגדיל את הסיכויים לקבל קיבולת אחרי השימוש ב-advice.capacity API, מומלץ לפעול לפי השיטות המומלצות הבאות:
השוואה בין פלט של סוגי מכונות שונים: אם עומס העבודה גמיש, אפשר להשוות בין אפשרויות עם מספר שונה של מכונות וירטואליות מסוג Spot או סוגי מכונות שונים. לדוגמה, אפשר להשוות את הפלט של 100 מכונות וירטואליות עם סוג מכונה
n1-standard-2לבין 50 מכונות וירטואליות עם סוג מכונהn1-standard-4. לאחר מכן, תוכלו ליצור מכונות וירטואליות מסוג Spot באמצעות ההגדרה שמאזנת בצורה הטובה ביותר בין הזמינות לבין זמן הפעולה המשוער בהתאם לצרכים של עומס העבודה.השוואה בין פלטים בכמה מיקומים: אם אפשר להריץ את עומס העבודה בכמה אזורים או אזורי זמינות, כדאי לבדוק את הזמינות בכל מיקום. לדוגמה, אם שני אזורים מציעים את אותו זמן פעולה משוער, כדאי ליצור מכונות וירטואליות מסוג Spot באזור עם ציון ההשגה הגבוה יותר.
פיזור מכונות וירטואליות על פני כמה אזורים: אם מציינים צורה של פיזור יעד של
ANYאוBALANCED, יכול להיות ש-APIadvice.capacityימליץ ליצור מכונות וירטואליות מסוג Spot על פני כמה אזורים. לדוגמה, כדי למקסם את הסיכויים ליצור 100 מכונות וירטואליות מסוג Spot, יכול להיות שהפלט ימליץ ליצור 90 מכונות וירטואליות באזור אחד ו-10 מכונות וירטואליות באזור אחר.
לפני שמתחילים
- ה-API של
advice.capacityכולל אזורי AI כברירת מחדל בהמלצות הזמינות שלו ובזמן הפעולה הצפוי. כדי לוודא שתוכלו ליצור מכונות וירטואליות מסוג Spot באזורי AI אם ה-API ממליץ ליצור מכונות וירטואליות באחד מהאזורים האלה, צריך לוודא שאזורי ה-AI מופעלים בפרויקט. -
אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות.
אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
-
התקינו את ה-CLI של Google Cloud. אחר כך, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initאם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
- הגדרת אזור ותחום כברירת מחדל
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להצגת הזמינות של מכונות וירטואליות מסוג Spot, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Compute Viewer (roles/compute.viewer) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי לראות את הזמינות של מכונות וירטואליות מסוג Spot. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לראות את הזמינות של מכונות וירטואליות מסוג Spot, צריך את ההרשאות הבאות:
-
כדי לראות את הזמינות של מכונות וירטואליות מסוג Spot:
compute.advice.capacityבפרויקט
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
איך בודקים את הזמינות של מכונות וירטואליות מסוג Spot
כדי לראות את הזמינות של מכונות וירטואליות זמניות מסוג Spot, צריך לציין את המיקום, את הגדרת המכונה ואת מספר המכונות הווירטואליות שרוצים ליצור. על סמך התוצאות, אפשר ליצור את המכונות הווירטואליות הזמניות מסוג Spot, או לראות את זמינות המשאבים במיקום אחר או בהגדרת מכונה אחרת.
בהתאם לדרישות של עומס העבודה, כדאי לשקול את האפשרויות הבאות:
כדי לראות את הזמינות של כמה סדרות מכונות, סוגי מכונות ואזורים או אזורי זמינות בו-זמנית, אפשר להשתמש במסוף Google Cloud .
כדי לראות את הזמינות של צורות הפצה של יעד בקבוצת MIG אזורית, צריך להשתמש ב-CLI של gcloud או ב-API בארכיטקטורת REST.
כדי לראות את הזמינות של מכונות וירטואליות עם GPU מסוג N1 או של דיסקים מקומיים מסוג SSD שלא מצורפים לסוג מכונה כברירת מחדל, צריך להשתמש ב-API בארכיטקטורת REST.
כדי לראות את הזמינות של מכונות Spot, בוחרים באחת מהאפשרויות הבאות:
המסוף
נכנסים לדף Capacity advisor במסוף Google Cloud .
בחלונית Filters, מבצעים את הפעולות הבאות:
בקטע Location, ברשימה Region, בוחרים את האזורים שבהם רוצים לראות את הזמינות של מכונות וירטואליות מסוג Spot.
בקטע Machine specifications, מציינים את הגדרת המכונה ואת מספר המכונות הווירטואליות מסוג Spot שרוצים לראות את הזמינות שלהן:
ברשימה Machine family בוחרים משפחת מכונות.
ברשימה Series, בוחרים עד שלוש סדרות של מכונות.
ברשימה Machine type, בוחרים עד חמישה סוגי מכונות.
בשדה Number of VMs, מזינים את מספר המכונות הווירטואליות מסוג Spot.
לוחצים על חיפוש.
gcloud
כדי לראות את הזמינות של מכונות Spot, משתמשים בפקודה gcloud beta compute advice capacity:
gcloud beta compute advice capacity \
--provisioning-model=SPOT \
--instance-selection-machine-types=MACHINE_TYPES \
--target-distribution-shape=TARGET_DISTRIBUTION_SHAPE \
--size=SIZE \
--region=REGION
מחליפים את מה שכתוב בשדות הבאים:
MACHINE_TYPES: רשימה מופרדת בפסיקים של סוגי מכונות שרוצים לראות את הזמינות שלהם. לדוגמה:n2-standard-2,n2-standard-4. אפשר לציין עד חמישה סוגי מכונות.
TARGET_DISTRIBUTION_SHAPE: חלוקת המשאבים שביקשתם. בהתאם לסוג עומס העבודה שרוצים להריץ ולאזורים שבהם רוצים ליצור מכונות וירטואליות, מציינים אחד מהערכים הבאים:
ANY: רוצים ליצור מכונות וירטואליות במודל Spot באזור אחד או יותר על סמך הזמינות. מציינים את הערך הזה לעומסי עבודה של אצווה.
ANY_SINGLE_ZONE: רוצים ליצור מכונות וירטואליות מסוג Spot רק בתחום אחד על סמך הזמינות. מציינים את הערך הזה לעומסי עבודה שדורשים תקשורת נרחבת בין מכונות וירטואליות, כמו עומסי עבודה של AI או מחשוב עתיר ביצועים (HPC).
BALANCED: רוצים ליצור מכונות וירטואליות מסוג Spot בתחום אחד או יותר על סמך הזמינות, ולגרום ל-Compute Engine להפיץ את המכונות הווירטואליות באופן שווה ככל האפשר בין התחומים. מציינים את הערך הזה כדי למזער את ההשפעה של כשלים בתחומים על עומסי עבודה של הגשה או של אצווה עם זמינות גבוהה.
SIZE: מספר מכונות ה-VM במודל Spot שרוצים ליצור.
REGION: האזור שבו רוצים לראות את הזמינות של מכונות וירטואליות במודל Spot. כדי לציין רשימה של אזורים שמופרדים בפסיקים במקום אזור, מחליפים את הדגל--regionבדגל--zones.
הפלט אמור להיראות כך:
recommendations:
- scores:
obtainability: 0.9
estimatedUptime: 600s
- shards:
- instanceCount: 90
machineType: n2-standard-2
provisioningModel: SPOT
zone: https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a
- instanceCount: 10
machineType: n2-standard-4
provisioningModel: SPOT
zone: https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-c
REST
כדי לראות את הזמינות של מכונות וירטואליות מסוג Spot, שולחים בקשת POST ל-method advice.capacity בגרסת בטא.
לדוגמה, כדי לראות את הזמינות של שני סוגי מכונות באזור מסוים, שולחים בקשה כמו בדוגמה הבאה. אפשר לראות את הזמינות של עד חמישה סוגי מכונות בכל בקשה.
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacity
{
"instanceProperties": {
"scheduling": {
"provisioningModel": "SPOT"
}
},
"instanceFlexibilityPolicy": {
"instanceSelections": {
"MACHINE_SELECTION_1": {
"machineTypes": [
"MACHINE_TYPE_1"
]
},
"MACHINE_SELECTION_2": {
"machineTypes": [
"MACHINE_TYPE_2"
]
}
}
},
"distributionPolicy": {
"targetShape": "TARGET_DISTRIBUTION_SHAPE"
},
"size": SIZE
}
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.
REGION: האזור שבו רוצים לראות את הזמינות של מכונות וירטואליות מסוג Spot. אם רוצים לראות את הזמינות רק באזורים ספציפיים בתוך האזור שצוין, צריך לכלול את שדה המערךdistributionPolicy.zonesבגוף הבקשה. לדוגמה, כדי לראות את הזמינות של מכונות וירטואליות מסוג Spot בשני אזורים, מוסיפים את המערךzonesלשדהdistributionPolicyבאופן הבא:"zones": [ { "zone": "zones/ZONE_1" }, { "zone": "zones/ZONE_2" } ]מחליפים את
ZONE_1ואתZONE_2בשני התחומים שבהם רוצים לראות את הזמינות של מכונות וירטואליות מסוג Spot.
MACHINE_SELECTION_1ו-MACHINE_SELECTION_2: שם לבחירת סוג המכונה. לדוגמה, מצייניםselection-1ו-selection-2בהתאמה.
MACHINE_TYPE_1ו-MACHINE_TYPE_2: סוגי המכונות שרוצים לראות את הזמינות שלהן. בהתאם לסוג המכונה, חשוב לשים לב לנקודות הבאות:סוגי מכונות N1: כדי לצרף יחידות GPU למכונות וירטואליות מסוג N1 Spot, צריך לכלול את השדה
guestAcceleratorsבשדותMACHINE_SELECTION_1אוMACHINE_SELECTION_2באופן הבא:"guestAccelerators": [ { "acceleratorCount": ACCELERATOR_COUNT, "acceleratorType": "ACCELERATOR_TYPE" } ]מחליפים את מה שכתוב בשדות הבאים:
ACCELERATOR_COUNT: מספר יחידות ה-GPU לצירוף למכונות הווירטואליות של Spot מסוג N1.
ACCELERATOR_TYPE: a מודל GPU שתומך בסדרת מכונות N1.
סוגי מכונות ללא דיסקים מקומיים של SSD כברירת מחדל: כדי לצרף דיסקים מקומיים של SSD למכונות Spot שלכם, צריך לכלול את השדה
disksבשדותMACHINE_SELECTION_1אוMACHINE_SELECTION_2. לכל דיסק מקומי של SSD שרוצים לצרף, צריך לחזור על השדהtypeולהגדיר אותו לערךSCRATCH. לדוגמה, כדי לצרף שני דיסקים מקומיים של SSD, צריך לכלול את השדות הבאים:"disks": [ { "type": "SCRATCH" }, { "type": "SCRATCH" } ]
TARGET_DISTRIBUTION_SHAPE: חלוקת המשאבים שביקשתם. בהתאם לסוג עומס העבודה שרוצים להריץ ולאזורים שבהם רוצים ליצור מכונות וירטואליות, מציינים אחד מהערכים הבאים:
ANY: רוצים ליצור מכונות וירטואליות במודל Spot באזור אחד או יותר על סמך הזמינות. מציינים את הערך הזה לעומסי עבודה של אצווה.
ANY_SINGLE_ZONE: אתם רוצים ליצור מכונות וירטואליות במודל Spot רק באזור אחד על סמך הזמינות. מציינים את הערך הזה לעומסי עבודה שדורשים תקשורת נרחבת בין מכונות וירטואליות, כמו עומסי עבודה של AI או HPC.
BALANCED: רוצים ליצור מכונות וירטואליות מסוג Spot בתחום אחד או יותר על סמך הזמינות, ו-Compute Engine יפיץ את המכונות הווירטואליות באופן שווה ככל האפשר בין התחומים. מציינים את הערך הזה כדי למזער את ההשפעה של כשלים בתחומים על עומסי עבודה של הגשה או של אצווה עם זמינות גבוהה.
SIZE: מספר מכונות ה-VM במודל Spot שרוצים ליצור.
הפלט אמור להיראות כך:
{
"recommendations": [
{
"scores": {
"estimatedUptime": "600s",
"obtainability": 0.9
},
"shards": [
{
"instanceCount": 90,
"machineType": "n2-standard-2",
"provisioningModel": "SPOT",
"zone": "https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a"
},
{
"instanceCount": 10,
"machineType": "n2-standard-4",
"provisioningModel": "SPOT",
"zone": "https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-c"
}
]
}
]
}