התאמה אישית של מספר ליבות המעבד שגלויות

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

כל מעבד וירטואלי (vCPU) ב-Compute Engine מיושם כהליך משנה יחיד של חומרה שפועל על ליבת מעבד פיזית. כדי לצמצם את מספר יחידות ה-vCPU שזמינות למכונה וירטואלית, אפשר להתאים אישית את מספר ליבות המעבד שמוצגות ב-Compute Engine.

ליבות גלויות הן ליבות המעבד (CPU) בחומרה הבסיסית שהמכונות הווירטואליות צורכות. כברירת מחדל, מספר ליבות המעבד (CPU) שגלויות למכונה הווירטואלית הוא מספר יחידות ה-vCPU בסוג המכונה, חלקי מספר הליכי המשנה לכל ליבה:

‫Visible CPU cores = vCPUs בסוג המכונה / threads per core

לדוגמה, סוג המכונה c2-standard-60 מציין 60 ליבות וירטואליות. בהנחה שברירת המחדל היא 2 שרשורים לכל ליבה, מספר ליבות המעבד (CPU) שגלויות הוא 30. אם מפחיתים את מספר הליבות הגלויות מ-30 ל-20, מספר ה-vCPU הפונקציונליים יורד מ-60 ל-40.

כדאי להתאים אישית את מספר ליבות המעבד (CPU) הגלויות אם מתקיימים שני התנאים הבאים:

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

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

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

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

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

כדי להתאים אישית את מספר ליבות ה-CPU שגלויות, נדרשות ההרשאות הבאות:

  • כדי להתאים אישית את מספר ליבות המעבד שגלויות במהלך יצירת המכונה הווירטואלית:
    • ‫compute.instances.create בפרויקט
    • כדי להשתמש באימג' בהתאמה אישית ליצירת המכונה הווירטואלית (VM): compute.images.useReadOnly בקובץ אימג'
    • כדי להשתמש ב-snapshot ליצירת המכונה הווירטואלית: compute.snapshots.useReadOnly בקובץ ה-snapshot
    • כדי להשתמש בתבנית של הגדרות מכונה ליצירת המכונה הווירטואלית: compute.instanceTemplates.useReadOnly בתבנית של הגדרות המכונה
    • כדי להקצות רשת מדור קודם למכונה הווירטואלית: compute.networks.use בפרויקט
    • כדי לציין כתובת IP סטטית למכונה הווירטואלית: compute.addresses.use בפרויקט
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת מדור קודם: compute.networks.useExternalIp בפרויקט
    • כדי לציין רשת משנה למכונה הווירטואלית: compute.subnetworks.use בפרויקט או ברשת המשנה שנבחרה
    • כדי להקצות כתובת IP חיצונית למכונה הווירטואלית כשמשתמשים ברשת VPC: compute.subnetworks.useExternalIp בפרויקט או ברשת המשנה שנבחרה
    • כדי להגדיר מטא-נתונים של המכונה הווירטואלית למכונה הווירטואלית: compute.instances.setMetadata בפרויקט
    • כדי להגדיר תגים למכונה הווירטואלית: compute.instances.setTags במכונה הווירטואלית
    • כדי להגדיר תוויות למכונה הווירטואלית: compute.instances.setLabels במכונה הווירטואלית
    • כדי להגדיר חשבון שירות לשימוש של המכונה הווירטואלית: compute.instances.setServiceAccount במכונה הווירטואלית
    • כדי ליצור דיסק חדש למכונה הווירטואלית: compute.disks.create בפרויקט
    • כדי לצרף דיסק קיים במצב קריאה-בלבד או במצב קריאה וכתיבה: compute.disks.use בדיסק
    • כדי לצרף דיסק קיים במצב קריאה-בלבד: compute.disks.useReadOnly בדיסק
  • כדי להתאים אישית את מספר ליבות ה-CPU שגלויות בקבוצה של מכונות וירטואליות באמצעות תבנית של הגדרות מכונה: צריך את כל ההרשאות שמשתמשים בהן במהלך יצירת מכונה וירטואלית ואת ההרשאה compute.instanceTemplates.create בפרויקט

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

מעבדי vCPU ומספר השרשורים לכל ליבה

המספר הכולל של יחידות ה-vCPU בסוג מכונה הוא מספר ליבות המעבד (CPU) הגלויות, כפול מספר הליכי המשנה לכל ליבה. ברוב סדרות המכונות, מספר הליכי המשנה לכל ליבה הוא 2, אבל אפשר להגדיר ידנית את מספר הליכי המשנה לכל ליבה ל-1.

בטבלה הבאה מוצג הקשר בין ליבות המעבד (CPU) הגלויות, מספר הליכי המשנה לכל ליבה וסך כל יחידות ה-vCPU הזמינות, באמצעות סוג המכונה c2-standard-60 כדוגמה.

סוג המכונה ליבות מעבד גלויות שרשורים לכל ליבה מעבדים וירטואליים זמינים
c2-standard-60 30 (ברירת מחדל) 2 (ברירת מחדל) 60
c2-standard-60 30 (ברירת מחדל) 1 30
c2-standard-60 20 2 (ברירת מחדל) 40
c2-standard-60 20 1 20

שיקולי ביצועים

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

דיסק אחסון מתמיד (persistent disk)

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

תעבורת יציאה ברשת

מגבלות רוחב הפס של תעבורת נתונים יוצאת (egress) מהרשת תואמות לסוג המכונה ולא מושפעות ממספר ליבות ה-CPU שגלויות. עם זאת, ביצועי הרשת משתנים בהתאם למספר יחידות ה-vCPU שאפשר לגשת אליהן במכונה הווירטואלית. לדוגמה, יכול להיות שמכונה מסוג n2-standard-16 עם ליבת מעבד אחת גלויה לא תוכל להשתמש באופן מלא בחיבור של 32Gbps.

תמחור

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

עלויות הרישוי של מערכת ההפעלה

בחלק ממערכות ההפעלה, אפשר להפחית את עלויות הרישוי על ידי צמצום מספר ליבות המעבד (CPU) הגלויות. מערכות הפעלה רלוונטיות הן מערכות שבהן מחויבים על כל vCPU שזמין למכונה הווירטואלית, למשל Windows Server ו-SQL Server. למידע נוסף על אפשרויות הרישוי של מערכות ההפעלה האלה ב-Compute Engine, קראו את המאמר רישיונות של מיקרוסופט.

עלויות, מכסת נפח וקיבולת של מכונות וירטואליות

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

מגבלות

  • אי אפשר להתאים אישית את מספר ליבות ה-CPU שגלויות בזמן שמכונה וירטואלית נמצאת במצב RUNNING. מידע נוסף על מצבי מכונות וירטואליות זמין במאמר מחזור החיים של מכונות וירטואליות.

  • במסוף Cloud de Confiance , כשמספר הליבות שמוצגות מצטמצם, מדד ניצול המעבד (CPU) לא יכול להגיע ל-100%. הוא מוגבל למספר ליבות המעבד (CPU) הגלויות חלקי המספר המקסימלי של ליבות המעבד.

  • אי אפשר להשתמש בתכונה הזו כדי להתאים אישית את מספר ליבות ה-CPU שגלויות במופעי Bare Metal.

סוגי מכונות נתמכים וערכים תקינים לכל סוג

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

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

משפחת סוגי המכונות מספר מעבדי vCPU מוגדרים מראש* ערכים חוקיים לליבות מעבד גלויות
לשימוש כללי
C4 4, 8, 16, 24, 32, 48 הכול
C4 96 כפולות של 2
C4 144 כפולות של 3
C4 192 כפולות של 4
C4 288 כפולות של 6
C4D ‫192 ומטה הכול
C4D ‫> 192 כפולות של 2
C4N ‫≤ 48 הכול
C4N 96 כפולות של 2
C4N > 96 כפולות של 4
C3D ‫≤ 180 הכול
C3D 360 כפולות של 2
C3 ‫4, 8, 22, 44 כפולות של 1
C3 88 כפולות של 2
C3 176 כפולות של 4
E2 ≤ 32 הכול
N2 ≤ 32 הכול
N2 > 32 כפולות של 2
N2D ‫≤ 24 הכול
N2D > 24 כפולות של 2
N4 ≤ 80 הכול
N4D ‫≤ 96 הכול
N1 ‫≤ 64 הכול
N1 > 64 כפולות של 2
‫N1 (אופטימיזציה ל-TPU) 48 הכול
‫N1 (אופטימיזציה ל-TPU) 96 כפולות של 2
מותאמת לצריכת אחסון גבוהה (storage-optimized)
Z4D ‫192 ומטה הכול
Z4D 384 כפולות של 2
Z4M ‫≤ 64 הכול
Z4M 192 כפולות של 4
Z3 ‫≤ 44 הכול
Z3 88 כפולות של 2
Z3 176 כפולות של 4
מותאמת לצריכת מעבד גבוהה (compute-optimized)
H4D 192 כפולות של 4
H3 88 כפולות של 4
C2 ‫4, 8, 16, 30 הכול
C2 60 כפולות של 2
מותאמת לצריכת זיכרון גבוהה (memory-optimized)
M4N ‫16, 28, 32, 56 הכול
M4N ‫64, 112 כפולות של 2
M4N 224 כפולות של 4
M4 16, 28, 32, 56 הכול
M4 ‫64, 112 כפולות של 2
M4 224 כפולות של 4
M3 128 כפולות של 2
M3 32, 64 הכול
M2 208 כפולות של 4
M2 416 כפולות של 8
M1 40 הכול
M1 80, 96 כפולות של 2
M1 160 כפולות של 4
אופטימיזציה למעבד גרפי
A4 224 כפולות של 2
A3 26, 52, 104, 208, 224 כפולות של 2
A2 ‫≤ 48 הכול
A2 96 כפולות של 2
G2 ≤ 48 הכול
G2 96 כפולות של 2
G4 כל סוגי המכונות כפולות של 2
‫* השם של רוב סוגי המכונות כולל את מספר ה-vCPU. עם זאת, בסוגי מכונות שמותאמים למאיצים, מלבד G2 ו-G4, שם סוג המכונה מכיל את מספר ה-GPU שהוגדר מראש. כדי לראות את מספר ליבות ה-vCPU בסוגי המכונות שעברו אופטימיזציה לשימוש במאיצים, אפשר לעיין במסמכי התיעוד בנושא משפחת מכונות שעברו אופטימיזציה לשימוש במאיצים.

התאמה אישית של מספר ליבות המעבד (CPU) שגלויות במהלך יצירת VM

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

בדוגמה הבאה מוצג אופן היצירה של מכונת SQL Server וירטואלית עם מספר מופחת של ליבות CPU גלויות.

המסוף

כדי להתאים אישית את מספר ליבות ה-CPU שמוצגות כשיוצרים מכונה וירטואלית:

  • בקטע Machine configuration > Advanced configurations > Visible core count, בוחרים את מספר הליבות הגלויות.

gcloud

כדי ליצור מכונה וירטואלית של SQL Server עם מספר מופחת של ליבות מעבד גלויות, משתמשים בפקודה הבאה של gcloud compute instances create:

gcloud compute instances create VM_NAME \
    --image-project=windows-sql-cloud \
    --image-family=sql-ent-2019-win-2019 \
    --machine-type=MACHINE_TYPE \
    --visible-core-count=VISIBLE_CORE_COUNT \
    --zone=ZONE

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

  • ‫VM_NAME: שם ה-VM.

  • ‫MACHINE_TYPE: סוג מכונה נתמך, לדוגמה, c2-standard-60.

  • ‫VISIBLE_CORE_COUNT: מספר ליבות המעבד (CPU) שגלויות. לדוגמה, כשמשתמשים בסוג המכונה c2-standard-60, אם מגדירים את הערך 20 ומספר הליבות לכל שרשור הוא 2, 40 מתוך 60 המעבדים גלויים.

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

REST

כדי ליצור מכונה וירטואלית של SQL Server עם מספר מופחת של ליבות מעבד גלויות, משתמשים בinstances.insert שיטה הבאה:

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

{
  "name": "VM_NAME",
  ...
  "advanced_machine_features": {
    ...
    "visibleCoreCount": "VISIBLE_CORE_COUNT"
  },
  ...
}

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

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

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

  • ‫VM_NAME: שם המכונה הווירטואלית.

  • ‫VISIBLE_CORE_COUNT: מספר ליבות ה-CPU שגלויות. לדוגמה, כשמשתמשים בסוג המכונה c2-standard-60, אם מגדירים את הערך 20 ומספר הליכי המשנה לכל ליבה הוא 2, 40 מתוך 60 המעבדים גלויים.

התאמה אישית של מספר ליבות ה-CPU שגלויות בקבוצה של מכונות וירטואליות באמצעות תבנית של הגדרות מכונה

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

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

המסוף

כדי להתאים אישית את מספר ליבות ה-CPU שמוצגות כשיוצרים תבנית של הגדרות מכונה, מבצעים את הפעולות הבאות:

  • בקטע Machine configuration > Advanced configurations > Visible core count, בוחרים את מספר הליבות הגלויות.

gcloud

  1. כדי ליצור תבנית של הגדרות מכונה עבור מכונות וירטואליות של SQL Server, שלכל אחת מהן יש מספר מופחת של ליבות CPU גלויות, משתמשים gcloud compute instance-templates createבפקודה הבאה:

    gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
       --image-project=windows-sql-cloud \
       --image-family=sql-ent-2019-win-2019 \
       --machine-type=MACHINE_TYPE \
       --visible-core-count=VISIBLE_CORE_COUNT \
       --zone=ZONE
    

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

    • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.

    • ‫MACHINE_TYPE: סוג מכונה נתמך, לדוגמה c2-standard-60.

    • ‫VISIBLE_CORE_COUNT: מספר ליבות ה-CPU שגלויות. לדוגמה, כשמשתמשים בסוג המכונה c2-standard-60, אם מגדירים את הערך 20 ומספר הליכי המשנה לכל ליבה הוא 2, 40 מתוך 60 המעבדים גלויים.

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

  2. כדי ליצור את מכונות ה-VM של SQL Server, שלכל אחת מהן יש מספר מופחת של ליבות CPU גלויות, משתמשים gcloud compute instances createבפקודה הבאה:

    gcloud compute instances create INSTANCE_NAMES \
       --source-instance-template=INSTANCE_TEMPLATE_NAME
    

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

    • ‫INSTANCE_NAMES: השמות של המכונות הווירטואליות שרוצים ליצור מהתבנית של הגדרות המכונה, מופרדים ברווחים

    • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה שממנה רוצים ליצור את המכונות הווירטואליות

REST

  1. כדי ליצור תבנית של הגדרות מכונה למכונות וירטואליות של SQL Server, שכל אחת מהן כוללת מספר מופחת של ליבות מעבד (CPU) גלויות, משתמשים בשיטה של instanceTemplates.insert:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
    
    {
     "name": "INSTANCE_TEMPLATE_NAME",
     ...
     "advanced_machine_features": {
       ...
       "visible_core_count": "VISIBLE_CORE_COUNT"
     },
     ...
    }
    

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

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

    • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה.

    • ‫VISIBLE_CORE_COUNT: מספר ליבות ה-CPU שגלויות. לדוגמה, כשמשתמשים בסוג המכונה c2-standard-60, אם מגדירים את הערך 20 ומספר השרשורים לכל ליבה הוא 2, 40 מתוך 60 המעבדים גלויים.

  2. כדי ליצור את המכונות הווירטואליות של SQL Server, כל אחת עם מספר מופחת של ליבות CPU גלויות, משתמשים בinstances.insertהשיטה הבאה:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_NAME
    
    {
     "name": "VM_NAME",
     ...
    }
    

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

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

    • ‫ZONE: האזור שבו יוצרים את המכונה הווירטואלית

    • ‫INSTANCE_TEMPLATE_NAME: השם של התבנית של הגדרות המכונה שממנה רוצים ליצור את המכונות הווירטואליות

    • ‫VM_NAME: השם של המכונה הווירטואלית שרוצים ליצור מהתבנית של הגדרות המכונה

התאמה אישית של מספר ליבות המעבד שמוצגות

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

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

המסוף

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

  1. עוצרים את ה-VM.

  2. בקטע Machine configuration > Advanced configurations > Visible core count, בוחרים את מספר הליבות הגלויות.

  3. מפעילים מחדש את ה-VM.

gcloud

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

  1. מייצאים את המאפיינים של ה-VM הקיים לקובץ באמצעות הפקודה gcloud compute instances export.

  2. בקובץ שמכיל את המאפיינים שיוצאו, משנים או מוסיפים את הערך של:

    advancedMachineFeatures:
     visibleCoreCount: VISIBLE_CORE_COUNT
    
  3. מעדכנים את המאפיינים של ה-VM באמצעות הפקודה gcloud compute instances update-from-file עם --most-disruptive-allowed-action=RESTART.

REST

כדי לעדכן את מספר ליבות ה-CPU הגלויות של המכונה הווירטואלית, משתמשים ב-method של instances.update:

PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART

{
  ...
  "advanced_machine_features": {
    ...
    "visible_core_count": "VISIBLE_CORE_COUNT"
  },
  ...
}

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

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

  • ‫ZONE: האזור שמכיל את המכונה הווירטואלית

  • ‫VM_NAME: שם המכונה הווירטואלית שממנה רוצים לייצא את המאפיינים

  • ‫VISIBLE_CORE_COUNT: מספר ליבות ה-CPU שגלויות

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