فاوت Consumed Memory و Active Memory در محاسبات کلاستر VMware
آیا تا به حال به میزان مصرف Memory هاست در vSphere Web Client نگاه کرده اید و تعجب نکرده اید که چرا هاست ها ظاهراً نا متعادل هستند در حالی که DRS می گوید که متعادل هستند؟
خب، یک دلیل برای آن وجود دارد. vSphere Web Client حافظه مصرف شده (Consumed Memory) را نشان می دهد، در حالی که DRS از حافظه فعال(Active Memory) در هنگام محاسبه بار فعلی هاست استفاده می کند. این اختلاف مخصوصاً در محیط هایی بیشتر نمود پیدا می کند که حافظه VM ها عمدتا idle هستند، اما به یک باره بیشتر حافظه را مصرف می کنند.
متریک Consumed Memory حداکثر مقدار حافظه مورد استفاده توسط ماشین مجازی در هر نقطه از عمر آن است، حتی اگر VM فقط یک بار از این مقدار استفاده کرده باشد و در بقیه موارد واقعاً از بیشتر این حافظه استفاده نکرده باشد. در مقابل، Active Memory تخمینی از مقدار حافظه است که در حال حاضر به طور فعال توسط VM استفاده می شود. تخمین مذکور با استفاده از الگوریتم نمونه برداری حافظه انجام می شود که هر 5 دقیقه اجرا می شود.
متریک Consumed Memory به هیچ وجه روش دقیقی برای اندازه گیری عملکرد DRS نیست. برای نشان دادن بهتر بار فعلی هاست، لازم است به کانتر Active Memory هر هاست نگاه کنید تا تصمیم بگیرد که آیا بار هاست ها با هم توازن دارند یا نه. مخصوصاً DRS از (Active Memory) + (25٪ از Idle Memory) برای تعیین مقدار بار فعلی هاست استفاده می کند.
با معرفی vSphere 5.5، یک تنظیم پیشرفته به نام PercentIdleMBInMemDemand برای تغییر این مکانیزم معرفی شد. افزایش این مقدار باعث می شود DRS هنگام انجام محاسبات مربوطه، بیشتر از مقدار Consumed Memory استفاده کند، که اغلب منجر به پیشنهاد اولویت بالاتر می شود، و اولویت بالاتر برای دستیابی به تعادل بهتر کلاستر، VM را به هاست دیگری منتقل می کند.
کمترین و بیشترین مقدار PercentIdleMBInMemDemand از 0 تا 100 می باشد، که مقدار 0 باعث می شود DRS فقط از Active Memory و مقدار 100 فقط از Consumed Memory برای محاسبات مربوطه استفاده کند. بر اساس جدیدترین تست های انجام شده توسط تیم های تحقیق و توسعه شرکت VMware ، مقدار 50 نتایج بسیار مثبتی از خود نشان می دهد، و تغییر این مقدار تعداد پیشنهاد های اولویت بالاتر را افزایش داده که در آن migration threshold پیش فرض یعنی 3 اقدام به جابجایی VM ها می کند، که منجر به توازن بیشتر بار کلاستر می شود.
همچنین تنظیم PercentIdleMBInMemDemand به 100 باعث می شود DRS از حافظه مصرف شده استفاده کند، که همان مقداری است که توسط vSphere Web Client نمایش داده می شود. ولی مقدار 100 مناسب شرایطی است که در آن حافظه over-commitment نمی باشد، در غیر اینصورت نتایج غیرمنتظره رخ می دهد.
Bursty CPU Workloads
AggressiveCPUActive یکی دیگر از تنظیمات پیشرفته ای است که برای اولین بار در vSphere 5.5 معرفی شد. این تنظیم برای متعادل سازی بار CPU در شرایطی که CPU بسیار فعال و درگیر است مناسب می باشد. معمولاً DRS به طور متوسط هر 5 دقیقه یک بار میزان تقاضای CPU توسط VM ها را محاسبه می کند. هنگامی که این تنظیم پیشرفته فعال می شود، DRS با میانگین 80 درصد (یعنی بالاترین مقدار فاصله زمانی) سوئیچ می کند، و باعث بهبود شرایطی می شود که DRS بدلیل درخواست تقاضای CPU پیشنهادهایی ندارد، چون میانگین تقاضا در دوره زمانی 5 دقیقه گذشته برای تولید پیشنهاد بسیار پایین می باشد.
در اینجا مثالی برای مزیت این تنظیم پیشرفته ارائه شده است. در مدت 5 دقیقه، یک VM از 50٪، 70٪، 10٪، 5٪ و 5٪ استفاده می کند. این VM فقط چندین پردازنده را برای مدت کوتاهی درخواست می کند و سپس بیشتر به سمت idle حرکت می کند. میانگین استفاده به مدت 5 دقیقه 28٪ است، که ممکن است برای انتقال VM ها به یک هاست دیگر خیلی زیاد نباشد. با این حال، با فعال کردن تنظیم AggressiveCPUActive ، DRS از 50 درصد استفاده می کند که هشتادمین percentile می باشد.