فناوری 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 بستگی دارد.

در این ساختار، پردازنده اول به حافظه متصل به خودش دسترسی مستقیم دارد. اگر به اطلاعات ذخیرهشده در حافظه پردازنده دوم نیاز داشته باشد، درخواست از طریق ارتباط بین پردازندهای مانند Intel UPI منتقل میشود.
بنابراین، محل قرارگیری دادهها و نحوه تخصیص پردازشها اهمیت زیادی پیدا میکند.
مهمترین مزیت NUMA امکان استفاده از حافظه محلی یا Local Memory است. وقتی پردازنده به حافظه Node خودش دسترسی دارد، نیازی به عبور درخواست از ارتباط بین پردازندهها نیست. این موضوع میتواند تأخیر حافظه را کاهش دهد و کارایی برنامههای حساس به حافظه را افزایش دهد.
در سرورهای چندپردازندهای، هر CPU معمولاً کانالهای حافظه اختصاصی دارد. NUMA امکان استفاده موازی از این کانالها را فراهم میکند. در نتیجه، اگر پردازشها بهدرستی میان Nodeها توزیع شوند، سیستم میتواند از مجموع پهنای باند حافظه پردازندهها بهتر استفاده کند.
در معماری NUMA، اضافه شدن پردازنده میتواند منابع پردازشی و کانالهای حافظه بیشتری در اختیار سیستم قرار دهد. البته میزان افزایش عملکرد به نوع برنامه، تعداد پردازندهها، الگوی دسترسی به حافظه و قابلیت NUMA Awareness نرمافزار بستگی دارد.
زمانی که پردازشها عمدتاً از حافظه محلی استفاده کنند، تعداد درخواستهای Remote Memory کاهش پیدا میکند. این مسئله میتواند فشار بر ارتباط بین پردازندهها را کمتر کرده و منابع ارتباطی بیشتری برای سایر عملیات باقی بگذارد.

یکی از مهمترین کاربردهای فناوری 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 است که تلاش میکند منابع پردازشی و حافظه ماشینهای مجازی را بهینه تخصیص دهد. برای دستیابی به عملکرد مناسب، بهتر است:
در نسخههای جدید ESXi، توپولوژی مجازی NUMA یا vNUMA نیز اهمیت دارد و نحوه نمایش آن به سیستمعامل مهمان میتواند بر عملکرد برنامههای چندرشتهای تأثیر بگذارد.
یکی از نکات مهم در بررسی فناوری NUMA، نحوه نصب ماژولهای RAM است. در سرورهای دوپردازندهای HP، اسلاتهای حافظه بین پردازندهها تقسیم شدهاند. بنابراین، نصب نامتوازن RAM میتواند ظرفیت حافظه قابل استفاده در هر NUMA Node را متفاوت کند.
برای مثال:
| مشخصات | CPU 1 | CPU 2 |
|---|---|---|
| تعداد RAM | ۴ ماژول | ۴ ماژول |
| ظرفیت هر ماژول | ۳۲GB | ۳۲GB |
| مجموع ظرفیت | ۱۲۸GB | ۱۲۸GB |
| وضعیت توزیع | متوازن | متوازن |
در این مثال، ظرفیت حافظه بین دو پردازنده برابر است. اما اگر پردازنده اول ۱۹۲ گیگابایت و پردازنده دوم ۶۴ گیگابایت RAM داشته باشد، ظرفیت محلی Nodeها متفاوت خواهد بود.
این وضعیت ممکن است در بعضی بارهای کاری باعث افزایش دسترسی Remote شود. البته توزیع برابر ظرفیت RAM بهتنهایی کافی نیست. رعایت ترتیب نصب DIMMها، تعداد کانالهای فعال و دستورالعمل HPE برای مدل سرور نیز ضروری است.
در بسیاری از سرورهای HP میتوان تنظیمات مرتبط با NUMA را از طریق System Utilities بررسی کرد.
مسیر معمول در بعضی نسلها به شکل زیر است:
محل دقیق گزینهها بسته به نسل سرور و نسخه 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 میتوانند عملکرد را تحت تأثیر قرار دهند.

نکته مهم این است که استفاده از حافظه Remote همیشه نشانه وجود مشکل نیست. در برخی برنامهها، توزیع پردازش میان چند Node نسبت به محدود کردن آن به یک Node عملکرد بهتری ایجاد میکند.
برای استفاده مؤثر از فناوری NUMA در سرورهای HPE، رعایت چند اصل اهمیت دارد.
اولین اصل، نصب متوازن ماژولهای حافظه براساس راهنمای رسمی مدل سرور است. دومین اصل، انتخاب صحیح تعداد vCPU و ظرفیت RAM ماشینهای مجازی براساس نیاز واقعی برنامههاست.
همچنین بهتر است تنظیمات BIOS، نسخه Firmware و قابلیتهای سیستمعامل بررسی شوند تا توپولوژی NUMA بهدرستی شناسایی شود.
در محیطهای حساس مانند SQL Server، Oracle Database و سرورهای مجازیسازی پرتراکم، مانیتورینگ تأخیر حافظه و آزمایش عملکرد قبل و بعد از تغییر تنظیمات NUMA اهمیت زیادی دارد.
تغییرات BIOS نیز بهتر است در زمان نگهداری برنامهریزیشده انجام شوند؛ زیرا برخی از آنها به راهاندازی مجدد سرور نیاز دارند.
فناوری NUMA یکی از اجزای مهم معماری حافظه در سرورهای چندپردازندهای HPE است که با ایجاد ارتباط نزدیکتر میان پردازنده و حافظه محلی، امکان کاهش تأخیر و افزایش بهرهوری منابع را فراهم میکند.
در سرورهای HP، بهویژه مدلهای دوپردازندهای ProLiant، شناخت ساختار NUMA برای مدیریت RAM، پیکربندی ماشینهای مجازی و اجرای برنامههای سنگین اهمیت دارد.
با این حال، بهترین عملکرد زمانی به دست میآید که سختافزار، BIOS، سیستمعامل و نرمافزار همگی متناسب با توپولوژی NUMA تنظیم شده باشند.
خیر. پشتیبانی از NUMA به معماری پردازنده و پلتفرم سرور بستگی دارد. این فناوری بیشتر در سرورهای چندسوکتی و برخی پردازندههای دارای چند دامنه NUMA کاربرد دارد.
NUMA فرکانس RAM را افزایش نمیدهد، اما با بهینهسازی دسترسی به حافظه محلی میتواند تأخیر مؤثر را کاهش دهد و عملکرد بعضی برنامهها را بهبود ببخشد.
در بسیاری از سرورها NUMA بهصورت پیشفرض قابل استفاده است. با این حال، گزینههایی مانند Node Interleaving میتوانند بر نحوه نمایش NUMA تأثیر بگذارند.
در بعضی پردازندههای تکسوکتی نیز امکان وجود چند NUMA Node منطقی وجود دارد، اما بسیاری از سرورهای تکپردازندهای تنها یک Node دارند.
NUMA ساختار فیزیکی ارتباط CPU و RAM است، درحالیکه vNUMA توپولوژی NUMA را به ماشین مجازی نمایش میدهد تا سیستمعامل مهمان بتواند منابع را بهتر مدیریت کند.
بله. SQL Server از معماری NUMA آگاهی دارد و میتواند از اطلاعات آن برای مدیریت زمانبندی پردازشها و بعضی ساختارهای حافظه استفاده کند.
خیر. تعداد بیشتر Nodeها الزاماً به معنای عملکرد بالاتر نیست. اندازه Node، تأخیر ارتباطی و نحوه طراحی نرمافزار اهمیت بیشتری دارند.
لزوماً خیر. اما ظرفیت نامتوازن حافظه میتواند نحوه تخصیص منابع و میزان دسترسی Remote را تغییر دهد.
در بعضی Hypervisorها امکان اعمال محدودیت یا سیاست تخصیص منابع وجود دارد، اما این کار باید با توجه به نیاز ماشین مجازی انجام شود؛ زیرا محدودسازی بیش از حد ممکن است عملکرد را کاهش دهد.
اصول معماری یکسان است، اما نسل پردازنده، ارتباط بین CPUها، تعداد کانالهای حافظه و قابلیتهای BIOS میتوانند باعث تفاوت در توپولوژی و عملکرد NUMA شوند.