افزایش ظرفیت نودهای Kubernetes با Swap و حافظه NVMe

به گزارش وبلاگ Kubernetes، پشتیبانی از اجرای نودها با Swap در نسخه 1.34 به مرحله دسترسپذیری عمومی رسیده است. آزمایشهای تازه نشان میدهد اتصال این قابلیت به SSD محلی پرسرعت NVMe میتواند تراکم پادها را در بارهای کاری خاص تا سه برابر افزایش دهد؛ موضوعی مهم برای مدیران زیرساخت، محیطهای CI/CD و سامانههای اجرای ایزوله کد.
Swap چگونه محدودیت حافظه نود را کاهش میدهد؟
در بسیاری از کلاسترها، ظرفیت RAM زودتر از توان CPU تمام میشود. این مشکل در بارهای کاری هوش مصنوعی عاملمحور پررنگتر است؛ زیرا پادها هنگام راهاندازی و اجرای کد غیرقابلاعتماد حافظه زیادی میخواهند، اما پس از آن ممکن است مدت زیادی در انتظار درخواست بعدی بمانند. نگهداشتن این حافظه غیرفعال در RAM، تعداد پادهای قابل اجرا روی هر نود را محدود میکند.
Node Swap به هسته Linux اجازه میدهد حافظه ناشناسِ کماستفاده را موقتاً به دیسک منتقل کند. Kubernetes برای حسابداری جداگانه حافظه و Swap به cgroup v2 متکی است و استفاده از NVMe Local SSD نیز تأخیر رایج دیسکهای کند را تا حد زیادی کاهش میدهد. به این ترتیب، Swap میتواند هنگام جهش مصرف حافظه نقش ضربهگیر داشته باشد، اما جایگزین RAM فعال نیست.
نتایج آزمایشها و ملاحظات عملیاتی
در آزمایش ساخت Linux 6.1.1، حداقل حافظه لازم برای جلوگیری از خطای OOM بدون Swap برابر 600 مگابایت بود. با انتقال Swap به SSD محلی، محدودیت حافظه کانتینر به 300 مگابایت کاهش یافت و زمان اجرا از 433 به 374 ثانیه رسید. کاهش بیشتر این سقف به 200 مگابایت نتیجه معکوس داشت و زمان اجرا را بهدلیل انتظار ورودی و خروجی بیش از 40 درصد افزایش داد.
در تست مرورگر بدون رابط گرافیکی، ظرفیت gVisor از 80 به 160 پاد همزمان رسید. ظرفیت Kata Containers نیز از 40 به 50 پاد افزایش یافت. در محیطهای ایزوله Python که هر نشست حدود 375 مبیبایت حافظه مقیم مصرف میکرد، تعداد نشستهای همزمان از 80 به 240 رسید؛ یعنی سه برابر شد. در بیشترین تراکم، افزایش تأخیر بیشتر به رقابت بر سر CPU مربوط بود تا عملیات Swap.
برای بهرهگیری از این قابلیت در Kubernetes 1.34 و نسخههای جدیدتر، kubelet باید با LimitedSwap تنظیم شود و بارهای کاری نیز QoS از نوع Burstable داشته باشند؛ یعنی سقف حافظه کانتینر بالاتر از مقدار درخواستی آن تعریف شود.
در جمعبندی، Swap مبتنی بر NVMe میتواند بهرهوری حافظه و ظرفیت نود را برای بارهای مقطعی و پرنوسان بهبود دهد. بااینحال، تعیین سقف حافظه، پایش تأخیر و آزمون بار همچنان برای جلوگیری از انتقال حافظه فعال به دیسک ضروری است.



