Microsoft оптимизирует ядро Linux для серверных ARM
T-Rex
Тираннозавр Рекс

На конференции Linux Plumbers Conference 2020 разработчики Microsoft рассказали о своем экспериментальном проекте — оптимизации ядра Linux для серверных ARM-процессоров.

С докладом выступил главный менеджер по разработке программного обеспечения Ян Бирман.

По словам специалиста, проект стартовал по внутреннему запросу компании. Linux уже используется в проектах Azure Cloud, Azure Sphere и Windows Subsystem for Linux. Перед командой Бирмана поставили задачу максимизировать производительность облачного сервиса на Linux при использовании процессоров с архитектурой ARM или x86 с 64-битной разрядностью. Разработчикам позволили скомпилировать ядро для операционной системы с собственными параметрами и флагами.

Исходный дистрибутив — Ubuntu 19.10 с предустановленными GCC 9.2.1, binutils 2.33 и kernel 5.3. Процессор сервера — 64-битный ARM Marvell Thunder X2. После мозгового штурма команда решила использовать оптимизацию LTO и PGO для сборки ядра.

Оптимизация профилирования (PGO или FDO) и оптимизация времени связи (LTO или LTCG) существенно замедляют процесс сборки и требует больше оперативной памяти для работы компилятора, но в теории дают прирост скорости выполнения команд на 10-20%. PGO редко используется разработчиками, а LTO не так давно стала применяться для сборки ядер и других пакетов. Ранее разработчики опасались использовать оптимизацию времени связи из-за проблем совместимости в компиляторах GCC и LLVM. Команда Бирмана обратилась за помощью к опытному разработчику ядра Linux Энди Клину, который выпустил патч для корректной работы LTO с ARM-процессорами. Чтобы заставить работать PGO, разработчики изучили документацию и методом проб и ошибок добились стабильной работы.

Завершив сборку ядра, команда протестировала производительность на резидентной системе управления базами данных класса NoSQL с открытым исходным кодом redis. После выполнения различных команд разработчики отчитались о приросте скорости выполнения команд на 5-20%. Данные получены из внутреннего бенчмарк теста redis.


Кстати, не так давно Microsoft выпустила обновление KB4566116 для Windows 10. Апдейт добавляет в 1909 и 1903 версии ОС поддержку подсистемы Windows Subsystem for Linux 2 (WSL 2). Это дает возможность использовать полноценное ядро Linux. Оно в WSL2 не является частью Windows по умолчанию, а загружается динамически и обновляется посредством встроенных в ОС инструментов.

Что еще почитать по теме

T-Rex 27 мая 2021

Уведомление об обработке персональных данных в Роскомнадзор

Кому необходимо подать уведомление в реестр операторов персональных данных. В 152-ФЗ широкое определение обработки. Практически любое действие с персональными данными (далее – ПДн) – обработка.
T-Rex 27 мая 2021
Ульяна Малышева 25 сентября 2020

Как дата-центры снижают негативное воздействие на природу

Дата-центры потребляют 3-5% всего электричества планеты, а в некоторых странах, например в Китае, этот показатель достигает 7%. Электричество нужно центрам обработки данных в режиме 24/7, чтобы обеспе…
Ульяна Малышева 25 сентября 2020

Новое в блоге

Владимир Туров 18 сентября 2021

Разбираем редкого зверя от Nvidia — DGX A100

Крупные IT-компании располагают дорогими «игрушками», которые скрыты от взоров большинства пользователей. Сегодня мы приоткроем завесу тайны и расскажем про систему, которая оптимизирована для работы …
Владимир Туров 18 сентября 2021
Андрей Зайцев 8 сентября 2021

Продуктовый дайджест: новые серверы, Selectel Connect и обновления «Облачной платформы»

У нас обновления в конфигурациях серверов, кластерах Kubernetes и разделах базы знаний. А еще обратите внимание на сервис Selectel Connect. В конце дайджеста — анонс конференции по ML и записи митапов…
Андрей Зайцев 8 сентября 2021
Ульяна Малышева 12 августа 2021

RHVoice Lab: как серверы помогают создавать голоса для синтезаторов речи

В этом году Selectel стал поддерживать некоммерческий проект RHVoice Lab — лабораторию по созданию новых голосов для одноименного отечественного синтезатора речи. Его особенность в том, что синтезатор…
Ульяна Малышева 12 августа 2021
Ульяна Малышева 11 августа 2021

Продуктовый дайджест: автомасштабирование в Managed Kubernetes и две услуги в бете

Запустили две услуги в бете — «Файловое хранилище» и «Бэкапы по расписанию», реализовали автомасштабирование нод в Managed Kubernetes, а также добавили возможность арендовать виртуальные серверы с гар…
Ульяна Малышева 11 августа 2021