Досягнення більшої ефективності для швидкої роботи Центру обробки даних

Алгоритм та програмна система Shenango підвищують ефективність центру обробки даних для операцій на мікросекундній швидкості, покращуючи розподіл обробки даних за ядрами ЦП, знижуючи затримку хвоста та забезпечуючи продуктивність обладнання.

Сучасні центри обробки даних з'їдають і витрачають багато енергії, відповідаючи на запити користувачів максимально швидко, із затримкою всього кілька мікросекунд. Нова система, розроблена дослідниками MIT, підвищує ефективність високошвидкісних операцій за рахунок кращого розподілу чутливої на час обробки даних між ядрами центрального процесора (ЦП) та забезпечення продуктивної роботи обладнання.

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

Поточні методи зменшення затримок хвоста залишають відкритими тонни ядер ЦП для швидкої обробки запитів. Але це означає, що ядра більшу частину часу не діють, а сервери продовжують використовувати енергію тільки для того, щоб залишатися включеними. Центри обробки даних можуть містити сотні тисяч серверів, тому навіть невеликі покращення ефективності кожного сервера можуть заощадити мільйони доларів.

Крім того, деякі системи перерозподіляють ядра між додатками залежно від робочого навантаження. Але це відбувається за мілісекунди - близько однієї тисячної бажаної швидкості для сьогоднішніх запитів, що швидко змінюються. Занадто довге очікування також може погіршити продуктивність програми, оскільки будь-яка інформація, яка не була оброблена до відведеного часу, не надсилається користувачеві.

У документі, який буде представлений на конференції USENIX з розробки та впровадження мережевих систем наступного тижня, дослідники розробили швидшу систему розподілу ядра, що називається Shenango, яка скорочує затримки у хвостовій частині та одночасно забезпечує високу ефективність. По-перше, новий алгоритм визначає, які програми намагаються обробити дані. Потім програмний компонент виділяє незайняті ядра для обробки робочого навантаження програми.

"У центрах обробки даних існує компроміс між ефективністю та затримкою, і вам дійсно потрібно перерозподіляти ядра з більш тонкою гранулярністю, ніж кожну мілісекунду", - говорить перший автор Емі Оустерхаут, аспірант Лабораторії комп'ютерних наук та штучного інтелекту (CSAIL). Shenango дозволяє серверам "керувати операціями, які відбуваються в дуже короткі терміни і роблять це ефективно".

Економія енергії та витрат залежатиме від центру обробки даних, залежно від розміру та робочих навантажень. Але загальна мета - підвищити завантаження ЦП центру обробки даних, щоб кожне ядро було ефективно використано. Найкращі показники використання ЦП сьогодні становлять близько 60 відсотків, але дослідники кажуть, що їхня система потенційно може підвищити цей показник до 100 відсотків.

«Сьогодні використання ЦОДу досить низьке», - каже співавтор Адам Белей, доцент кафедри електротехніки та комп'ютерних наук та дослідник CSAIL. Це дуже серйозна проблема, яку не можна вирішити в одному місці в центрі обробки даних. Але ця система є одним із найважливіших факторів, що сприяють зростанню використання».

До роботи над документами приєдналися Хастер Балакрішнан, професор кафедри електротехніки та комп'ютерних наук Fujitsu, а також аспіранти CSAIL Джонатан Беренс та Джошуа Фрід.

Ефективне виявлення заторів

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

Першим нововведенням системи є новий алгоритм виявлення перевантажень. Кожні п'ять мікросекунд алгоритм перевіряє пакети даних, поставлені в чергу для обробки для кожної програми. Якщо пакет все ще очікує від останнього спостереження, алгоритм зазначає, що є затримка принаймні 5 мікросекунд. Він також перевіряє, чи очікують виконання будь-які обчислювальні процеси, які називають потоками. Якщо так, система вважає, що це «перевантажене» додаток.

Це видається досить простим. Але структура черги важлива виявлення перевантаженості мікросекундного масштабу. Традиційне мислення означало, що програма перевіряла тимчасову мітку кожного поставленого в чергу пакета даних, що займало б надто багато часу.