Настройка ядра Linux с помощью ИИ, согласно ByteDance
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 работает над настройкой управления памятью Linux. 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 станет более доступным и эффективным для более широкого круга пользователей и приложений. В частности, я вижу, что система автонастройки повышает производительность практически всех серверов, облачных вычислений и приложений центров обработки данных.