متا ابزار Rebalancer را متنباز کرد؛ حل روزانه ۴۰ میلیون معمای زیرساختی در دیتاسنترها
متا پس از ۹ سال استفاده داخلی، کتابخانه اختصاصی Rebalancer را بهصورت متنباز در اختیار عموم توسعهدهندگان قرار داد. این ابزار قدرتمند روزانه بیش از ۴۰ میلیون مسئله پیچیده تخصیص منابع و چیدمان سختافزار را در زیرساختهای عظیم این شرکت حلوفصل میکند. انتشار این پروژه همراه با ابزار بصری Explorer، مدیریت دیتاسنترها و سرورهای توزیعشده را برای تیمهای فنی متحول خواهد کرد.

در یک نگاه (نکات کلیدی خبر)
خلاصه مهمترین نکات و تحولات این گزارش برای مطالعه سریع
- متا بعد از ۹ سال استفاده داخلی، بالاخره کتابخانه قدرتمند Rebalancer رو متنباز کرد؛ ابزاری که سالها در سکوت خبری وظیفه چیدمان سرورها، زمانبندی پردازشها و هدایت ترافیک دیتاسنترهاش رو به دوش کشیده.
- این سیستم روزانه بیش از ۴۰ میلیون مسئله پیچیده تخصیص منابع رو توی متا حلوفصل میکنه و ورکلودهای سنگین با بیش از یک میلیون آبجکت رو فقط در چند دقیقه سروسامان میده.
- ابزار Rebalancer به همراه یک پنل کاربردی به اسم Explorer روی گیتهاب و PyPI منتشر شده و کار مهندسان رو راحت کرده، چون بدون نیاز به تسلط بر فرمولهای پیچیده ریاضی، معماهای سخت چینش سختافزار رو حل میکنه.
شرکت متا (Meta) بالاخره کتابخانه اختصاصی Rebalancer را متنباز کرد؛ ابزاری قدرتمند برای حل مسائل تخصیص منابع که این غول فناوری بیش از ۹ سال در پشتصحنه از آن برای چیدمان سختافزارها، زمانبندی پردازشها، توزیع سرویسها و هدایت ترافیک شبکهاش استفاده کرده است. این پروژه تحت لایسنس آپاچی ۲.۰ روی گیتهاب و مخزن PyPI منتشر شده و با یک رابط کاربردی به نام Rebalancer Explorer برای اشکالزدایی مدلها و مانیتورینگ روند حل مسئله همراه است. تیم مهندسی متا جزییات کامل این پروژه را در پست وبلاگ مهندسی خود به اشتراک گذاشته است.
این کتابخانه دقیقاً به سراغ یکی از تکراریترین و کلافهکنندهترین چالشهای زیرساختی رفته است: چطور تعداد بسیار زیادی از «اشیاء» (Objects) را درون مجموعهای از «ظرفها یا سطلها» (Bins) جا بدهیم، طوری که هم محدودیتهای منابع رعایت شود، هم سیاستهای چیدمان نقض نشود و هم اهداف بهینهسازی برآورده گردد. لایه مدلسازی مشترک Rebalancer میتواند خروجی خود را تحویل یک حلکننده دقیق برنامهریزی عدد صحیح مختلط (MIP) یا یک موتور موازی جستوجوی محلی (Local Search) بدهد؛ این قابلیت هوشمندانه به تیمهای فنی اجازه میدهد ابتدا مدلهای کوچکتر را اعتبارسنجی کنند و سپس بدون دستکاری فرمولبندی، همان منطق را روی بار کاری عظیم دیتاسنترها پیاده نمایند.
میلیونها انتخاب، یک تصمیم نهایی
در مدلهای تخصیص، الگوریتم مشخص میکند که هر شیء دقیقاً به کجا تعلق دارد. برای مثال، یک پردازش نرمافزاری به سروری با پردازنده و رم کافی نیاز دارد؛ یک رَک سرور باید در حوزهای با برق و سیستم خنککننده مطمئن قرار بگیرد؛ یا ترافیک ورودی کاربران باید به دیتاسنتری با ظرفیت خالی و کمترین تأخیر شبکه هدایت شود. در این میان، «محدودیتها» (Constraints) مشخص میکنند چه چیدمانهایی مجاز هستند و «اهداف بهینهسازی» (Objectives) به این نتایجِ ممکن رتبه میدهند تا بهترین چیدمان انتخاب شود.
بسیاری از این مسائل تخصیص در دسته مسائل فوقالعاده سنگین NP-hard قرار میگیرند؛ به این معنا که با افزایش تعداد اشیاء، ظرفها و محدودیتها، هزینه پردازشی حل دقیق آنها سر به فلک میکشد. از طرف دیگر، ترجمه کردن سیاستهای عملیاتی به فرمولهای ریاضیِ خشک خودش مصیبت دیگری است؛ بهخصوص برای مهندسانی که سابقه فعالیت در حوزه «تحقیق در عملیات» (OR) ندارند. ابزار Rebalancer با یک تیر دو نشان زده و با جداسازی تعیین سیاستها از نحوه نمایش مدل، حل مسئله و دیباگ، هر دو چالش را برطرف کرده است.
شرکت متا از این کتابخانه برای بخشهای متعددی از زیرساخت عظیم خود کمک میگیرد:
- چیدمان سختافزار (Hardware Placement): توزیع رَکها در حوزههای خطای الکتریکی، همراه با رعایت سقف مصرف برق و توان خنکسازی.
- استقرار سرویسها (Service Placement): تخصیص سرورها به سرویسهای نرمافزاری جهت افزایش تابآوری در برابر خرابی و بالا بردن راندمان بستهبندی سرورها.
- زمانبندی پردازشها (Task Placement): زمانبندی تَسکها روی سرورها با رعایت محدودیتهای مصرف CPU، حافظه رم و جلوگیری از تداخل برنامهها با یکدیگر.
- مسیریابی ترافیک (Traffic Routing): هدایت ترافیک میلیاردها کاربر به سمت دیتاسنترهای مختلف در سراسر جهان، در حالی که تأخیر شبکه و بار سرورها به دقیقترین شکل کنترل میشود.

مجموعهای ساده و جمعوجور از مفاهیم برای تعریف سیاستها
ابزار Rebalancer مجموعهای جمعوجور و کاربردی از مفاهیم را در اختیار طراحان مدل میگذارد تا بتوانند اشیاء، ظرفها، منابع و گروهبندیها را بهسادگی توصیف کنند:
مفهوم | کاربرد | مثال |
|---|---|---|
dimensions | توصیف ویژگیهای قابل اندازهگیری. | پردازنده (CPU)، رم، فضای ذخیرهسازی یا توان مصرف برق. |
partitions | گروهبندی اشیای مرتبط به یکدیگر. | تسکهایی که به یک پردازش مشترک تعلق دارند. |
scopes | گروهبندی ظرفهای مرتبط به هم. | سرورهای مستقر در یک رَک یا رَکهای قرارگرفته در یک بخش برقرسانی. |
utilization | اندازهگیری میزان مصرف یا سهم شیء تخصیصیافته. | میزان تقاضای یک پردازش برای CPU و حافظه رم. |
دستورالعملهای سطحبالا در این فریمورک سیاستهای رایج را پیادهسازی میکنند؛ برای نمونه CapacitySpec سقف ظرفیتها را اعمال میکند، GroupCountSpec نحوه توزیع گروهها را زیر نظر میگیرد و BalanceSpec اهداف توازن بار را فرمولبندی مینماید. این بلوکهای آماده کاری میکنند که توسعهدهندگان نرمافزار نیازی به نوشتن فرمولهای ریاضی اختصاصی برای هر موتور حل مسئله نداشته باشند.
در مرحله بعد، Rebalancer این تعاریف را به یک گراف جهتدار بدون دور (DAG) تبدیل میکند که اصطلاحاً «گراف محاسباتی» (Expression Graph) نام دارد. این گراف تمام محاسبات نهفته در محدودیتها و اهداف را یکپارچه میکند و سپس به عنوان ورودی مشترک در اختیار هر دو موتور حل مسئله قرار میدهد.
یک گراف محاسباتی، دو موتور حل مسئله قدرتمند
موتور حل مسئله | نحوه عملکرد | بهترین کاربرد | محدودیت اصلی |
|---|---|---|---|
برنامهریزی عدد صحیح مختلط (MIP) | گراف محاسباتی را به یک مدل MIP برای حلکنندههای HiGHS، Gurobi یا FICO Xpress تبدیل میکند. | مدلهای کوچک و متوسط، اعتبارسنجی فرمولها و پردازشهایی که به بهینگی اثباتشده و قطعی نیاز دارند. | ابعاد مدل با ضرب تعداد اشیاء در تعداد ظرفها بهشدت رشد میکند. |
جستوجوی محلی (Local Search) | اشیاء را بین ظرفها جابهجا میکند و فقط نودهای متأثر در گراف را دوباره محاسبه مینماید. | پردازشهای عظیم محیط عملیاتی که فرصت زمانی بسیار کمی برای اجرا دارند. | این روش ابتکاری اثبات ریاضیاتی برای بهینگی مطلق و سراسری ارائه نمیدهد. |
یک مدل برنامهریزی عدد صحیح مختلط، محدودیتهای خطی را با متغیرهایی که مقادیر صحیح میگیرند ترکیب میکند. در مدل تخصیص Rebalancer، یک متغیر باینری مشخص میکند که آیا یک شیء خاص در یک ظرف مشخص قرار میگیرد یا خیر. بنابراین وقتی صدها هزار شیء در میان هزاران ظرف پخش میشوند، با یک مدل ریاضی غولآسا روبهرو خواهیم شد.
موتور MIP برای مهار این پیچیدگی، با تکنیکهایی مثل تجمیع متغیرها (Variable Aggregation)، تحلیل جایگزینیپذیری و شکستن تقارن (Symmetry Breaking) ابعاد مدل را تا حد زیادی کوچک میکند. تجمیع متغیرها اشیای مشابه را به متغیرهای صحیح کمتری تبدیل میکند و سایر تکنیکها مانع از این میشوند که حلکننده حالتهای معادل و تکراری را بارها و بارها بررسی کند. ابزار Rebalancer علاوه بر موتورهای تجاری Gurobi و FICO Xpress که نیازمند لایسنس پولی هستند، از حلکننده متنباز HiGHS نیز پشتیبانی میکند.
از سوی دیگر، موتور جستوجوی محلی مستقیماً روی گراف محاسباتی کار میکند. این موتور گزینههای جابهجایی احتمالی را بهصورت موازی ارزیابی میکند و تنها نودهایی از گراف را که بر اثر جابهجایی دستخوش تغییر شدهاند، مجدداً محاسبه مینماید. گزارشهای متا نشان میدهد این ساختار میتواند میلیونها ارزیابی را در هر ثانیه پردازش کند؛ قابلیتی که آن را به انتخاب اول متا برای سنگینترین بارهای کاری تخصیص منابع تبدیل کرده است.

بر اساس گزارش متا، سیستم Rebalancer روزانه حدود ۴۰ میلیون مسئله تخصیص را در قالب بیش از ۳۰ مدلسازی گوناگون حل میکند. سرویسهای کلیدی متا مانند Shard Manager، سیستم تخصیص منابع منطقهای RAS، و سیستم Taiji (که وظیفه هدایت ترافیک لبه را بر عهده دارد) همگی به این ابزار متکی هستند.
شاخص گزارششده | نتیجه |
|---|---|
مسائل تخصیص حلشده در روز | حدود ۴۰ میلیون |
فرمولبندیهای مجزا | بیش از ۳۰ مورد |
بار کاری با ۲۶۵ هزار شیء و ۳۲۰۰ ظرف | زمان حل ۱۲ ثانیه در صدک ۹۹ (P99) |
بارهای کاری فراتر از ۱ میلیون شیء و ۵۰۰۰ ظرف | میانگین ۱۷۱ ثانیه در بیش از ۳۴۰۰ بار اجرا |
البته باید توجه داشت که این آمار و ارقام برگرفته از محیطهای عملیاتی واقعی شرکت متا هستند و حاصل یک بنچمارک استاندارد آزمایشگاهی نیستند؛ بنابراین عواملی مثل سختافزار، تراکم محدودیتها، طراحی اهداف بهینهسازی، چیدمان اولیه و تنظیمات حلکننده میتوانند عملکرد آن را در محیطهای دیگر تغییر دهند.
از آزمایش مدل کوچک تا مقیاس بزرگ عملیاتی
برای ارزیابی و استفاده عملی، میتوان ابتدا مدل را در ابعاد کوچک با موتور حل دقیق محک زد و سپس نسخه بزرگتر را به موتور جستوجوی محلی سپرد:
- تعریف مسئله تخصیص: اشیاء، ظرفهای کاندید، ابعاد منابع، گروهبندیها، محدودیتهای قطعی و اهداف بهینهسازی را مشخص کنید.
- کدنویسی سیاستهای مشترک: از مشخصههای آماده مانند
CapacitySpec،GroupCountSpecوBalanceSpecاستفاده نمایید. - اعتبارسنجی در مقیاس کوچک: موتور MIP را روی یک نمونه جمعوجور اجرا کنید تا ببینید آیا خروجی چیدمان با سیاستهای مدنظرتان همخوانی دارد یا خیر.
- مقیاسپذیری با جستوجوی محلی: مدل گراف محاسباتی را روی ورودیهای واقعی در ابعاد عملیاتی اعمال کرده و زمان اجرا، امکانپذیری و کیفیت خروجی را بسنجید.
- بررسی موارد پیچیده: از مستندات ابزار Explorer برای بررسی دقیقتر رفتار حلکننده، محدودیتها و محاسبات کمک بگیرید.
علاوه بر این، موتور حل دقیق میتواند پاسخهای مرجع و استانداردی ایجاد کند که برای تیونینگ و تنظیم روشهای ابتکاری جستوجوی محلی بهصورت آفلاین به کار میروند. این فرآیند کاری تضمین میکند که سیاست مدل همواره یکسان و دستنخورده باقی میماند، در حالی که استراتژی حل مسئله بسته به حجم کار و محدودیتهای زمانی تغییر میکند.
جایگاه ویژه Rebalancer در دنیای بهینهسازی
در دنیای نرمافزارهای متنباز، سیستمهای مدلسازی معروفی مثل Pyomo، OR-Tools و PuLP در کنار حلکنندههای عمومی قدرتمند حضور دارند. اما Rebalancer تمرکز خود را مشخصاً روی مسائل تخصیصی گذاشته که با فضای تصمیمگیری بینهایت بزرگ، زمان بسیار محدود، سیاستهای زیرساختی تکرارشونده و توسعهدهندگانی مواجهاند که شاید تخصص عمیقی در ریاضیات بهینهسازی نداشته باشند.
البته این فریمورک همچنان نیازمند طراحی دقیق سیاستها است؛ مهندسان باید قوانین عملیاتی خود را به ابعاد، پارتیشنها، محدودهها، قیود و اهداف ترجمه کنند و کیفیت پاسخهای الگوریتمهای ابتکاری را بسنجند. رابط گرافیکی Rebalancer Explorer شفافیت کاملی به این فرآیند میدهد و مقاله کنفرانس OSDI 2024 نیز جزئیات معماری و ترفندهای بهینهسازی نهفته در این کتابخانه را تشریح کرده است.
جالب اینجاست که همین مفاهیم پایه را میتوان در مسائلی فراتر از دیتاسنترها نیز به کار برد؛ از زمانبندی اتاقهای جلسات و توزیع تیکتهای پشتیبانی گرفته تا عملیات لجستیک و توزیع شبکه برق. در حقیقت هر جا که با تصمیمگیریهای مکرر برای چیدمان، قوانین پیچیده گروهبندی و مقیاسی عظیم روبهرو باشیم که حلکنندههای سنتی را به زانو درمیآورد، ابزار Rebalancer میتواند عصای دست مهندسان باشد.
مطالب مرتبط و پیشنهادی

ابزار امنیتی VulnHunter از انحصار کلود آزاد شد: شکار هوشمند باگها در هر محیط کدنویسی!
ابزار امنیتی محبوب VulnHunter که توسط شرکت Capital One توسعه یافته بود، با یک فورک جامعهمحور تازه از انحصار محیط Claude Code رها شد. این ابزار متنباز با رویکرد هکرهای واقعی کدهای پروژه را اسکن میکند و حالا توسعهدهندگان میتوانند ایجنتها و اسکیلهای آن را در هر محیط کدنویسی دلخواهی برای کشف و رفع تضمینی آسیبپذیریها به کار بگیرند.

کلود آنتروپیک وارد گوگل داکس و شیتس شد؛ ویرایش مستقیم اسناد بدون نیاز به کپیپیست!
شرکت آنتروپیک نسخه بتای عمومی Claude for Workspace را عرضه کرد تا کاربران بتوانند چتبات کلود را مستقیماً داخل گوگل داکس، شیتس و اسلایدز به کار بگیرند. با این قابلیت، بدون نیاز به کپیپیست مداوم میان تبهای مختلف مرورگر، میتوانید متنها را در لحظه اصلاح کنید، در شیتس فرمول بسازید و اسلایدهای حرفهای طراحی کنید.

شاهکار تازه گوگل دیپمایند برای گوشیها: جستوجوی هوشمند صدا، تصویر و ویدیو با مدل EmbeddingGemma 2
گوگل دیپمایند از مدل EmbeddingGemma 2 رونمایی کرد؛ یک مدل امبدینگ چندوجهی و سبک با ۷۴۰ میلیون پارامتر که پردازش همزمان متن، صدا، تصویر و ویدیو را مستقیماً روی گوشیهای هوشمند ممکن میسازد. این ابزار کاربردی با اجرای کاملاً آفلاین و اشغال کمتر از ۶۰۰ مگابایت رم، ضمن حفظ کامل حریم خصوصی کاربران، سرعت بازیابی و جستوجوی هوشمند اطلاعات را متحول میکند.
دیدگاه ها و گفتگوی تخصصی
نظرات خود را با جامعه مخاطبان وایر ای آی در میان بگذارید
هنوز دیدگاهی برای این مطلب ثبت نشده است
اولین نفری باشید که دیدگاه، تحلیل یا دیدگاه خود را درباره این موضوع با دیگران به اشتراک می گذارد.