0 امتیاز
1.1k بازدید
در مجازی سازی توسط مدیر کل (15.6k امتیاز)
ویرایش شده توسط

مقدمه

مدت زمان بسیار زیادی هستش که هر سایتی به یه نحوی NUMA رو آموزش میده و میگه که ماشین مجازیچجوری باید درست شه  و CPU های آنها چجوری باید اختصاص پیدا کنه.

همه بر این اعتقاد هستند که اگر مدلی که اونها میگن ، CPU را اختصاص ندهید نه تنها باعث کندی ماشین مجازی میشید بلکه در نهایت باعث میشه برید جهنم !!!

تو این مطلب آموزشی می خوام برای اولین و آخرین بار این موضوع رو به صورت کامل با هم بررسی کنیم و پروندش رو ببندیم بزاریم کنار( البته تا زمانی که VMware دوباره تغییری روش نده که بعید میدونم بیشتر از ۵ ۶ ماه باشه)

اول از همه NUMA رو ببینیم چیه .

این NUMA چیست ؟

NUMA یا همون Non-Uniform Memory Access مدلی از طراحی سخت افزاره که در سرور های چند CPU استفاده میشه.

کلا حرفش اینه :

استفاده از مموری کاملا بستگی به مکان قرار گرفتن مموری نسبت به CPU داره .

این عکس رو ببنید:

191802

NUMA

اگر قرار باشه CPU بالایی توعکس از رم استفاده کنه، سخت افزار بهش میگه بیا از رم های نزدیک خودت استفاده کن.

پس CPU بالایی تو عکس از رم های بالای خودش استفاده می کنه و سراغ رم های پایین نمیاد.

برای همین میگن پس رم های نزدیک هر CPU میشه Cache local اون CPU . نهایتا باعث میشه سرعت ارتباط رم با پروسس ها خیلی افزایش پیدا کنه.

قبلا اینطوری نبود . از یک تکنولوژی استفاده می کردند به نام SMP یا Symmetric Multi Processing ، تو اون کل رم ها ، میومدن وسط دو تا CPU به صورت کامل Share می شدن و جفت CPU ها ازشون استفاده می کردند.

فکر کنم شکل پایین حق مطلب رو ادا میکنه.

numa-and-scaleup-2-728

حالا بریم ببینیم وقتی که داریم از NUMA استفاده می کنیم VMware چی میگه؟ چجوری استفاده کنیم که سرعتمون روی ماکزیمم باشه؟

نظر VMWARE درباره NUMA

طبق آخرین داکیومنت VMware در مورد NUMA که برای June سال ۲۰۱۸ هستش، ساختار NUMA رو باید طبق روشی که می خوایم بگیم پیاده سازی کنید.

البته اگر دوست دارید میتونید از این لینک برید و مقاله یک بزرگوار دیگه رو هم راجع تغییرات ۶٫۵ آپدیت ۱ به بعد بخونید :

http://frankdenneman.nl/2016/12/12/decoupling-cores-per-socket-virtual-numa-topology-vsphere-6-5

راستی قبلش بگم که vNuma چیه ؟

اون چیزی که بالا راجع بهش صحبت کردیم NUMA نیست در واقع pNUMA هستش . ما یه چیزی هم داریم به نام vNUMA.

vNUMA زمانی درست میشه  که بیشتر از ۸ عدد CPU به یک ماشین مجازی میدیم و ESXi سعی می کنه همانطور که pNUMA داره باعث افزایش سرعت میشه اون قابلیت رو دست ماشین مجازی هم  برسونه .

شروع می کنیم

اولین نکته ای که باید در نظر بگیرید اینه که کلا هنگام اختصاص دادن vNuma به ماشین مجازی ، ESXi به مموری شما نگاه نمیکنه.

یعنی خودتون باید دستی حواستون باشه که چقدر مموری دارید به ماشین مجازی اختصاص میدید.

اگر نحوه محاسبه مموری رو میدونید که بگذرید اگر نه این خط های سبز رنگ زیر رو بخونید.

فرض کنید یه سرور دارید که دو تا CPU داره که هر کدوم ۱۰ تا Core دارند سرور جمعا ۲۵۶ گیگ رم داره که تقسیم بر دو کنیم ( با فرض اینکه رم های CPU را به تعداد مساوی نصب کردید) هر CPU مقدار ۱۲۸ گیگ رم داره.

پس هر ۱۰ Core و ۱۲۸ گیگ رم  یک pNuma Node میشه.

1918021

NUMA

یعنی اگر ماشینی داشته باشیم با ۸ تا CPU و ۱۰۰ گیگ رم، برای این ماشین یک vNuma Node درست می کنه که چون از pNUMA Node کوچکتره در داخل همون قرار می گیره.

درست مثل VM1 تو شکل زیر.

xpds13-gnome-outreach-destination-xen-elena-ufimtseva-6-638

vNUMA NUMA

حالا که چی ؟

یک نگاه به عکس زیر بندازید :

Untitled-5

این صفحه مشکل تمام ادمین های مجازی سازی هستش. که تعداد Core ها رو یک بدن یا تعداد Socket ها رو یک بدن یا کلا تعداد همه رو متغیر بدن.

من سه سناریو رو براتون بررسی می کنم که خودتون متوجه شید کدومش بهتره :

صورت مسئله سناریو

سرور فیزیکی ما ۲ عدد CPU داره که هر کدوم ۸ Core دارن و ۱۲۸ گیگ رم داره.

می خواهیم یک ماشین مجازی با Resource بالا بسازیم ، نظر شما در مورد مقدار Ram و CPU آن چیست ؟

راه حل :

اول میریم pNuma Node رو محاسبه می کنیم که سایز اون میشه : 

  • ۸ CPU
  • ۶۴ گیگ رم

مدل های درست کردن ماشین : 

  • تعداد رم و CPU را کمتر از یک pNuma Node نگه داریم  یعنی ماکزیمم ۸ تا CPU و ۶۴ گیگ رم که برای این ماشین یک vNuma درست می کند که در داخل pNuma ما قرار میگیرد.
  • مقدار CPU را زیر ۸ Core نگه داریم ولی مقدار رم را ۱۰۰ گیگ بگیریم : که چون ESXi برای محاسبه NUMA به رم نگاه نمیکنه باز هم برای این ماشین یک vNUMA درست می کنه اما چون رم اون بالاتر از رم یک pNUMA Node هستش مجبور میشه بین دو تا pNuma Node این ماشین رو Share کنه .در مثل VM2 تو شکل زیر : 

xpds13-gnome-outreach-destination-xen-elena-ufimtseva-6-638

vNUMA pNUMA

  • مدل سوم که بهینه ترین می باشد مدلی هستش که تعداد رم و CPU رو بیشتر از یک pNuma Node بدیم . یعنی به ماشین مجازی ۱۲ Core و ۹۶ گیگ رم بدیم. برای این کانفیگ باید به ماشین بگیم از دو CPU Socket استفاده کنه یعنی  : 
    • ۲ سوکت ۶ Core بهش بدیم
    • که در این حالت از هر طرف ۴۸ گیگ رم بر میداره.

عکس زیر رو ببینید.

image73

برای اینکه همیشه بهترین مدل CPU را اختصاص بدیم نکات زیر را همیشه در نظر داشته باشید :

  • تنظیمات پیشرفته NUMA رو روی ESXi رو تغییر ندهید.
  • همیشه تعداد CPU را محدود به یک Socket و تعداد رم را محدود رم یک pNUMA Node اختصاص بدید در غیر اینصورت تعداد CPU را به صورت موازی پخش کنید ( حواستون باشه که مقدار رم برای محاسبه vNuma Node در گیر نیست باید با تعداد CPU تعداد vNuma Node رو مشخص کنید)
  • به هیچ وجه زمانی که تعداد vCPU های شما بیشتر از یک سوکت میشه تعداد vCPU ها را عدد فرد نزنید. یعنی هیچ وقت به ماشین ۷ یا ۹ تا vCPU ندید.
  • کلا CPU Hot Add رو روشن نکنید چون با روشن کردنش vNUMA به صورت کامل Disable میشه.
  • هیچ وقت ماشینی با تعداد CPU بیشتر از تعداد CPU هاستتون درست نکیند.

در آخر برای اینکه مطلب براتون کاملِ کامل جا بیافته مثال زیر رو ببنید.

مثال آخر

جدول زیر نحوه درست اختصاص CPU به ماشین مجازی در سروری با مشخصات زیر رو نشون میده :

  • دو عدد CPU که هر کدوم ۱۰ Core دارند.

ی2x10-vNUMA-NoMEM-1024x608منبع : 

http://aminpourmirza.com/numa-vnuma

1 پاسخ

0 امتیاز
توسط
کار زشتی هست که مطالب رو بدون ذکر منبع منتشر میکنید!
توسط مدیر کل (15.6k امتیاز)
تشکر از یاد آوری شما
این سایت معمولا بصورت محل ذخیره شخصی و ارجاع به موارد کم یاب که با سرچ به سختی پیدا میشوند بنا نهاده شده . ولی با این حال با تشکر از یاد آوری شما
مبع و لینک مطلب در ادامه و انتهای موضوع افزوده شد
FOXNET محلی برای دانستن واشتراک مطالبی که نمی دانستید

سوالات مشابه

0 امتیاز
1 پاسخ 288 بازدید
سوال شده می 6, 2021 در مجازی سازی توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 362 بازدید
سوال شده دسامبر 26, 2019 در مجازی سازی توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 88 بازدید
سوال شده نوامبر 1, 2022 در مجازی سازی توسط alfonso_3012 دانش آموز (40 امتیاز)
0 امتیاز
1 پاسخ 372 بازدید
سوال شده مارس 29, 2021 در مجازی سازی توسط admin مدیر کل (15.6k امتیاز)
0 امتیاز
0 پاسخ 397 بازدید
سوال شده ژوئیه 7, 2018 در مجازی سازی توسط admin مدیر کل (15.6k امتیاز)
...