Meta Rebalancer: разбираем солвер для размещения задач и тестируем на дата-центрах
Rebalancer — это инструмент Meta для автоматического размещения задач по серверам. Внутри — шустрое C++-ядро и Python-обвязка, через которую описываются объекты, контейнеры, измерения (память, CPU и т.п.) и ограничения, а затем ставится цель — например, освободить конкретный хост. Для поиска решения доступны два бэкенда: быстрый локальный поиск и точный смешанно-целочисленный солвер HiGHS.
Автор собрал мини-дата-центр, «осушил» загруженный сервер и сравнил оба солвера на игрушечных моделях, синтетических кластерах и 60 опубликованных тестовых задачах из OR-Library. Каждый полученный план проверялся пересчётом фактического размещения, а не доверием флагам солвера — и это сразу вскрыло проблемы.
Из 24 решений флаг solved был True в 14 случаях, хотя память всё ещё превышала лимит. Локальный поиск с жёстким ограничением HARD возвращал нарушающий старт без единой ошибки, опечатки в ключах спецификации молча игнорировались, а неверные имена enum просто отвергались. Замеры проводились на Apple M4 с macOS-колесом; на Linux-колесе в Colab тайминги могут отличаться, так что результаты стоит перепроверять на своём железе.