Новый балансировщик нагрузки на CPU от MIT

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Систему Shenango планируют использовать в дата-центрах.


/ фото Marco Verch CC BY

По данным одного из провайдеров, дата-центры используют всего 20–40% доступных вычислительных мощностей. При высоких нагрузках этот показатель может достигать 60%. Подобное распределение ресурсов ведет к появлению так называемых «зомби-серверов». Это машины, которые большую часть времени простаивают, впустую расходуя электроэнергию. Сегодня 30% серверов в мире стоят без работы, потребляя электричество на $30 млрд в год.

Бороться с неэффективным расходованием вычислительных ресурсов решили в MIT.

Команда инженеров разработала систему балансировки нагрузки на процессоры под названием Shenango. Её цель — мониторить состояние буфера задач и перераспределять «застрявшие» процессы (которые не могут получить процессорное время) на свободные машины.

Как работает Shenango


Shenango представляет собой Linux-библиотеку на языке C с байндингами Rust и C++. Код проекта и тестовые приложения опубликованы в репозитории на GitHub.

Основу решения составляет алгоритм IOKernel, который запускается на выделенном ядре мультипроцессорной системы. Он управляет запросами к CPU с помощью фреймворка DPDK, который позволяет приложениям напрямую взаимодействовать с сетевыми устройствами.

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

Очередь запросов IOKernel организована в виде кольцевого буфера. Каждые пять микросекунд алгоритм проверяет, все ли задачи, назначенные ядру, выполнены. Для этого он сравнивает текущее местоположение «головы» буфера с предыдущей позицией его «хвоста». Если оказывается, что хвост уже был в очереди на момент предыдущей проверки, система отмечает перегрузку буфера и выделяет под процесс дополнительное ядро.

При распределении нагрузки приоритет отдаётся ядрам, на которых такой же процесс выполнялся раньше и частично остался в кэш-памяти, или любым бездействующим ядрам.



Shenango дополнительно использует подход work stealing. Ядра, выделенные для работы одного приложения, следят за количеством задач друг у друга. Если одно ядро заканчивает свой список заданий раньше остальных, то оно «снимает» часть нагрузки с соседей.

Достоинства и недостатки


По словам инженеров из MIT, Shenango способен обрабатывать пять миллионов запросов за секунду и поддерживать среднее время реакции в 37 микросекунд. Специалисты утверждают, что в некоторых случаях технология способна повысить коэффициент использования процессоров в дата-центрах до 100%. В результате операторы ЦОД смогут экономить на покупке и обслуживании серверов.

Потенциал решения отмечают и специалисты из других университетов. По мнению профессора из корейского института, система из MIT поможет сократить задержки в работе веб-сервисов. Например, она пригодится в работе онлайн-магазинов. В дни распродаж даже секундная задержка загрузки страницы приводит к снижению числа просмотров сайта на 11%. Оперативное распределение нагрузки поможет обслужить больше клиентов.

У технологии пока есть недостатки — она не поддерживает многопроцессорные NUMA-системы, в которых чипы подключены к разным модулям памяти и не «общаются» между собой. В этом случае IOKernel может регулировать работу отдельной группы процессоров, но не все чипы сервера.


/ фото Tim Reckmann CC BY

Аналогичные технологии


Среди других систем балансировки нагрузки на процессоры можно выделить Arachne. Она рассчитывает, сколько ядер понадобится приложению в момент его запуска, и распределяет процессы в соответствии с этим показателем. По оценкам авторов, максимальная задержка работы приложения в Arachne составляет около 10 тыс. микросекунд.

Технология реализована в виде библиотеки C++ для Linux, а её исходный код есть на GitHub.

Ещё один инструмент-балансировщик — ZygOS. Как и Shenango, технология использует для перераспределения процессов метод work stealing. По данным авторов ZygOS, средняя задержка в работе приложений при использовании инструмента составляет около 150 микросекунд, а максимальная — около 450 микросекунд. Код проекта также находится в открытом доступе.

Выводы


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



Посты из Первого блога о корпоративном IaaS:

  • Как повысить энергоэффективность дата-центра
  • Что нужно знать о PCI DSS: обзор стандарта
  • Мир до и после: как изменилась жизнь с наступлением DNS Flag Day
  • Как IaaS помогает развивать бизнес: три задачи, которые решит облако
  • Тестирование дисковой системы в облаке: основы и советы
  • 9 полезных советов для плавного перехода в облако
  • IaaS: Первые шаги после аренды облачной инфраструктуры
Источник: https://habr.com/ru/company/it-grad/blog/447058/


Интересные статьи

Интересные статьи

Это первая статья в моей серии статей с обзором изменений в Scala 3. Давайте начнем с наиболее противоречивых нововведений: опциональных фигурных скобок и нового синтаксиса для управл...
Часто от программистов PHP можно услышать: «О нет! Только не „Битрикс“!». Многие специалисты не хотят связываться фреймворком, считают его некрасивым и неудобным. Однако вакансий ...
Современный PHP совсем не тот, что был во времена пятой версии. Обидно до сих пор встречать хейтеров языка, которые обвиняют его по-старинке, не зная 7-ю версию. Надеемся, мы и не встретим их на ...
В MIT разработали архитектуру нового фотонного процессора. Он повысит эффективность работы оптических нейросетей в тысячу раз, по сравнению с аналогичными устройствами. Чип сократит объемы эл...
Некоторое время назад мне довелось пройти больше десятка собеседований на позицию php-программиста (битрикс). К удивлению, требования в различных организациях отличаются совсем незначительно и...