שינוי גודל בהתאם לניצול המעבד

הסוג הפשוט ביותר של התאמה אוטומטית לעומס הוא התאמה אוטומטית לעומס של קבוצת מופעי מכונה מנוהלים (MIG) על סמך ניצול המעבד של המופעים שלה.

אפשר גם להגדיר התאמה אוטומטית לעומס (autoscaling) של קבוצת מופעי מכונה מנוהלים (MIG) על סמך קיבולת ההגשה של איזון העומסים, מדדי המעקב או לוחות זמנים.

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

שינוי גודל בהתאם לניצול המעבד

אתם יכולים להגדיר התאמה אוטומטית לעומס על סמך השימוש הממוצע ב-CPU של קבוצת מכונות מנוהלת (MIG). כשמשתמשים במדיניות הזו, המידרוג האוטומטי אוסף את נתוני השימוש במעבד (CPU) של המכונות בקבוצה, וקובע אם צריך לשנות את קנה המידה. אתם מגדירים את יעד השימוש במעבד (CPU) שהמידרוג האוטומטי צריך לשמור עליו, והכלי פועל כדי לשמור על הרמה הזו.

המידרוג האוטומטי מתייחס לרמת היעד של ניצול המעבד כחלק מהשימוש הממוצע בכל ה-vCPUs לאורך זמן בקבוצת המכונות. אם השימוש הממוצע בסך כל המעבדים הווירטואליים (vCPU) חורג מיעד השימוש, המערכת להרחבה אוטומטית מוסיפה עוד מופעים של מכונות וירטואליות. אם הניצול הממוצע של כל ה-vCPUs נמוך מהיעד, ה-autoscaler מסיר מכונות. לדוגמה, אם מגדירים יעד ניצול של 0.75, המערכת להרחבת הקיבולת האוטומטית שומרת על ניצול ממוצע של 75% בכל המעבדים הווירטואליים בקבוצת המופעים.

כדי לחשב את השימוש הממוצע במעבד של קבוצת מכונות, המידרוג האוטומטי משתמש במדד compute.googleapis.com/instance/cpu/utilization, שמדווח על השימוש במעבד כפי שנמדד על ידי ה-hypervisor. המידרוג האוטומטי לא משתמש בניצול ה-CPU שמדווח על ידי כלים כמו top, מנהל המשימות או סוכן תפעול מתוך מערכת ההפעלה של האורח. הערכים האלה יכולים להיות שונים מהמדידה ברמת ה-hypervisor.

אפשר גם לשנות את קנה המידה על סמך תחזית של ניצול המעבד (CPU). למידע נוסף, וכדי לבדוק אם זה מתאים לעומס העבודה שלכם, קראו את המאמר שינוי קנה מידה על סמך חיזויים.

הפעלת התאמה אוטומטית לעומס (autoscaling) על סמך ניצול המעבד (CPU)

כדי להפעיל התאמה אוטומטית לעומס (automatic scaling) על סמך ניצול המעבד (CPU), אפשר להשתמש באחת מהאפשרויות הבאות. אם רוצים להגדיר תקופת ייצוב כדי לשלוט בקצב של הגדלת הקיבולת, צריך להשתמש ב-Google Cloud CLI או ב-REST.

המסוף

  1. נכנסים לדף Instance groups במסוף.

    כניסה לדף Instance groups

  2. אם יש לכם קבוצת מכונות, לוחצים על השם של קבוצת המכונות ואז על Edit. בדף העריכה של קבוצת המכונות, מבצעים את הפעולות הבאות:

    1. לוחצים על הקטע Group size & autoscaling כדי להרחיב אותו.
    2. לוחצים על Configure autoscaling.
  3. אם אין לכם קבוצת מופעים, לוחצים על Create instance group (יצירת קבוצת מופעים) ומבצעים את הפעולות הבאות:

    1. בשדה Name (שם), מציינים שם לקבוצה.
    2. ברשימה Instance template, בוחרים תבנית של הגדרות מכונה.
    3. בקטע Location, בהתאם לסוג ה-MIG שאתם יוצרים (אזורי או אזורי), בוחרים באחת מהאפשרויות הבאות:

      • לקבוצת MIG אזורית, בוחרים באפשרות Single zone ואז בוחרים אזור ותחום.
      • בשביל MIG אזורי, בוחרים באפשרות Multiple zones ואז בוחרים אזור ותחומים.
  4. בקטע Autoscaling, מתווסף כברירת מחדל אות של שימוש אוטומטי במעבד (CPU). אתם יכולים להשתמש בערכי ברירת המחדל של האות או לבצע את הפעולות הבאות:

    1. מציינים את המספר המינימלי והמקסימלי של המכונות שרוצים שההתאמה האוטומטית לעומס תיצור בקבוצה הזו.
    2. כדי לערוך את יעד ניצול ה-CPU, לוחצים על האות של ניצול ה-CPU כדי להרחיב את הקטע ומציינים את האחוז.

      1. בקטע התאמה אוטומטית לעומס מבוססת-תחזיות, בוחרים באפשרות מושבת. כדי לקבל מידע נוסף על התאמה אוטומטית לעומס מבוססת-תחזיות, ולבדוק אם הוא מתאים לעומס העבודה שלכם, אפשר לעיין במאמר התאמה לעומס על סמך תחזיות.
    3. לוחצים על סיום.

  5. אפשר להשתמש ב-Initialization period כדי להגדיר למנגנון ההתאמה האוטומטית לעומס כמה זמן לוקח לאפליקציה לבצע אתחול. ציון תקופת אתחול מדויקת משפר את ההחלטות של המידרוג האוטומטי. לדוגמה, כשמרחיבים אופקית בהתאם לעומס (scale out), המידרוג האוטומטי מתעלם מנתונים של מכונות וירטואליות שעדיין עוברות אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת ברירת המחדל לאתחול היא 60 שניות.

  6. לוחצים על Save.

gcloud

כדי להפעיל את התכונה 'התאמה אוטומטית לעומס (automatic scaling)' לקבוצת מופעי מכונה מנוהלים, משתמשים בפקודת המשנה set-autoscaling. לדוגמה, הפקודה הבאה יוצרת מידרוג אוטומטי עם יעד של 60% לניצול המעבד (CPU). כשיוצרים התאמה אוטומטית לעומס, צריך להשתמש גם בפרמטר --target-cpu-utilization וגם בפרמטר --max-num-replicas:

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
    --max-num-replicas 20 \
    --target-cpu-utilization 0.60 \
    --cool-down-period 90 \
    --stabilization-period 240

אפשר להגדיר את הדגלים הבאים כדי לשלוט בהתאמה האוטומטית לעומס:

  • אפשר להשתמש בדגל --cool-down-period כדי להגדיר את תקופת האתחול, שקובעת כמה זמן נדרש לאפליקציה כדי לבצע אתחול. ציון תקופת אתחול מדויקת משפר את ההחלטות של המידרוג האוטומטי. לדוגמה, כשמגדילים את הקיבולת, הכלי לשינוי גודל אוטומטי מתעלם מנתונים של מכונות וירטואליות שעדיין נמצאות בתהליך אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת האתחול שמוגדרת כברירת מחדל היא 60 שניות.
  • אפשר להשתמש בדגל --stabilization-period כדי להגדיר את תקופת הייצוב, שקובעת את משך הזמן שבו ה-MIG יצטמצם. תקופת ייצוב קצרה יותר מצביעה על מחיקה מהירה יותר של מכונות וירטואליות לצורך צמצום אופקי בהתאם לעומס (scale in). הערך צריך להיות בין `0` שניות ל-`3600` שניות. ערך ברירת המחדל הוא 600 שניות. מידע נוסף זמין במאמר בנושא שיטות מומלצות לתקופת ייצוב.

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

כדי לוודא שהתכונה 'התאמה אוטומטית לעומס (automatic scaling)' הופעלה בהצלחה, משתמשים בפקודת-המשנה instance-groups managed describe. הפקודה הזו מתארת את קבוצת מופעי המכונה המנוהלים התואמת ומספקת מידע על תכונות של התאמה אוטומטית לעומס (automatic scaling) עבור קבוצת המופעים הזו:

gcloud compute instance-groups managed describe example-managed-instance-group

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

REST

כדי ליצור מידרוג אוטומטי, משתמשים ב-method‏ autoscalers.insert לקבוצת MIG אזורית או ב-method‏ regionAutoscalers.insert לקבוצת MIG בכמה אזורים.

בדוגמה הבאה נוצרת קבוצת מופעים מנוהלת (MIG) עם קנה מידה אוטומטי באזור מסוים:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers

גוף הבקשה חייב להכיל את השדות name, target ו-autoscalingPolicy. ב-autoscalingPolicy צריך להגדיר את cpuUtilization ואת maxNumReplicas.

אפשר להגדיר את השדות הבאים כדי לשלוט בהתאמה האוטומטית לעומס:

  • אפשר להשתמש בשדה coolDownPeriodSec כדי להגדיר את תקופת האתחול, שבה מוגדר למנגנון לשינוי גודל המשאבים כמה זמן לוקח לאתחל את האפליקציה. ציון תקופת אתחול מדויקת משפר את ההחלטות של המידרוג האוטומטי. לדוגמה, כשמגדילים את הקיבולת, הכלי לשינוי גודל אוטומטי מתעלם מנתונים של מכונות וירטואליות שעדיין נמצאות בתהליך אתחול, כי יכול להיות שהמכונות הווירטואליות האלה עדיין לא מייצגות שימוש רגיל באפליקציה. תקופת האתחול שמוגדרת כברירת מחדל היא 60 שניות.
  • אתם יכולים להשתמש בשדה stabilizationPeriodSec כדי להגדיר את תקופת הייצוב, שקובעת את משך הזמן שבו קבוצת ה-MIG תצמצם את המשאבים. תקופת ייצוב קצרה יותר מצביעה על מחיקה מהירה יותר של מכונות וירטואליות לצורך צמצום אופקי בהתאם לעומס (scale in). הערך צריך להיות בין `0` שניות ל-`3600` שניות. ערך ברירת המחדל הוא 600 שניות. שיטות מומלצות לתקופת הייצוב

אפשר גם להפעיל התאמה אוטומטית חזויה לעומס (autoscaling) כדי להרחיב אופקית בהתאם לעומס (scale out) לפני העומס החזוי. כדי לבדוק אם שינוי גודל אוטומטי חזוי מתאים לעומס העבודה שלכם, אפשר לעיין במאמר שינוי גודל על סמך תחזיות.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90,
    "stabilizationPeriodSec": 240
  }
}

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

איך מידרוג אוטומטי מטפל בניצול גבוה של המעבד (CPU)

במהלך תקופות של ניצול גבוה של המעבד (CPU), אם הניצול קרוב ל-100%, המידרוג האוטומטי מעריך שהקבוצה כבר עמוסה מאוד. במקרים כאלה, מידרוג אוטומטי מגדיל את מספר המכונות הווירטואליות ב-50% לכל היותר.

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