Linux предоставляет разработчикам и инженерам возможность «настраивать» свою работу, предоставляя тысячи отдельных параметров, которые могут регулировать способ управления ресурсами ядром с открытым исходным кодом. Этот тип настройки позволяет быстрее повысить производительность без перекомпиляции ядра, но это по-прежнему сложная задача даже для самых опытных программистов FOSS.

Настройка ядра — чрезвычайно сложная задача, поэтому предпринимаются попытки использовать искусственный интеллект для выполнения этой работы вместо людей-разработчиков. Китайская технологическая компания ByteDance недавно объявила о результатах испытаний автонастройки ядра Linux — решения на основе искусственного интеллекта, которое позволяет инженерам-людям принимать более обоснованные решения по настройке путем анализа исторических данных — задача, которую люди обычно считают сложной.

Достижение оптимальной производительности Linux посредством настройки — это трудоемкий процесс, требующий обширных экспериментов со стороны экспертов Linux. Различные рабочие нагрузки требуют разных методов настройки для разных наборов параметров ядра. Разработчик ByteDance Конг Ван отметил, что вручную настроить ядро ​​Linux для «сотни» различных рабочих нагрузок практически невозможно в крупных центрах обработки данных, подобных тем, которые использует компания.

Хотя инструменты, предназначенные для упрощения настройки ядра, существуют, они обеспечивают определенный тип оптимизации. Подход ByteDance направлен на запуск первого автоматизированного решения в области настройки ядра — технологии, которая может охватить все параметры настройки Linux с минимальными инвестициями в разработку.

Команда Ванга уделяет особое внимание оптимизации системы управления памятью Linux. Используя алгоритмы машинного обучения, такие как байесовская оптимизация, компания обнаружила, что автоматическая настройка параметров может достичь лучших результатов, чем обычно достигают большинство инженеров ядра Linux.

Инструмент автонастройки ByteDance предназначен для автоматической настройки внутренних настроек Linux в зависимости от конкретных рабочих нагрузок и конфигураций оборудования. Ядра динамически настраиваются для обеспечения оптимальной производительности в любой ситуации, устраняя давнюю необходимость вручную настраивать ядра для каждого вычислительного экземпляра.

В большинстве случаев автоматические настройки Вана и его коллег на основе искусственного интеллекта оказались эффективными. По данным ByteDance, алгоритмы машинного обучения могут динамически оптимизировать систему, отслеживая производительность ядра в режиме реального времени, и повышать эффективность за счет оптимизации использования ресурсов. Система искусственного интеллекта также имеет удобный интерфейс, позволяющий пользователям с ограниченными техническими знаниями получать выгоду от более удобного ядра. В то же время продвинутые пользователи могут настроить параметры автоматической регулировки.

ByteDance утверждает, что алгоритмы машинного обучения могут сократить использование памяти приложением на 30% или оптимизировать задержку сети HTTP на серверах NGINX, что приводит к повышению производительности сети на 12% по сравнению с ручной настройкой. В сценариях облачных вычислений и центров обработки данных эти улучшения могут привести к значительной экономии затрат и оптимизации производительности. Разработчики признают, что автоматическая настройка ядра с помощью машинного обучения не будет работать во всех случаях, но ожидают, что она станет все более необходимой.

Посетите документацию, чтобы узнать больше:

https://lpc.events/event/17/contributions/1520/attachments/1152/2582/Linux%20Kernel%20Autotuning.pdf