Linux хорошо подходит для большинства задач, но для того, чтобы справлялся еще лучше ‑требуется настройка ядра, а это всегда непросто. У ByteDance есть предложение сделать это проще.
Ричмонд, Вирджиния: На «Linux Plumbers Conference» — встрече ведущих разработчиков ядра Linux, доступной только по приглашениям, инженер ядра Linux ByteDance Конг Ван предложил использовать искусственный интеллект (ИИ) и машинное обучение (ML) для настройки ядра Linux для максимальные результаты при конкретных нагрузках.
В общем и целом, ядро Linux прекрасно справляется с большинством задач. Но чтобы получить максимальную отдачу от него для конкретных задач — нужно отконфигурировать его, установив определенные параметры для достижения наилучших результатов. Но есть одна небольшая проблема — Существуют тысячи параметров. Из‑за которых даже для эксперта по ядру Linux, настройка их для достижения оптимальной производительности — долгая и тяжелая работа. И, конечно же, разные рабочие нагрузки требуют разных настроек в наборе параметров ядра Linux. Таким образом, как сказал Ван: «В крупных центрах обработки данных, таких как ByteDance, стало практически невозможно вручную настраивать параметры ядра Linux для сотен различных рабочих нагрузок».
Могут помочь такие инструменты, как System Management Interface Tool (SMIT), Sysctl и TuneD. Но они просто позволяют вам легче вносить изменения в настройку ядра вручную. Существуют также «умные» программы, такие как BayOp от Red Hat, которые используют машинное обучение специально для оптимизации эффективности сетевых приложений, но это не программа AI/ML общего назначения; он предназначен для определенной настройки Linux.
ByteDance работает над первой попыткой автоматизировать весь процесс настройки параметров ядра Linux с минимальными инженерными усилиями. В частности, ByteDance работает над настройкой управления памятью в ядре. ByteDance обнаружила, что с помощью алгоритмов машинного обучения, таких как байесовская оптимизация, автоматическая настройка может превзойти даже большинство инженеров ядра Linux.
Почему? Что ж, идея, как иронично выразился Ван, «не в том, чтобы оставить инженеров ядра Linux без работы». Нет, цель состоит в том, чтобы «освободить инженеров‑людей от необходимости настройки производительности для каждой отдельной рабочей нагрузки. При этом принимать более обоснованные решения на основе исторических данных, с которыми люди часто сталкиваются. И, наконец, что не менее важно, найти лучшие решения, чем те, которые мы придумываем, используя наши текущие методы проб и ошибок, эвристические методы.
Как? Система автонастройки предназначена для автоматической настройки внутренних параметров ядра Linux в зависимости от конкретной рабочей нагрузки и конфигурации оборудования. Такая динамическая настройка обеспечивает оптимальную производительность, решая давнюю проблему сообщества Linux, связанную с ручной настройкой ядра для конкретных сценариев. Для этого платформа AI/ML использует несколько алгоритмов, таких как байесовская оптимизация, генетический алгоритм и алгоритм имитации отжига(эволюционный алгоритм).
Результат?
Динамическая оптимизация: система постоянно отслеживает производительность ядра, внося в реальном времени корректировки таких настроек, как масштабирование частоты процессора и управление памятью.
Повышенная эффективность. За счет оптимизации использования ресурсов система автонастройки значительно повышает эффективность систем на базе ядра Linux, особенно в средах с различными рабочими нагрузками.
Удобный интерфейс: система включает в себя удобный интерфейс, позволяющий даже тем, у кого ограниченные технические знания, воспользоваться преимуществами повышенной производительности ядра.
Настраиваемые параметры: опытные пользователи могут настроить параметры автонастройки, адаптируя систему к своим конкретным потребностям.
Пока еще рано, но ByteDance уже добился определенного успеха. Например, используя DAMON, подсистему ядра Linux для мониторинга и оптимизации доступа к памяти, они смогли найти лучшую схему для приложения MySQL. Это было сделано путем запуска различных схем DAMON и сравнения их производительности. Они обнаружили, что могут сократить использование памяти приложением на 30%. Для массовых приложений это реальная экономия.
В другом случае ByteDance удалось оптимизировать задержку сети HTTP на сервере NGINX за счет оптимизации настройки 16 параметров sysctl ядра. В лучшем случае настройка ML позволила повысить производительность сети NGNIX на 12% по сравнению с экспертной ручной настройкой. Опять же, это значительное улучшение.
ByteDance не утверждает, что ее подход AI/ML подойдет для любой задачи по настройке Linux, но Ван сказал: «Хотя существуют ограничения, мы считаем, что машинное обучение ядра не только возможно, но и необходимо».
Что я думаю? Я думаю, что это потенциально меняет правила игры для приложений Linux. Упрощая оптимизацию ядра, Linux станет более доступным и эффективным для более широкого круга пользователей и приложений. В частности, я вижу, что система автонастройки повышает производительность практически всех серверов, облачных вычислений и приложений центров обработки данных.
Дополнительные материалы:
Danon - (ссылка - Danon )
Искусственный интеллект (ИИ) и машинное обучение (МО) для настройки ядра Linux(PDF) - ( ссылка )
Интерфейс управления системой (SMIT )- ( ссылка )
Sysctl - ( ссылка )
Tuned -( ссылка )
BayOp - ( ссылка )
Байесовская оптимизация- ( ссылка )
Алгоритм имитации отжига(Эволюционный алгоритм) (PDF) - ( ссылка )
Комментарии (8)
Factivist
19.11.2023 18:53Интересно бы сравнить с OpenEuler A-Tune
https://www.openeuler.org/en/other/projects/atune/
Imp5
19.11.2023 18:53+4Как можно в 28 лет, постоянно работая с текстами, так «на отвали» эти тексты оформлять?
AlexChroot Автор
19.11.2023 18:53-3Делаю ставку на содержание .
omgiafs
19.11.2023 18:53+3Именно поэтому рекомендуете производителя йогуртов вместо тулзы по настройке?
petropavel
А пруфы хоть какие-то будут? Или мы так просто должны поверить, что можно подкрутить настройки ядра и MySQL будет использовать на треть меньше памяти?
Я знаю, что перевод, и что в оригинале пруфов нет. Стоило бы найти и приложить, если они есть. Или не переводить, если это уж совсем полная лажа.
iig
Ну как бы давно есть mysqltuner, который анализирует работу реальной базы с реальными данными, и выдает рекомендации что крутить в my.cnf. Памяти есть меньше не будет, а вот с эффективностью кеширования можно чего-то и выйграть.
saboteur_kiev
да, но это же не АИ =)
petropavel
c ИИ тоже есть, OtterTune. И вообще, это не так важно, раз можно подкрутить руками, то я готов поверить, что ИИ тоже может такое посоветовать.
Но вот настройками ядра уменьшить потребление памяти на 30%? Не ну строго говоря можно, задать там где-то, чтоб объём памяти, доступный пользовательским процессам, был меньше на треть — и хоба, MySQL жрёт меньше памяти. Потому что больше ему тупо не дадут. Надеюсь, там не это имелось в виду