[Перевод] Настройка ядра Linux с помощью ИИ, согласно ByteDance (Перевод)
![71f8fb837a761dea604edc1f0f8983f5.jpg](https://habrastorage.org/getpro/habr/upload_files/71f/8fb/837/71f8fb837a761dea604edc1f0f8983f5.jpg)
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) — (ссылка)