آشنایی با تکنولوژی NUMA – بخش اول

آشنایی با تکنولوژی NUMA – بخش اول

تکنولوژی NUMA

سلام بر شما دوستان عزیزم که میخواهید روز به روز هوش IT خودتون را بالا ببرید. خب خواستم مقاله‌ای پیرامون NUMA چیست؟ براتون بنویسم، دیدم این مطلب برا اکثر دوستان گیج کننده هست و گنگ.

این شد که مطلب تکنولوژی NUMA را برای شما دوستانم در چند بخش توضیح خواهم داد تا یک عقبه از مطالب مرتبط با تکنولوژی NUMA اطلاع داشته باشید و بعد تازه بفهمیم تکنولوژی NUMA از کجا متولد شده است؟ تا در آخر پی به این ببریم نحوه کارکرد NUMA در ESXi

و یا هر هایپروایزر دیگر چگونه است؟ پس خواهش من از شما دوستان این است که مطلب تکنولوژی NUMA و نحوه کارکرد NUMA را از ابتدا دنبال کنید.

برای مطلب تکنولوژی NUMA به طور معمول موراد زیر در گوگل سرچ زده می‌شود؟

  • NUMA چیست؟
  • نحوه کارکرد NUMA در ESXi
  • تکنولوژی NUMA
  • آشنایی با SMP و NUMA

مروری بر تاریخچه CPU تا عصر تاختن SMP

خیلی خلاصه بخوام براتون بگم CPUها جوری ابتدا طراحی شده بودند که اطلاعات باید صف به صف وارد میشدند تا به نوبت پردازش روی آنها توسط CPU انجام و سپس میرفتند دنبال کارشون(واقعاً مصیبتی بودا)

خب دیدند ای بابا! اینجوری نمیشه! آمدند و تکنولوژی چند تا CPU (از ۲ تا ۸ عدد CPU روی مادربرد) را مطرح کردند تا پاسخگویی به این صف بیشتر از قبل بشه تا سرعت کار بیشتر بشه. ابتدا به نظر خوب میومد اما اگر یک مجموعه پردازشی(دقت کنید یک مجموعه نه یک پردازش) وارد میشد برای پردازش توسط CPU ها همزمان فقط یک CPU میتونست کار را انجام بده و بقیه بیکار میومندند که به ابن معماری پردازش غیرمتقارن یا همون Asymmetric Processing میگفتن پس …

پس این شد که برای حل این مشکل، SMP (خوب به یاد بسپاریدش ) یا همون Symmetric Multiprocessing سر و کلش پیدا شد و که به چند پردازشی متقارن معروف شد و تونست کارکرد CPU‌ را زیر و رو کنه و یک تحولی در معماری و کارکرد CPU ایجاد کنه.

مروری بر تاریخچه CPU تا عصر تاختن SMP

مروری بر تاریخچه CPU تا عصر تاختن SMP

نحوه کارکرد SMP

معماری SMP طوری طراحی شده بود که سرعت پردازش و سیستم را بالا برده بود چراکه برنامه‌ها برای پردازش اطلاعاتشون توسط CPU سیستم، قادر به استفاده همزمان از چند CPU براشون مهیا شده بود و پردازش اطلاعات یک برنامه بصورت همزمان بین چندین CPU تقسیم میشد و هیچ کدام از CPUها بیکار یا Idle نمیموند. به نوعی SMP عدالت و توارن را بین CPUها به وجود آورده بود.

بهتره بدونید با معرفی شدن Core و یا همون هسته برای CPU، کارکرد SMP به این نحو می‌باشد که هر Core را به عنوان یک CPU تلقی میکند اما…

اما SMP مشکلات زیر را هنوز داشت و تکنولوژی ناقصی بود:

  • همه نرم‌افزارها نمیتونستن از تکنولوژی Multiprocessing یا همون تکنولوژی SMP استفاده کنند.
  • SMP فقط میتونست تا ۱۶ عدد CPUرا در یک سیستم پشتیبانی کند.
  • SMP در ارتباط با حافظه RAM تاخیر زیادی داشت و در حجم بالا پاسخگوی نباز کاربر به خوبی نبود.
نحوه کارکرد SMP

نحوه کارکرد SMP

آیا SMP به کار سرورها می‌خورد؟

یک کلام خیر! فقط بدرد PCها میخورد. بیایید باهم یک بررسی جزیی نماییم:

منطق ما میگه در یک PC حافظه RAM سریع‌ترین جز سخت‌افزار یک PC هست اما در سرور این طور نیست بلکه CPU این نقش مهم را ایفا میکند و آن هم به تنهایی کافی نیست بلکه CPU و RAM باهم نقش مکمل را در سرور بازی میکنند!

به خاطر همین دلیل SMP نیاز سرورها را در سرعت تامین نمیکرد و برای این کار تکنولوژی NUMA سر از خاک بیرون آورد تا نقشی اساسی در زمینه کارکرد CPU و حافظه RAM را در سرورها بازی کند!

بیایید چرایی تولد تکنولوژی NUMA را باهم به صورت جزیی‌تر بررسی نماییم. دوستان حتی وجود چندین CPU و هسته های آن در سرور به تنهایی باعث افزایش سرعت نمی‌شود و نکته اصلی این است که در این حالت دراختیار داشتن چندین CPU، دسترسی به حافظه RAM تنها و تنها(دقت کنید) می تواند از طریق یک CPU در لحظه انجام شود.

یعنی بقیه ‌CPUها که هنوز درگیر پردازش نشده‌اند، علاوه براینکه باید منتظر دریافت داده ها از RAM بمانند، همچنین باید منتظر این باشند تا کار آن CPU درگیر کار با RAM تمام شود تا آنها بتوانند بعد از آن از RAM سرور استفاده نمایند.

در نتیجه ما باز هم یک صف انتظار طولانی را خواهیم داشت(وای دوباره الافی و معطلی!( که باعث کندی هر چه بیشتر سرور می شود، درواقع با افزایش سرعت clock و تعداد CPU ها، میزان تاخیر پاسخدهی حافظه RAM کاهش می‌یابد لذا برای حل این موضوع سازندگان سخت افزار کش های L3 را طراحی کرده اند اما راه حل بهتر استفاده از تکنولوژی NUMA می‌باشد.

شما در شکل زیر تفاوت معماری NUMA و SMP را مشاهده می‌کنید که از سمت چپ در معماری SMP شاهد این هستید که هسته‌ها و Core‌های CPU در بخش به صورت اشتراکی از Cache ، Memory Controller و DRAM یا همان حافظه رم استفاده می‌نمایند.

که شدیداً در حجم بالای کاری سرعت خوبی نخواهید داشت اما در سمت راست در معماری NUMA شاهد این هستیم در بخش هر Core یا CPU به صورت مجزا بخش‌های ، و خود را دارد که طبیعتاً سرعتی بی‌نظیر را در کارکرد به وجود خواهد آورد و این همان چیزی است که سرورها به آن نیازدارند تا بهترین عملکرد و کارایی را به کابران ارائه دهند.

معماری NUMA

معماری NUMA

در مقاله بعدی تکنولوژی NUMA و کارکرد آن را باهم بررسی خواهیم کرد.

نتیجه‌گیری  مفهوم NUMA :

در این مقاله باهم بنابه دلیل مبهم بودن مفهوم NUMA، تاریخچه سخت‌افزار CPU را باهم بررسی کردیم تا چگونگی تولد و چرایی پیدایش تکنولوژی NUMA را بفهمیم تا در مقالات آتی با فراغ بال بیشتر به مفهوم تکنولوژی NUMA و کاکرد آن بپردازیم. امیدوارم از این مقاله لذت برده باشید تا در مقاله بعدی تکنولوژی NUMA ما را همراهی نمایید.

دوستدار شما: علیرضا دهقانی

مشاهده مقالات من:

بخش ۱ 

بخش ۲

برچسب ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیاده سازی شده توسط هوش پلاس