فناوری NUMA چیست؟ بررسی تأثیر NUMA بر عملکرد سرور HP

فناوری NUMA چیست؟ بررسی تأثیر NUMA بر عملکرد سرور HP

فناوری NUMA یکی از مهم‌ترین معماری‌های مدیریت حافظه در سرورهای چندپردازنده‌ای است که نقش قابل‌توجهی در افزایش کارایی پردازش، کاهش تأخیر دسترسی به حافظه و بهینه‌سازی منابع سخت‌افزاری دارد. در سرورهای سازمانی، به‌ویژه سرور HP که برای اجرای ماشین‌های مجازی، پایگاه‌های داده و پردازش‌های سنگین طراحی شده‌اند، نحوه ارتباط پردازنده با حافظه RAM می‌تواند مستقیماً بر عملکرد سیستم تأثیر بگذارد. فناوری NUMA با ایجاد ساختاری هوشمند برای دسترسی پردازنده‌ها به حافظه، تلاش می‌کند محدودیت‌های معماری سنتی را کاهش دهد.

در این مقاله، فناوری NUMA در سرور HP را بررسی می‌کنیم و با نحوه عملکرد، مزایا، محدودیت‌ها، تأثیر آن بر مجازی‌سازی و روش‌های بهینه‌سازی NUMA در سرورهای HPE آشنا می‌شویم.

فهرست مطالب

NUMA مخفف عبارت Non-Uniform Memory Access به معنای «دسترسی غیریکنواخت به حافظه» است. این فناوری نوعی معماری حافظه در سیستم‌های چندپردازنده‌ای محسوب می‌شود که در آن زمان دسترسی CPU به بخش‌های مختلف حافظه RAM یکسان نیست.

در معماری NUMA، هر پردازنده یا گروهی از هسته‌های پردازشی به مجموعه مشخصی از حافظه نزدیک‌تر هستند. این مجموعه به همراه پردازنده‌های مرتبط، یک NUMA Node را تشکیل می‌دهد.

زمانی که پردازنده به حافظه متعلق به Node خودش دسترسی پیدا می‌کند، معمولاً سرعت بالاتر و تأخیر کمتری تجربه می‌کند. اما اگر داده موردنیاز در حافظه Node دیگری قرار داشته باشد، پردازنده باید از مسیر ارتباطی بین پردازنده‌ها استفاده کند که می‌تواند باعث افزایش تأخیر شود.

این تفاوت در زمان دسترسی، اساس عملکرد فناوری NUMA است.

پیش از گسترش NUMA، بسیاری از سیستم‌های چندپردازنده‌ای از معماری UMA یا Uniform Memory Access استفاده می‌کردند. در UMA، پردازنده‌ها از نظر معماری زمان دسترسی یکسانی به حافظه مشترک دارند. در مقابل، NUMA حافظه را به نواحی نزدیک به پردازنده‌ها تقسیم می‌کند.

ویژگیمعماری UMAمعماری NUMA
نحوه دسترسی به RAMیکنواختوابسته به محل حافظه
تأخیر دسترسیتقریباً یکسانمتفاوت برای Local و Remote
مقیاس‌پذیریمحدودتر در سیستم‌های بزرگمناسب‌تر برای سیستم‌های چندپردازنده‌ای
ارتباط CPU و RAMساختار حافظه مشترکحافظه محلی برای هر Node
مدیریت منابعساده‌ترنیازمند زمان‌بندی آگاه از NUMA
کاربردسیستم‌های ساده‌ترسرورهای سازمانی و پردازش‌های سنگین

نکته مهم این است که NUMA همیشه به معنای عملکرد بهتر در تمام شرایط نیست. مزیت اصلی آن زمانی مشخص می‌شود که سیستم‌عامل و نرم‌افزار بتوانند پردازش‌ها را نزدیک به حافظه موردنیازشان اجرا کنند.

در بسیاری از سرورهای HPE ProLiant مجهز به دو پردازنده Intel Xeon، هر CPU دارای کنترلر حافظه اختصاصی است و به اسلات‌های RAM مشخصی متصل می‌شود. برای مثال، یک سرور HPE ProLiant DL380 Gen10 با دو پردازنده می‌تواند دارای دو NUMA Node اصلی باشد؛ البته تعداد Nodeهای قابل مشاهده به تنظیمات BIOS، قابلیت‌های پردازنده و گزینه‌هایی مانند Sub-NUMA Clustering بستگی دارد.

نمای شماتیک دو NUMA Node در یک سرور دوپردازنده‌ای با ۲۵۶ گیگابایت RAM

در این ساختار، پردازنده اول به حافظه متصل به خودش دسترسی مستقیم دارد. اگر به اطلاعات ذخیره‌شده در حافظه پردازنده دوم نیاز داشته باشد، درخواست از طریق ارتباط بین پردازنده‌ای مانند Intel UPI منتقل می‌شود.

بنابراین، محل قرارگیری داده‌ها و نحوه تخصیص پردازش‌ها اهمیت زیادی پیدا می‌کند.

مهم‌ترین مزیت NUMA امکان استفاده از حافظه محلی یا Local Memory است. وقتی پردازنده به حافظه Node خودش دسترسی دارد، نیازی به عبور درخواست از ارتباط بین پردازنده‌ها نیست. این موضوع می‌تواند تأخیر حافظه را کاهش دهد و کارایی برنامه‌های حساس به حافظه را افزایش دهد.

در سرورهای چندپردازنده‌ای، هر CPU معمولاً کانال‌های حافظه اختصاصی دارد. NUMA امکان استفاده موازی از این کانال‌ها را فراهم می‌کند. در نتیجه، اگر پردازش‌ها به‌درستی میان Nodeها توزیع شوند، سیستم می‌تواند از مجموع پهنای باند حافظه پردازنده‌ها بهتر استفاده کند.

در معماری NUMA، اضافه شدن پردازنده می‌تواند منابع پردازشی و کانال‌های حافظه بیشتری در اختیار سیستم قرار دهد. البته میزان افزایش عملکرد به نوع برنامه، تعداد پردازنده‌ها، الگوی دسترسی به حافظه و قابلیت NUMA Awareness نرم‌افزار بستگی دارد.

زمانی که پردازش‌ها عمدتاً از حافظه محلی استفاده کنند، تعداد درخواست‌های Remote Memory کاهش پیدا می‌کند. این مسئله می‌تواند فشار بر ارتباط بین پردازنده‌ها را کمتر کرده و منابع ارتباطی بیشتری برای سایر عملیات باقی بگذارد.

تأثیر فناوری NUMA بر عملکرد سرور HP

یکی از مهم‌ترین کاربردهای فناوری NUMA در سرور HP، بهینه‌سازی عملکرد ماشین‌های مجازی است. در محیط‌هایی مانند VMware ESXi، Microsoft Hyper-V و KVM، ماشین‌های مجازی از منابع CPU و RAM فیزیکی استفاده می‌کنند. اگر این منابع بدون توجه به ساختار NUMA تخصیص داده شوند، ممکن است عملکرد بعضی ماشین‌ها کاهش پیدا کند.

برای مثال، فرض کنید یک سرور دارای دو NUMA Node باشد که هرکدام ۱۲ هسته فیزیکی و ۱۲۸ گیگابایت RAM دارند. اگر یک ماشین مجازی با ۸ vCPU و ۶۴ گیگابایت RAM ایجاد شود، در صورت وجود منابع آزاد کافی، امکان قرارگیری منابع آن در یک Node وجود دارد.

اما ماشین مجازی با ۲۰ vCPU و ۱۹۲ گیگابایت RAM ناچار است از منابع بیش از یک Node استفاده کند. این وضعیت الزاماً اشتباه نیست، اما ممکن است هزینه دسترسی به حافظه Remote را افزایش دهد.

VMware ESXi دارای زمان‌بند NUMA-aware است که تلاش می‌کند منابع پردازشی و حافظه ماشین‌های مجازی را بهینه تخصیص دهد. برای دستیابی به عملکرد مناسب، بهتر است:

  • تعداد vCPU ماشین مجازی متناسب با نیاز واقعی انتخاب شود.
  • ظرفیت RAM هر VM با منابع فیزیکی Nodeها بررسی شود.
  • از تنظیمات دستی NUMA بدون شناخت ساختار سخت‌افزار خودداری شود.
  • وضعیت CPU Ready، مصرف حافظه و عملکرد برنامه‌ها مانیتور شود.

در نسخه‌های جدید ESXi، توپولوژی مجازی NUMA یا vNUMA نیز اهمیت دارد و نحوه نمایش آن به سیستم‌عامل مهمان می‌تواند بر عملکرد برنامه‌های چندرشته‌ای تأثیر بگذارد.

یکی از نکات مهم در بررسی فناوری NUMA، نحوه نصب ماژول‌های RAM است. در سرورهای دوپردازنده‌ای HP، اسلات‌های حافظه بین پردازنده‌ها تقسیم شده‌اند. بنابراین، نصب نامتوازن RAM می‌تواند ظرفیت حافظه قابل استفاده در هر NUMA Node را متفاوت کند.

برای مثال:

مشخصاتCPU 1CPU 2
تعداد RAM۴ ماژول۴ ماژول
ظرفیت هر ماژول۳۲GB۳۲GB
مجموع ظرفیت۱۲۸GB۱۲۸GB
وضعیت توزیعمتوازنمتوازن

در این مثال، ظرفیت حافظه بین دو پردازنده برابر است. اما اگر پردازنده اول ۱۹۲ گیگابایت و پردازنده دوم ۶۴ گیگابایت RAM داشته باشد، ظرفیت محلی Nodeها متفاوت خواهد بود.

این وضعیت ممکن است در بعضی بارهای کاری باعث افزایش دسترسی Remote شود. البته توزیع برابر ظرفیت RAM به‌تنهایی کافی نیست. رعایت ترتیب نصب DIMMها، تعداد کانال‌های فعال و دستورالعمل HPE برای مدل سرور نیز ضروری است.

در بسیاری از سرورهای HP می‌توان تنظیمات مرتبط با NUMA را از طریق System Utilities بررسی کرد.

مسیر معمول در بعضی نسل‌ها به شکل زیر است:

  • System Utilities
  • System Configuration
  • BIOS/Platform Configuration (RBSU)
  • Memory Options / Advanced Options

محل دقیق گزینه‌ها بسته به نسل سرور و نسخه System ROM متفاوت است.

تنظیمکاربرد
Node Interleavingتغییر نحوه توزیع آدرس‌های حافظه میان Nodeها
Sub-NUMA Clustering (SNC)تقسیم بعضی پردازنده‌های سازگار به دامنه‌های NUMA کوچک‌تر
Memory Interleavingتوزیع دسترسی حافظه در سطح کانال‌ها یا سایر سطوح پشتیبانی‌شده
Workload Profileانتخاب مجموعه‌ای از تنظیمات BIOS متناسب با نوع بار کاری

در سرورهایی که Node Interleaving را پشتیبانی می‌کنند، غیرفعال بودن آن معمولاً امکان نمایش توپولوژی NUMA به سیستم‌عامل را فراهم می‌کند. فعال کردن Node Interleaving می‌تواند توپولوژی قابل مشاهده را تغییر دهد و مزایای محلی‌بودن حافظه را محدود کند.

بنابراین، تغییر این گزینه بدون بررسی نیاز نرم‌افزار توصیه نمی‌شود.

برای بررسی تعداد NUMA Nodeها، ظرفیت حافظه هر Node و وضعیت پردازنده‌ها می‌توان از ابزارهای سیستم‌عامل استفاده کرد.

در Windows Server می‌توان از PowerShell برای مشاهده اطلاعات NUMA استفاده کرد:


Get-CimInstance Win32_NumaNode |
Select-Object NodeNumber

همچنین در Task Manager و ابزارهای مانیتورینگ ویندوز می‌توان وضعیت استفاده از CPU و حافظه را بررسی کرد. میزان جزئیات قابل مشاهده به نسخه ویندوز و ابزار مورد استفاده بستگی دارد.

در سیستم‌عامل لینوکس، دستور زیر اطلاعات توپولوژی NUMA را نمایش می‌دهد:


numactl --hardware

در صورت نصب بودن ابزار numactl، خروجی شامل تعداد Nodeها، پردازنده‌های مرتبط، ظرفیت حافظه و فاصله نسبی میان Nodeها خواهد بود. دستور زیر نیز اطلاعات پردازنده و NUMA را نمایش می‌دهد:


lscpu

این دستورات برای عیب‌یابی عملکرد سرورهای HPE و بررسی تخصیص منابع بسیار کاربردی هستند.

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

این وضعیت ممکن است باعث افزایش Memory Latency و ترافیک بین پردازنده‌ها شود. همچنین، اختصاص تعداد زیادی vCPU به ماشین مجازی، استفاده نامتوازن از حافظه و محدودسازی غیرضروری CPU Affinity می‌توانند عملکرد را تحت تأثیر قرار دهند.

تأثیر NUMA بر مجازی‌سازی در سرورهای HP

نکته مهم این است که استفاده از حافظه Remote همیشه نشانه وجود مشکل نیست. در برخی برنامه‌ها، توزیع پردازش میان چند Node نسبت به محدود کردن آن به یک Node عملکرد بهتری ایجاد می‌کند.

برای استفاده مؤثر از فناوری NUMA در سرورهای HPE، رعایت چند اصل اهمیت دارد.

اولین اصل، نصب متوازن ماژول‌های حافظه براساس راهنمای رسمی مدل سرور است. دومین اصل، انتخاب صحیح تعداد vCPU و ظرفیت RAM ماشین‌های مجازی براساس نیاز واقعی برنامه‌هاست.

همچنین بهتر است تنظیمات BIOS، نسخه Firmware و قابلیت‌های سیستم‌عامل بررسی شوند تا توپولوژی NUMA به‌درستی شناسایی شود.

در محیط‌های حساس مانند SQL Server، Oracle Database و سرورهای مجازی‌سازی پرتراکم، مانیتورینگ تأخیر حافظه و آزمایش عملکرد قبل و بعد از تغییر تنظیمات NUMA اهمیت زیادی دارد.

تغییرات BIOS نیز بهتر است در زمان نگهداری برنامه‌ریزی‌شده انجام شوند؛ زیرا برخی از آن‌ها به راه‌اندازی مجدد سرور نیاز دارند.

فناوری NUMA یکی از اجزای مهم معماری حافظه در سرورهای چندپردازنده‌ای HPE است که با ایجاد ارتباط نزدیک‌تر میان پردازنده و حافظه محلی، امکان کاهش تأخیر و افزایش بهره‌وری منابع را فراهم می‌کند.

در سرورهای HP، به‌ویژه مدل‌های دوپردازنده‌ای ProLiant، شناخت ساختار NUMA برای مدیریت RAM، پیکربندی ماشین‌های مجازی و اجرای برنامه‌های سنگین اهمیت دارد.

با این حال، بهترین عملکرد زمانی به دست می‌آید که سخت‌افزار، BIOS، سیستم‌عامل و نرم‌افزار همگی متناسب با توپولوژی NUMA تنظیم شده باشند.

۱. آیا تمام سرورهای HP از NUMA پشتیبانی می‌کنند؟

خیر. پشتیبانی از NUMA به معماری پردازنده و پلتفرم سرور بستگی دارد. این فناوری بیشتر در سرورهای چندسوکتی و برخی پردازنده‌های دارای چند دامنه NUMA کاربرد دارد.

۲. آیا NUMA باعث افزایش سرعت RAM می‌شود؟

NUMA فرکانس RAM را افزایش نمی‌دهد، اما با بهینه‌سازی دسترسی به حافظه محلی می‌تواند تأخیر مؤثر را کاهش دهد و عملکرد بعضی برنامه‌ها را بهبود ببخشد.

۳. آیا برای استفاده از NUMA باید آن را در BIOS فعال کنیم؟

در بسیاری از سرورها NUMA به‌صورت پیش‌فرض قابل استفاده است. با این حال، گزینه‌هایی مانند Node Interleaving می‌توانند بر نحوه نمایش NUMA تأثیر بگذارند.

۴. آیا NUMA برای سرورهای تک‌پردازنده‌ای کاربرد دارد؟

در بعضی پردازنده‌های تک‌سوکتی نیز امکان وجود چند NUMA Node منطقی وجود دارد، اما بسیاری از سرورهای تک‌پردازنده‌ای تنها یک Node دارند.

۵. تفاوت NUMA و vNUMA چیست؟

NUMA ساختار فیزیکی ارتباط CPU و RAM است، درحالی‌که vNUMA توپولوژی NUMA را به ماشین مجازی نمایش می‌دهد تا سیستم‌عامل مهمان بتواند منابع را بهتر مدیریت کند.

۶. آیا NUMA روی عملکرد SQL Server تأثیر دارد؟

بله. SQL Server از معماری NUMA آگاهی دارد و می‌تواند از اطلاعات آن برای مدیریت زمان‌بندی پردازش‌ها و بعضی ساختارهای حافظه استفاده کند.

۷. آیا افزایش تعداد NUMA Node همیشه بهتر است؟

خیر. تعداد بیشتر Nodeها الزاماً به معنای عملکرد بالاتر نیست. اندازه Node، تأخیر ارتباطی و نحوه طراحی نرم‌افزار اهمیت بیشتری دارند.

۸. آیا نصب RAM با ظرفیت متفاوت باعث غیرفعال شدن NUMA می‌شود؟

لزوماً خیر. اما ظرفیت نامتوازن حافظه می‌تواند نحوه تخصیص منابع و میزان دسترسی Remote را تغییر دهد.

۹. آیا می‌توان یک ماشین مجازی را فقط روی یک NUMA Node اجرا کرد؟

در بعضی Hypervisorها امکان اعمال محدودیت یا سیاست تخصیص منابع وجود دارد، اما این کار باید با توجه به نیاز ماشین مجازی انجام شود؛ زیرا محدودسازی بیش از حد ممکن است عملکرد را کاهش دهد.

۱۰. آیا NUMA در سرورهای HPE Gen9 و Gen10 متفاوت است؟

اصول معماری یکسان است، اما نسل پردازنده، ارتباط بین CPUها، تعداد کانال‌های حافظه و قابلیت‌های BIOS می‌توانند باعث تفاوت در توپولوژی و عملکرد NUMA شوند.

محصول با موفقیت به سبد خرید اضافه شد.
تماس با ما