התאמה אישית של מספר ליבות המעבד (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) הגלויות אם מתקיימים שני התנאים הבאים:
אתם מפעילים תוכנה, כמו Windows Server או SQL Server, שמוענק לה רישיון על סמך מספר המעבדים הווירטואליים הזמינים.
אתם משתמשים במכונות עם קונפיגורציה מוגדרת (predefined), שבהן אי אפשר לשנות את מספר ה-vCPU או את כמות ה-RAM.
לפני שמתאימים אישית את מספר יחידות ה-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 |
התאמה אישית של מספר ליבות המעבד (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
כדי ליצור תבנית של הגדרות מכונה עבור מכונות וירטואליות של 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: האזור שבו יוצרים את המכונות הווירטואליות.
כדי ליצור את מכונות ה-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
כדי ליצור תבנית של הגדרות מכונה למכונות וירטואליות של 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 המעבדים גלויים.
כדי ליצור את המכונות הווירטואליות של 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 שגלויות בקבוצה של מכונות וירטואליות באמצעות תבנית של הגדרות מכונה, אתם צריכים ליצור תבנית חדשה של הגדרות מכונה ואז ליצור מכונות וירטואליות חדשות מהתבנית הזו. מידע נוסף על תבניות מכונה זמין במאמר תבניות מכונה.
המסוף
כדי לשנות את מספר ליבות המעבד שמוצגות במכונה וירטואלית קיימת:
עוצרים את ה-VM.
בקטע Machine configuration > Advanced configurations > Visible core count, בוחרים את מספר הליבות הגלויות.
מפעילים מחדש את ה-VM.
gcloud
כדי לעדכן את הערך של מספר ליבות המעבד (CPU) הגלויות במכונה וירטואלית קיימת, פועלים לפי השלבים הבאים. מידע נוסף זמין במאמר עדכון מאפייני מכונה.
מייצאים את המאפיינים של ה-VM הקיים לקובץ באמצעות הפקודה
gcloud compute instances export.בקובץ שמכיל את המאפיינים שיוצאו, משנים או מוסיפים את הערך של:
advancedMachineFeatures: visibleCoreCount: VISIBLE_CORE_COUNT
מעדכנים את המאפיינים של ה-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 שגלויות