Kepler بازنویسی شد: اندازهگیری دقیقتر مصرف برق
خلاصهٔ کاملتر
به گفتهٔ نویسندهها، دیتاسنترها تو ۲۰۲۴ حدود ۱.۵ درصد تقاضای برق جهان رو تشکیل دادن و پیشبینی میشه تا ۲۰۳۰ به حدود ۹۴۵ تراواتساعت دوبرابر بشه، تا حدی بهخاطر رشد سریع بارهای کاری هوش مصنوعی. تو کلاسترای کوبرنتیز هیچ راه داخلی راحتی برای تخصیص مصرف برق به هر بار کاری نیست؛ Kepler همینو حل میکنه: از برقسنجهای سختافزاری میخونه، مصرف رو به پروسههای لینوکس نسبت میده، اونو به Podهای در حال اجرا گره میزنه و متریک Prometheus صادر میکنه.
نویسندهها توضیح میدن که از وقتی Kepler در ۲۰۲۳ بهعنوان پروژهٔ sandbox وارد CNCF شد، پذیرشش رشد کرده، ولی معماری اولیه که به eBPF تکیه داشت مشکلساز بود. اول اینکه به دسترسیهای CAP_BPF و CAP_SYSADMIN نیاز داشت که تو خیلی محیطای پروداکشن یه مانع جدیه. دوم اینکه eBPF تو ردیابی دقیق پروسههای سطحکرنل خطاپذیر بود و این بیدقتی یه گلوگاه برای مدلای تخمین برق درست میکرد. علاوه بر این، پیچیدگی eBPF منحنی یادگیری رو تندتر و نگهداری کد رو سختتر میکرد.
تیم تصمیم بزرگ ولی هیجانانگیزی گرفت: بازنویسی Kepler. نویسندهها میگن برای اولویتدادن به سهولت پذیرش و بهبود دقت، از eBPF فاصله گرفتن و برگشتن سراغ اصول اولیه؛ راهحل بازنویسیشده از دسترسی فقطخواندنی به /proc و /sys استاندارد استفاده میکنه. چون اینها بهطور جهانی رو سیستمای لینوکس در دسترسن، دسترسی خیلی کمتری میخوان و راهاندازیشون حداقلیه، طوری که Kepler حالا با یه Helm پیکربندیشده و بیرون از جعبه دیپلوی میشه.
برای متریکای برق هم، Kepler قبلی یه ساختار برق هاردکدشده رو فرض میکرد (مثلاً اینکه RAPL از core و DRAM و بقیه تشکیل شده)، ولی تیم متوجه شد توپولوژی واقعی سختافزار خیلی فرق میکنه و طراحی قدیمی داده رو به یه ground truth ناموجود نسبت میداد. Kepler بازنویسیشده ساختار برقسنج هاست رو درجا و موقع اجرا کشف میکنه و با تطبیق با چیدمان سختافزار زیرین، متریک دقیقتری تو محیطای مختلف گزارش میده.
نویسندهها دو آزمایش برای تأیید بهبود دقت انجام دادن. تو آزمایش اول، نسخهٔ قدیم و جدید Kepler رو همزمان رو یه نود بِرمتال مستقر کردن و در برابر خونشهای برقسنج سختافزاری IPMI مقایسه کردن؛ نسخهٔ جدید الگوهای IPMI رو از نزدیک دنبال میکرد و اسپایکای چندکیلوواتی نسخهٔ قدیم رو حذف کرد. آزمایش دوم هم شکاف تخصیص ناچیز (اساساً صفر وات) رو موقع مقایسهٔ برق نود با برق مشتقشده از مدل تخصیص پروسه نشون داد. تیم همچنین با تستای گسترده به پوشش تست ۹۰ درصدی رسید.
نویسندهها میگن این بازنویسی فقط پایه رو میذاره و اولویت بعدیشون بهبود تخصیص برق CPU رو بِرمتال و بعد گسترش به ماشینهای مجازیه. اونها یه فراخوان مشارکت هم دادن و تو سهچهار حوزه دنبال کمکن: تست مانیتورینگ برق GPU (که حالا برای بارهای کاری هوش مصنوعی حیاتیه)، آموزش مدل برق برای محیطای مجازی، اعتبارسنجی دقت داده در برابر اندازهگیری فیزیکی، و بهبود تخصیص برق حالت بیکار.
نکات کلیدی:
- Kepler مصرف برق هر Pod کوبرنتیز رو اندازه میگیره و بهصورت متریک Prometheus صادر میکنه
- بازنویسی شد تا از eBPF (با دسترسی سطحبالا و خطاپذیری) فاصله بگیره
- حالا از دسترسی فقطخواندنی به /proc و /sys استفاده میکنه که دسترسی کمتر میخواد و با یه Helm دیپلوی میشه
- ساختار برقسنج هاست رو درجا کشف میکنه بهجای فرض یه ساختار هاردکدشده
- آزمایشها در برابر IPMI دقت خیلی بهتر و شکاف تخصیص نزدیک به صفر رو نشون دادن
- تیم دنبال مشارکت برای مانیتورینگ برق GPU و مدلسازی برق ماشین مجازیه




