צפייה בשיעור ההפקעה ובמחירים של מכונות וירטואליות מסוג Spot

במאמר הזה מוסבר איך לראות את שיעור ההפקעה ואת התמחור של מכונות וירטואליות במודל Spot.

לפני שיוצרים VM במודל Spot, אפשר לראות את שיעורי ההפסקה הזמנית ואת המחירים ההיסטוריים והנוכחיים של סוג המכונה שרוצים שה-VM במודל Spot ישתמשו בו. הצגת הנתונים האלה עוזרת לכם להשוות בין היציבות והעלות של סוגים ומיקומים שונים של מכונות, כדי למצוא את האפשרות שהכי מתאימה לעומס העבודה ולתקציב שלכם.

אם אתם רוצים לראות נתונים בזמן אמת על VM במודל Spot, כדאי לעיין במאמרים הבאים:

מגבלות

אי אפשר לראות את שיעור ההפסקות הזמניות ואת מגמה בתנודות של מחירים של סוגי מכונות N1 עם מעבדי GPU מצורפים, סוגי מכונות בהתאמה אישית או TPUs.

הסבר על שיעור ההפסקות והתמחור של מכונות VM מסוג Spot

כששולחים בקשה ל-API של advice.capacityHistory, הפלט מציג את המדדים הבאים. הבנת המדדים האלה תאפשר לכם לראות ולהשוות את המגמה בשיעור ההפקעה ואת המגמה בתנודות של המחירים בסוגי מכונות ובאזורים שונים, ואז להשתמש בנתונים האלה כדי לקבל החלטות מושכלות כשאתם יוצרים מכונות וירטואליות במודל Spot.

שיעור ההקדמה ההיסטורי

שיעור ההפקעה ההיסטורי (preemptionHistory) מציג את שיעורי ההפקעה היומיים של סוג המכונה והאזור שציינתם ב-30 הימים האחרונים. ב-Compute Engine, הגבולות של הנתונים עבור השיעור הזה נקבעים בחצות לפי שעון החוף המערבי (PT). שיעור ההפקעה של היום הנוכחי עשוי להשתנות במהלך היום.

‫Compute Engine מחשב את שיעור ההפסקות באמצעות חלוקת מספר המכונות הווירטואליות מסוג Spot שהופסקו ביום מסוים ב- Google Cloud במספר המכונות הווירטואליות מסוג Spot שהפסיקו לפעול באותו יום, כמו שמוצג בנוסחה הבאה. ההפסקות האלה כוללות מצבים שבהם משתמשים או פעולות פרוגרמטיות (כמו זמני ריצה מוגבלים) משעים, מפסיקים או מוחקים VM במודל Spot, או כש-Compute Engine מבצע ניתוק יזום שלהן.

$${preemptionHistory}=\frac{\text{Total preempted Spot VMs in a day}}{\text{Total Spot VMs that stopped running in a day}}$$

שיעור ההקצאה מראש נע בין 0.00 ל-1.00. לדוגמה, שיעור של 0.50 מציין שמתוך ה-VM במודל Spot עם סוג מכונה ספציפי ובאזור ספציפי שהפסיקו לפעול באותו יום ב- Google Cloud, מערכת Compute Engine ביצעה הפסקה זמנית ב-50% מהן.

תמחור היסטורי

היסטוריית המחירים (priceHistory) מציגה את השינויים במחיר בדולר ארה"ב לסוג המכונה ולאזור שציינתם בשנה האחרונה. כל רשומה מציינת את המחיר השעתי של פרק הזמן שבו המחיר היה בתוקף. השינויים במחירים ב-Compute Engine נכנסים לתוקף בחצות (00:00) לפי שעון החוף המערבי של ארה"ב. אם הנתונים לא זמינים, יהיו פערים במרווחי הזמן.

לפני שמתחילים

  • ממשק advice.capacityHistory ה-API כולל כברירת מחדל אזורי AI בפלט שלו. כדי לוודא שאפשר ליצור מכונות וירטואליות מסוג Spot באזורי AI אם ממשק ה-API ממליץ ליצור מכונות וירטואליות באחד מהאזורים האלה, צריך לוודא שאזורי ה-AI מופעלים בפרויקט.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-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 .

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות להצגת שיעור הדחיקה והתמחור של VM במודל Spot, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד Compute Viewer (‏roles/compute.viewer) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד שמוגדר מראש מכיל את ההרשאות שנדרשות כדי לראות את שיעור ההפסקה הזמנית והתמחור של VM במודל Spot. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי לראות את שיעור ההפסקות ואת התמחור של VM במודל Spot, נדרשות ההרשאות הבאות:

  • כדי לראות את שיעור ההפסקה הזמנית ואת התמחור של VM במודל Spot: compute.advice.capacityHistory בפרויקט

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

איך צופים בשיעור ההפסקות הזמניות ובמחירים של מכונות VM מסוג Spot

כדי לראות את שיעור ההפסקה הזמנית ההיסטורי ואת התמחור של VM במודל Spot, צריך לציין את סוג המכונה ואת האזור או התחום שבהם רוצים ליצור מכונות וירטואליות. על סמך התוצאות, אפשר ליצור את ה-VMs במודל Spot, או לראות את שיעור ההפסקה הזמנית והתמחור במיקום אחר או עבור מכונה אחרת.

כדי לראות את שיעור ההפסקות הזמניות ואת התמחור של VM במודל Spot, בוחרים באחת מהאפשרויות הבאות:

המסוף

  1. פותחים את הדף Capacity advisor במסוף Google Cloud .

    כניסה לכלי Capacity advisor

  2. בחלונית Filters, מבצעים את הפעולות הבאות:

    1. בקטע Location, ברשימה Region בוחרים את האזורים שבהם רוצים ליצור את ה-VM במודל Spot.

    2. בקטע Machine specifications, מציינים את הגדרת המכונה ואת מספר ה-VMs במודל Spot שרוצים ליצור:

      1. ברשימה Machine family, בוחרים משפחת מכונות.

      2. ברשימה Series, בוחרים עד שלוש סדרות מכונות.

      3. ברשימה Machine type, בוחרים עד חמישה סוגי מכונות.

      4. בשדה Number of VMs, מזינים את מספר המכונות הווירטואליות במודל Spot.

      5. אופציונלי: כברירת מחדל, אזורים עם משאבים מוגבלים זמינים מוסתרים. כדי לראות את האזורים האלה, צריך לבטל את הסימון של התיבה Hide regions with מלאי מוגבל.

    3. לוחצים על חיפוש.

  3. בהתאם לתרחיש השימוש, בוחרים באחת מהאפשרויות הבאות:

    • כדי לראות את המחירים, הזמינות ושיעורי ההפקעה של מיקום מסוים:

      1. בחלונית Results for provisioning model, לוחצים על הכרטיסייה Map.

      2. לוחצים על אזור במפה. יופיע חלונית עם המחירים ושיעורי ההפסקות הזמניות לפי אזור.

    • כדי להשוות בין תמחור היסטורי ושיעורי קדימות בין סוגים שונים של מכונות, צריך לבצע את השלבים הבאים:

      1. בחלונית Results for provisioning model, לוחצים על הכרטיסייה List.

      2. בוחרים שתי שורות או יותר שמכילות את סוגי המכונות שרוצים להשוות.

      3. לוחצים על השוואת מחירים. מוצג החלונית Machine type comparison.

      4. כדי לראות את נתוני התמחור או את שיעורי ההפקעה, לוחצים על הכרטיסייה Price או על הכרטיסייה Preemption.

      5. אופציונלי: כדי לשנות את סוגי המכונות להשוואה, מבצעים אחת מהפעולות הבאות:

        • כדי להוסיף סוג מכונה, לוחצים על Add machine type ובוחרים את סוג המכונה שרוצים להוסיף.

        • כדי להסיר סוג מכונה, בעמודה פעולות של סוג המכונה שרוצים להסיר, לוחצים על הסרת השורה.

gcloud

כדי לראות את שיעור ההפקעה ואת המחירים של מכונות VM מסוג Spot, משתמשים בפקודה gcloud beta compute advice capacity-history.

בהתאם לתרחיש השימוש, צריך לכלול את הדגלים הבאים:

  • כדי לראות את שיעור ההדחה והתמחור באזור מסוים, צריך לכלול את הדגלים --types=PREEMPTION,PRICE ו---region:

    gcloud beta compute advice capacity-history \
        --provisioning-model=SPOT \
        --machine-type=MACHINE_TYPE \
        --types=PREEMPTION,PRICE \
        --region=REGION
    
  • כדי לראות את שיעור הקדימות באזור, צריך לכלול את הדגלים --types=PREEMPTION ו---zone:

    gcloud beta compute advice capacity-history \
        --provisioning-model=SPOT \
        --machine-type=MACHINE_TYPE \
        --types=PREEMPTION \
        --zone=ZONE
    

מחליפים את מה שכתוב בשדות הבאים:

  • ‫MACHINE_TYPE: סוג המכונה שרוצים שמכונות וירטואליות מסוג Spot ישתמשו בו.

  • ‫REGION: האזור שבו רוצים ליצור מכונות וירטואליות מסוג Spot.

  • ‫ZONE: האזור שבו רוצים ליצור VM במודל Spot.

הפלט אמור להיראות כך:

location: https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a
machineType: n2-standard-32
preemptionHistory:
- interval:
    endTime: "2026-04-21T07:00:00Z"
    startTime: "2026-04-20T07:00:00Z"
  preemptionRate: 0.52
- interval:
    endTime: "2026-04-22T07:00:00Z"
    startTime: "2026-04-21T07:00:00Z"
  preemptionRate: 0.64
...
priceHistory:
- interval:
    endTime: "2026-05-11T07:00:00Z"
    startTime: "2026-04-27T07:00:00Z"
  listPrice:
    currencyCode: "USD"
    nanos: "478720000"
- interval:
    endTime: "2026-05-12T07:00:00Z"
    startTime: "2026-05-11T07:00:00Z"
  listPrice:
    currencyCode: "USD"
    nanos: "502720000"
...

REST

כדי לראות את שיעור ההפקעה והתמחור של מכונות VM במודל Spot, שולחים בקשת POST לשיטה advice.capacityHistory בגרסת בטא.

בהתאם לתרחיש השימוש, שולחים אחת מהבקשות הבאות:

  • כדי לראות את שיעור ההפקעה והתמחור באזור מסוים, שולחים את הבקשה הבאה:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacityHistory
    
    {
      "types": [
        "PREEMPTION",
        "PRICE"
      ],
      "instanceProperties": {
        "scheduling": {
          "provisioningModel": "SPOT"
        },
        "machineType": "MACHINE_TYPE"
      }
    }
    
  • כדי לראות את שיעור ההדחה באזור מסוים, שולחים את הבקשה הבאה:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/advice/capacityHistory
    
    {
      "types": [
        "PREEMPTION"
      ],
      "instanceProperties": {
        "scheduling": {
          "provisioningModel": "SPOT"
        },
        "machineType": "MACHINE_TYPE"
      },
      "locationPolicy": {
        "location": "zones/ZONE"
      }
    }
    

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט.

  • ‫REGION: האזור שבו רוצים ליצור מכונות וירטואליות מסוג Spot.

  • ‫MACHINE_TYPE: סוג המכונה שרוצים להשתמש בה ל-VM במודל Spot.

  • ‫ZONE: האזור, שחייב להיות בתוך REGION, שבו רוצים ליצור VM במודל Spot.

הפלט אמור להיראות כך:

{
  "machineType": "n2-standard-32",
  "location": "https://compute.googleapis.com/compute/beta/projects/example-project/regions/us-central1",
  "preemptionHistory": [
    {
      "interval": {
        "startTime": "2026-04-20T07:00:00Z",
        "endTime": "2026-04-21T07:00:00Z"
      },
      "preemptionRate": 0.52
    },
    {
      "interval": {
        "startTime": "2026-04-21T07:00:00Z",
        "endTime": "2026-04-22T07:00:00Z"
      },
      "preemptionRate": 0.64
    },
    ...
  ],
  "priceHistory": [
    {
      "interval": {
        "startTime": "2026-04-27T07:00:00Z",
        "endTime": "2026-05-11T07:00:00Z"
      },
      "listPrice": {
        "currencyCode": "USD",
        "nanos": "478720000"
      }
    },
    {
      "interval": {
        "startTime": "2026-05-11T07:00:00Z",
        "endTime": "2026-05-12T07:00:00Z"
      },
      "listPrice": {
        "currencyCode": "USD",
        "nanos": "502720000"
      }
    },
    ...
  ]
}

המאמרים הבאים