Нов балансьор на натоварването на процесора от MIT

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

Нов балансьор на натоварването на процесора от MIT
/ снимка Марко Върч CC BY

Според един от доставчиците центрове за данни употребяван само 20–40% от наличната изчислителна мощност. При високи натоварвания този индикатор може да достигне 60%. Това разпределение на ресурсите води до появата на така наречените „зомби сървъри“. Това са машини, които стоят празни през повечето време, губейки енергия. Днес 30% от сървърите в света са без работа, консумирайки електроенергия на стойност 30 милиарда долара годишно.

MIT реши да се бори с неефективното използване на изчислителните ресурси.

Инженерен екип разработи система за балансиране на натоварването на процесора, наречена Shenango. Целта му е да следи състоянието на буфера на задачите и да преразпределя блокираните процеси (които не могат да получат процесорно време) към свободни машини.

Как работи Shenango

Shenango е Linux библиотека на C с Rust и C++ свързвания. Кодът на проекта и тестовите приложения са публикувани в хранилища на GitHub.

Решението се основава на алгоритъма IOKernel, който работи на специално ядро ​​на многопроцесорна система. Той управлява заявките на процесора с помощта на рамка DPDK, което позволява на приложенията да комуникират директно с мрежовите устройства.

IOKernel решава на кои ядра да делегира конкретна задача. Алгоритъмът също така решава колко ядра ще са необходими. За всеки процес се определят основните ядра (гарантирани) и допълнителни (burstable) - последните се стартират в случай на рязко увеличаване на броя на заявките към процесора.

Опашката за заявки на IOKernel е организирана като пръстен буфер. На всеки пет микросекунди алгоритъмът проверява дали всички задачи, възложени на ядрото, са изпълнени. За да направи това, той сравнява текущото местоположение на главата на буфера с предишната позиция на опашката му. Ако се окаже, че опашката вече е била в опашката по време на предишната проверка, системата отбелязва претоварването на буфера и разпределя допълнително ядро ​​за процеса.

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

Нов балансьор на натоварването на процесора от MIT

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

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

На според инженери от MIT, Shenango е в състояние да обработва пет милиона заявки в секунда и да поддържа средно време за реакция от 37 микросекунди. Експертите твърдят, че в някои случаи технологията може да увеличи степента на използване на процесорите в центровете за данни до 100%. В резултат на това операторите на центрове за данни ще могат да спестят от покупката и поддръжката на сървъри.

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

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

Нов балансьор на натоварването на процесора от MIT
/ снимка Тим Рекман CC BY

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

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

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

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

Данни

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

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

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

Добавяне на нов коментар