הסבר על NUMA ועל Memory Weight
במאמר זה אני אסביר על NUMA ו Memory Weight בנוסף אסביר בקצרה גם על Dynamic Memory
NUMA
קיצור של Non-Uniform Memory Access הוא פיצ'ר של חלוקת זיכרון RAM לכל ליבה במעבד, כאשר אתם מגדירים למכונה וירטואלית כמות זיכרון א. אתם לא תגדירו יותר ממה שיש לשרת הפיזי ב. אתם תגדירו זכרון כך שיספיק לכם לעוד מכונות וירטואליות NUMA למעשה משפר את ביצוע הזכרון בכך שהוא מגדיר לכל ליבה כמות מסוימת של זיכרון ובכך מחלק את זה לבלוקים, כל בלוק הוא ליבה ובNUMA השם לכזה דבר הוא NUMA Block ובכך המעבד ניגש לבלוק הזיכרון שהוקצה לו מNUMA ובכך ניגש במהירות לזיכרון בגלל שהוא הופך אותו למקומי מאשר מכונה שלא הוגדר לה NUMA והיא אינה NUMA מקומית
רק גרסאות של Hyper-v 2012 ומעלה תומכות ב NUMA.
דוגמה, ברשותי מעבד 4 ליבות ו16GB שאני רוצה ל2 מכונות וירטואליות, מה החילוק שאני יעשה? 8GB למכונה 1 ו8GB למכונה 2 ואז בתוך מכונה 1 אני יבצע 8:4 בשביל לחלק לכל ליבה זיכרון כך שיהיה 2GB לכל ליבה, אבל מה, אתם לא קובעים זאת בעצמכם אלא מגדירים 8GB וזהו אבל חשוב לבצע את החישוב על מנת לדעת כמה מכונות יש ומה החישוב שכל ליבה במכונה הוירטואלית תקבל.
נוסף על כך אל תשכחו שהמכונה הפיזית צריכה גם היא זיכרון ולכן החישוב שלכם לא יצא כזה עגול…
Memory Weight
בHyper-v ניתן לבצע dynamic memory שזה אומר לתת למכונה הוירטואלית כמו זכרון גדולה ומתי שהיא רוצה היא תשתמש בכמות שהיא צריכה מבלי להיות מגובלת, הבעיה כמובן היא שאם כמה מכונות ישתמשו בכל כך הרבה אז זה יעבור את הכמות זכרון הפיזי שיש לשרת ובכך "יסתם" אז Hyper-v הוציאו את הפיצ'ר הזה על מנת לתת מענה של איזה מכונה וירטואלית קתבל עדיפות לזיכרון על פני מכונה אחרת , ככל שיהיה High כך העדיפות תעלה וככל שתסמנו Low כך העדיפות תיהיה נמוכה יותר.
כל הזכויות שמורות לטל בן שושן – Shushan.co.il