NUMA قسمت دوم

ادامه NUMA

رایانش ابری

مجازی سازی

نکته ای که در این مورد باید بدانید این است که NUMA در ورژن 4 قابلیت Hot Add برای CPU نداشت زیرا وقتی این اتفاق صورت می گیرد متاسفانه Node های NUMA تغییر پیدا می کنند و در ورژن 4 نمی توانستند این موضوع را مدیریت کنند.

Hot Add مموری نیز در ورژن 5.0 از بستر مجازی سازی کار نمی کرد و تنها در ورژن مجازی سازی 6.0 قابلیت بهره برداری را دارا می باشد.

22222NUMA چرا اهمیت دارد ؟

پیاده سازی هر تکنولوژی در بستر مجازی باعث ایجاد هزنیه های Performance ای می شود.برای سیستم NUMA اگر اطلاع از وضعیت کارکرد این تکنولوژی نداشته باشید باعث می شود بر روی تراکنش های ماشین مجازی شما Latency یا تاخیر خواهد افتاد ، زیرا ماشین مجازی سعی خواهد کرد تا مموری خود را از مموری های Remote استفاده کند(از مموری سایر Node های NUMA استفاده می کند) که این مطلب باعث ایجاد تاخیر در تراکنش ها می شود.

آیا مقدار این تاخیر یا Latency نگران کننده است ؟

بله، زمانی که می خواهید بر روی ماشین مجازی از نرم افزاری های Multi-Thread استفاده کنید این تاخیر ها چند برابر می شود و این مطلب باعث می شود که سازمان ها تنوانند از مجازی سازی Performance مناسبی دریافت کنند.

پس نکته غلطی که در ذهن بسیاری از کسانی که با مجازی سازی آشنایی ندارند شکل گرفته است به شرح زیر می باشد :

“استفاده کردن از Virtual Socket و Virtual CPU تاثیری بر کارایی و سرعت ماشین های مجازی نسبت به حالت فیزیکی ندارد ، تنها اشتباه تنظیم کردن بستر باعث کاهش سرعت می شود.”

ملزومات Performace

برای اینکه بتوانید بیشترین بهره وری و سرعت را داشته باشید باید در نظر بگیرید که تعداد نود های NUMA سرور فیزیکی چه مقدار می باشد و مقدار اختصاص یافته رم و CPU را به صورت درست انتخاب کنیم. اگر به تعداد و اندازه نود های NUMA توجه نکنیم باعث استفاده از Remote Memory می شود که در نهایت باعث ایجاد Latency بسیار زیاد خواهد شد.

 

Best Practice برای استفاده از NUMA

  • اندازه NUMA بر روی سرور خود را بدانید.از همه مهمتر زمانی که می خواهید سرور خریداری کنید از سایز NUMA حتما آگاه باشید زیرا این مطلب باعث می شود که تا بدانید چه مقدار رم و CPU برای سرور خود تهیه کنید.
  • اگر از CPU های نسل جدید استفاده می کنید محدودیت های بسیار کمتری برای استفاده از NUMA خواهید داشت،
    اما اگر از CPU های نسل های قدیم تری استفاده می کنید مانند Dual-Core ها و Dual-Socket ها باید بسیار دقیق تر کار کنید زیرا در حال حاضر اغلب ماشین های مجازی نیاز به بیشتر از 4 عدد CPU برای پیاده سازی دارند.
  • در استفاده از رم نیز اگر بر روی هر سرور مقدار کمی رم دارید ولی تعداد سرور هایتان زیاد است باز هم دچار مشکل خواهید شد ، زیرا در حال حاضر نرم افزار ها به مقدار زیادی رم برای پیاده سازی احتیاج دارند.پس حالت بهتر داشتن رم های زیاد بر روی سرور ها و در صورت امکان تعداد سرور های زیاد برای قابلیت Fail دادن است.
  • ماشین های مجازی خود را بهینه تنظیم کنید به عنوان مثال در سیستمی که دارای 6 Core می باشد می توانید ماشین های مجازی خود را طوری پیاده سازی کنید که مقدار CPU های آن کسر صحیحی از CPU باشد یعنی 2 یا 3 یا 6Core باشد . در این مورد تنظیم کردن CPU ماشین مجازی بر روی 4 کار اشتباهی می باشد.
  • زمانی که Hyper Threading را بر روی سرور خود روشن می کنید باید به ESXi و یا ماشین مجازی و یا هر دوی آنها بفهمانید که از این قابلیت استفاده کنند و به ماشین های مجازی بگویید که CPU ها را در کنار هم قرار دهند که در قسمت سوم از این مطلب آموزشی این مورد را آموزش خواهم داد.

 

 

 

نظرات