ניהול דינמי של משאבים מהדור הבא

מכונות וירטואליות מסוג N4A שמבוססות על מעבדי Google Axion, מכונות וירטואליות מסוג N4D שמבוססות על מעבדי AMD EPYC Turin מהדור החמישי ומכונות וירטואליות מסוג N4 שמבוססות על מעבדי Intel Xeon מהדור החמישי משתמשות ב-Titanium. בנוסף, סדרות המכונות האלה משתמשות בניהול דינמי של משאבים מהדור הבא כדי לשפר את החיסכון בעלויות. הן עושות זאת באמצעות שימוש יעיל יותר במשאבים הפיזיים שזמינים במחשבים המארחים, וגם באמצעות מתזמן CPU מותאם אישית ומיגרציה פעילה שמודעת לביצועים, כדי לאזן בין צורכי הביצועים של עומס העבודה לבין המשאבים הזמינים. אלה אותן טכנולוגיות שמשמשות את שירותי חיפוש Google,‏ Google Ads,‏ מפות Google ו-YouTube להפעלה יעילה של עומסי עבודה שרגישים לזמן האחזור.

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

איך פועל ניהול משאבים דינמי

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

ניהול דינמי של משאבים מאפשר ל-Compute Engine להשתמש טוב יותר במעבדים הפיזיים הזמינים. המערכת מתזמנת מכונות וירטואליות לשרתים על סמך הביקוש למשאבים, ומתזמנת את ה-threads של ה-vCPU למעבדים הפיזיים כך שזמן ההמתנה יהיה מינימלי. ברוב המקרים, אנחנו יכולים לעשות את זה בצורה חלקה, כך שתוכלו להפעיל מכונות וירטואליות בצורה יעילה יותר בפחות שרתים. Cloud de Confiance by S3NS

רכיבים של ניהול דינמי של משאבים

‫Compute Engine משתמש בטכנולוגיות הבאות לניהול דינמי של משאבים:

שרתים פיזיים גדולים ויעילים יותר

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

מיקום חכם של מכונות וירטואליות

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

מיגרציה פעילה עם התחשבות בביצועים

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

מתזמן המשימות ביחידת העיבוד המרכזית (CPU) של ה-hypervisor

מתזמן המעבד של ההיפר-ויז'ר ממפה באופן דינמי את המעבד הווירטואלי והזיכרון למעבד הפיזי ולזיכרון של השרת המארח לפי דרישה. הניהול הדינמי הזה משפר את היעילות של מכונות וירטואליות מבחינת עלויות, כי הוא מאפשר שימוש טוב יותר במשאבים הפיזיים. שימוש יעיל במשאבים מאפשר ל-Compute Engine להריץ מכונות וירטואליות בצורה יעילה יותר בפחות שרתים, וכך לחסוך בעלויות למשתמשים. Cloud de Confiance by S3NS

ניהול דינמי של משאבים מהדור הראשון

סדרת מכונות ה-VM‏ E2 הייתה הראשונה שהציעה ניהול דינמי של משאבים באמצעות מכשיר זיכרון וירטואלי מסוג virtio.

מכשיר זיכרון וירטואלי מסוג Virtio עם מכונות וירטואליות מסוג E2

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

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

אימות התקנת הדרייבר

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

Linux

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

sudo modinfo virtio_balloon > /dev/null && echo Balloon driver is \
installed || echo Balloon driver is not installed; sudo lsmod | grep \
virtio_balloon > /dev/null && echo Balloon driver is loaded || echo \
Balloon driver is not loaded

בליבות Linux מגרסה 5.2 ומטה, מערכת הזיכרון של Linux מונעת לפעמים הקצאות גדולות בטעות, כשהמכשיר הווירטואלי balloon קיים. בפועל, הבעיה הזו נדירה, אבל מומלץ לשנות את ההגדרה של הזיכרון הווירטואלי overcommit_memory ל-1 כדי למנוע את הבעיה. השינוי הזה כבר מבוצע כברירת מחדל בכל התמונות שסופקו על ידי Google ופורסמו מאז 9 בפברואר 2021.

כדי לתקן את ההגדרה, משתמשים בפקודה הבאה כדי לשנות את הערך מ-0 ל-1:

sudo /sbin/sysctl -w vm.overcommit_memory=1

כדי שהשינוי הזה יישמר גם אחרי הפעלה מחדש, מוסיפים את השורה הבאה לקובץ /etc/sysctl.conf:

vm.overcommit_memory=1

Windows

תמונות Windows ב-Compute Engine כוללות את מכשיר ה-balloon של virtio. אבל תמונות Windows מותאמות אישית לא. כדי לוודא שמנהל ההתקן מותקן בקובץ האימג' של Windows, מריצים את הפקודה:

googet verify google-compute-engine-driver-balloon

השבתת מכשיר הזיכרון הווירטואלי

השימוש במכשיר זיכרון balloon של virtio מאפשר ל-Compute Engine לנצל את משאבי הזיכרון בצורה יעילה יותר, וכך Cloud de Confiance by S3NS יכולה להציע מכונות וירטואליות מסוג E2 במחירים נמוכים יותר. אפשר להשבית את מנהל ההתקן של מכשיר הזיכרון הווירטואלי כדי להפסיק את השימוש בו. אחרי השבתת מכשיר הזיכרון הווירטואלי של virtio, תמשיכו לקבל המלצות להתאמת גודל, אבל יכול להיות שהן לא יהיו מדויקות.

Linux

כדי להשבית את המכשיר ב-Linux, מריצים את הפקודה הבאה:

sudo rmmod virtio_balloon

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

Windows

כדי להשבית את המכשיר ב-Windows, מריצים את הפקודה הבאה:

googet -noconfirm remove google-compute-engine-driver-balloon

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

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