Система распределения нагрузки на процессоры Shenango — как она работает

Технологии
Павел Игнатьев
19.08.2019
Количество просмотров
5116
Говорим о балансировщике нагрузки от инженеров MIT, который планируют использовать в ЦОД. В статье — о принципах работы и возможностях решения.

Цель разработки

Аналитики одного из крупных облачных провайдеров говорят, что мировые ЦОД используют треть имеющихся у них вычислительных ресурсов. В исключительных случаях этот показатель может вырастать до 60%. Из-за неэффективного расходования мощностей в машинных залах появляются так называемые серверы-зомби. Они не выполняют полезную работу (находятся в состоянии «комы») и лишь впустую расходуют электричество. По данным Uptime Institute, без работы стоит около 10 млн серверов (это 30% всех машин). На поддержание их работоспособности ежегодно уходит 30 млрд долларов.

Инженеры из Массачусетского технологического института (MIT) решили исправить ситуацию. Они разработали балансировщик нагрузки, который в теории повысит эффективность использования ресурсов процессоров до 100%. Система получила название Shenango.

Как работает балансировщик

Shenango — это Linux-библиотека на языке программирования C (есть биндинги на Rust и C++). Она мониторит буфер задач CPU и распределяет процессы между свободными ядрами.

В основе системы лежит алгоритм IOKernel. Он запускается на отдельном ядре процессора и управляет запросами к CPU, которые поступают по сетевому интерфейсу NIC. Для этих целей IOKernel использует фреймворк DPDK (Data Plane Development Kit). Фреймворк дает приложениям возможность «общаться» с сетевыми картами напрямую.

Когда процессору поступает новая задача, IOKernel самостоятельно выбирает, какому ядру (или ядрам) ее передать. При этом для каждого процесса выделяются основные ядра (guaranteed) и вспомогательные (burstable) — последние подключаются только в том случае, если количество запросов резко возрастает.

Алгоритм проверяет буфер задач с интервалом в 5 мкс. Он ищет «застрявшие» процессы, которые CPU уже долгое время не может обработать. Если таковые обнаруживаются, они сразу же назначаются свободным ядрам (или другим серверам в дата-центре). Приоритет отдается ядрам, на которых уже выполнялся аналогичный процесс и часть информации о котором осталась в кэше.

Чтобы повысить эффективность балансировки, Shenango также использует метод work stealing. Ядра, работающие с одним приложением, автоматически снимают друг с друга часть нагрузки, если выполняют свои задачи раньше остальных.

Общую схему работы алгоритма IOKernel и системы Shenango можно представить следующим образом:

Общая схема работы алгоритма IOKernel и системы Shenango

Код проекта и примеры приложений вы можете найти в официальном репозитории на GitHub.

Возможности

Разработчики говорят, что Shenango способен обрабатывать 5 млн запросов в секунду. Среднее время реакции при этом составляет 37 мкс. Эксперты ИТ-индустрии отмечают, что система поможет оптимизировать работу веб-приложений, например онлайн-магазинов. По статистике, секундная задержка при загрузке страницы снижает количество просмотров на 11%, что в дни распродаж может быть критично. Эффективное распределение нагрузки поможет обслужить большее количество клиентов.

Сейчас инженеры из MIT работают над устранением недостатков и расширением функциональности своего решения. Пока что Shenango не умеет работать с многопроцессорными NUMA-системами. В них чипы подключены к различным модулям памяти и не могут взаимодействовать друг с другом напрямую. Такой подход усложняет распределение нагрузки: IOKernel может контролировать работу отдельного кластера процессоров, но не все устройства сервера.

Кто еще разрабатывает балансировщики нагрузки на CPU

Не только в MIT занимаются разработкой систем распределения нагрузки на процессоры. В качестве еще одного примера можно привести систему Arachne — это библиотека C++ для Linux (код есть на GitHub, документацию по API можно найти на официальном сайте). Arachne рассчитывает, сколько ядер понадобится конкретному приложению, и выделяет необходимое количество при запуске соответствующего процесса.

Кто еще разрабатывает балансировщики нагрузки на CPU/ фото Brian Kostiuk Unsaplsh

Еще одним примером балансировщика может служить ZygOS — специализированная операционная система, которая использует структуры данных с общей памятью, NIC с несколькими очередями и межпроцессорные прерывания для распределения нагрузки между ядрами. Как и Shenango (в отличие от Arachne), решение также использует подход work stealing. Код проекта можно найти на GitHub.

Современные дата-центры становятся все крупнее. В мире уже построено более четырехсот гипермасштабируемых ЦОД. В ближайшее время их число вырастет еще на 30%. Технологии балансировки нагрузки позволят эффективнее расходовать вычислительные ресурсы. Поэтому решения подобные Shenango, ZygOS и Arachne будут становиться все более востребованными — уже сейчас их внедряют крупные корпорации.

Что еще почитать в нашем блоге по теме:

Средняя оценка: 0, всего оценок: 0
Поделиться

Только полезные материалы в нашей рассылке

Ошибка подписки

Похожие статьи

Технологии
Fujifilm и IBM создали новую магнитную ленту, способную вместить 580TB информации
21.12.2020
Количество просмотров
5027

Fujifilm и IBM создали новую магнитную ленту, способную вместить 580TB информации

Магнитная лента, которая фактически является одним из самых архаичных носителей, недавно получила масштабное обновление. Под катом поговорим о продукте, обсудим технические характеристики и возможную применимость в дата-центрах России и мира.
Тенденции
Зарубежное или локальное размещение данных в облаке: подводные камни
04.08.2016
Количество просмотров
3433

Зарубежное или локальное размещение данных в облаке: подводные камни

Федеральный закон от 21.07.2014 № 242-ФЗ, требующий обеспечить обработку персональных данных граждан РФ на территории РФ, затронул многие иностранные компании, заставив их задуматься о месте размещения данных. Однако не только законодательные инициативы должны заставлять руководство компании беспокоиться о том, где хранятся данные их пользователей и насколько эффективно используемое решение.
Истории успеха
Кейс, «Литера5» и их сервис Орфограмматика в облаке «ИТ-ГРАД»
15.06.2016
Количество просмотров
3360

Кейс, «Литера5» и их сервис Орфограмматика в облаке «ИТ-ГРАД»

Как часто вы допускаете ошибки, когда пишете текст? Вопрос грамотной подачи информации важен не только для журналиста, писателя или редактора, но и для отдельно взятой организации. Ошибка, опечатка или неграмотно составленное предложение в тексте сайта, блога, новостного интернет-портала может негативно сказаться на имидже компании в целом. На помощь в борьбе с безграмотностью приходит облачное решение «Литера5», о котором мы расскажем в этой статье.

Ваше обращение приняли

Скоро наш менеджер свяжется с вами.
А пока вы можете изучить интересные материалы в нашем блоге.

Подписка оформлена

Скоро отправим вам уведомление о новых материалах.