Новы балансавальнік нагрузкі на CPU ад MIT

Сістэму Shenango плануюць выкарыстоўваць у дата-цэнтрах.

Новы балансавальнік нагрузкі на CPU ад MIT
/ фота Марка Verch CC BY

Па дадзеных аднаго з правайдэраў, дата-цэнтры выкарыстоўваюць усяго 20-40% даступных вылічальных магутнасцяў. Пры высокіх нагрузках гэты паказчык можа дасягаць 60%. Падобнае размеркаванне рэсурсаў вядзе да з'яўлення так званых "зомбі-сервераў". Гэта машыны, якія большую частку часу прастойваюць, марна выдаткоўваючы электраэнергію. Сёння 30% сервераў у свеце стаяць без працы, Спажываючы электрычнасць на $ 30 млрд у год.

Змагацца з неэфектыўным расходаваннем вылічальных рэсурсаў вырашылі ў MIT.

каманда інжынераў распрацавала сістэму балансавання нагрузкі на працэсары пад назвай Shenango. Яе мэта - маніторыць стан буфера задач і пераразмяркоўваць «якія захраснулі» працэсы (якія не могуць атрымаць працэсарны час) на вольныя машыны.

Як працуе Shenango

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

Аснову рашэння складае алгарытм IOKernel, які запускаецца на выдзеленым ядры мультыпрацэсарнай сістэмы. Ён кіруе запытамі да CPU з дапамогай фрэймворка ДПДК, Які дазваляе прыкладанням напрамую ўзаемадзейнічаць з сеткавымі прыладамі.

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

Чарга запытаў IOKernel арганізавана ў выглядзе кальцавога буфера. Кожныя пяць мікрасекунд алгарытм правярае, ці ўсе задачы, прызначаныя ядру, выкананы. Для гэтага ён параўноўвае бягучае месцазнаходжанне "галавы" буфера з папярэдняй пазіцыяй яго "хваста". Калі аказваецца, што хвост ужо быў у чарзе на момант папярэдняй праверкі, сістэма адзначае перагрузку буфера і выдзяляе пад працэс дадатковае ядро.

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

Новы балансавальнік нагрузкі на CPU ад MIT

Shenango дадаткова выкарыстоўвае падыход work stealing. Ядры, выдзеленыя для працы аднаго прыкладання, сочаць за колькасцю задач сябар у сябра. Калі адно ядро ​​заканчвае свой спіс заданняў раней за астатніх, то яно "здымае" частку нагрузкі з суседзяў.

Вартасці і недахопы

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

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

У тэхналогіі пакуль ёсць недахопы - яна не падтрымлівае шматпрацэсарныя НУМА-сістэмы, у якіх чыпы падлучаныя да розных модуляў памяці і не "маюць зносіны" паміж сабой. У гэтым выпадку IOKernel можа рэгуляваць працу асобнай групы працэсараў, але не ўсе чыпы сервера.

Новы балансавальнік нагрузкі на CPU ад MIT
/ фота Цім Рэкман CC BY

Аналагічныя тэхналогіі

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

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

Яшчэ адзін інструмент-балансавальнік - ZygOS. Як і Shenango, тэхналогія выкарыстоўвае для пераразмеркавання працэсаў метад work stealing. Па дадзеных аўтараў ZygOS, сярэдняя затрымка ў працы прыкладанняў пры выкарыстанні прылады складае каля 150 мікрасекунд, а максімальная – каля 450 мікрасекунд. Код праекту таксама знаходзіцца ў адкрытым доступе.

Высновы

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

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

Крыніца: habr.com

Дадаць каментар