Нов товароразпределител на CPU от MIT

Системата Shenango е планирана за използване в дата центровете.

Нов товароразпределител на CPU от MIT
/ фото 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 е организирана като кръгъл буфер. На всеки пет микро секунди алгоритъмът проверява дали всички задачи, назначени на ядро, са изпълнени. За целта той сравнява текущото местоположение на «главата» на буфера с предишната позиция на «опашката». Ако се окаже, че опашката вече е била в опашката по време на предишната проверка, системата отбелязва претоварване на буфера и отделя допълнително ядро за процеса.

При разпределението на натоварването приоритет се дава на ядрата, на които подобен процес е изпълняван преди и частично е останал в кеша, или на всякакви неактивни ядра.

Нов товароразпределител на CPU от MIT

Shenango допълнително използва подхода кражба на работаЯдра, назначени за работа на едно приложение, следят за броя на задачите помежду си. Ако едно ядро завърши списъка си с задачи по-рано от другите, то "сваля" част от натоварването от съседите.

Предимства и недостатъци

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

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

Технологията все още има недостатъци - не поддържа многопроцесорни NUMA-системи, при които чиповете са свързани с различни модули памет и не "общуват" помежду си. В този случай IOKernel може да регулира работата на отделна група процесори, но не и на всичките чипове на сървъра.

Нов товароразпределител на CPU от MIT
/ фото Tim Reckmann CC BY

Подобни технологии

Сред другите системи за баланс на натоварването на процесорите можем да отличим Arachne. Тя изчислява колко ядра ще са необходими на приложението в момента на стартиране и разпределя процесите съответно. Според оценките на авторите, максималното забавяне на работата на приложението в Arachne е около 10 хиляди микросекунди.

Технологията е реализирана под формата на C++ библиотека за Linux, а нейният изходен код е наличен на GitHub.

Още един инструмент-балансировчик - ZygOS. Както и Shenango, технологията използва метода work stealing за переразпределение на процесите. Според данните на авторите на ZygOS, средното забавяне в работата на приложенията при използването на инструмента е около 150 микросекунди, а максималното - около 450 микросекунди. Кодът на проекта също е на разположение с отворен достъп.

Изводи

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

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

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster