- PVSM.RU - https://www.pvsm.ru -

Вокруг ARM-процессоров много шума. Популярность конкурента x86 растет с каждым годом — появляются процессоры как в десктопном, так и в серверном сегментах. Мы не смогли пройти мимо перспективной технологии и хорошо изучили ARM, чтобы добавить сервер [1] в линейку выделенных серверов. В этой подборке вы узнаете о результатах тестирования ARM-процессора Ampere Altra, решении проблем у неадаптированной сборки Arch Linux и о будущем ARM в серверном сегменте. Если хотите глубже погрузиться в тему — вам под кат!
У процессоров на базе x86 закрытые решения: невозможно получить доступ к информации об архитектуре и изменить существующую конфигурацию. ARM же, по сути, только ядро, причем в виде документации. Пользователь покупает систему команд и получает рекомендации, как и с какими конвейерами, системами питания и драйверами внешних интерфейсов ее использовать. А после — выбирает технический процесс и производителя. По сути, ARM – это некоторое спасения компания от вендорлока.
Узнайте больше о развитии платформ → [2]
Серверные процессоры на базе ARM появляются не так массово, как чипы для мобильных устройств. Однако сейчас технологические компании вкладываются в разработку собственного оборудования. Так, Ampere активно продвигает свои процессоры, которые догоняют по характеристикам Graviton от AWS. Google и Microsoft переходят на разработку собственных чипов, снижая свою зависимость от Intel, а Amazon и Alibaba утверждают, что к 2025 году 25% всех новых инстансов будут на их собственных ARM-процессорах.

Несмотря на то, что сегодня готовые решение на ARM только появляются, спрос на них растет.
Проблемы с версиями VM и библиотек под ARM. Один из клиентов Selectel, который тестировал ARM, столкнулся в отсутствует в Arch библиотеки libc, которая поддерживает C++20, тогда как Arch на x86 содержит правильную библиотеку. Вопрос решили переходом на Ubuntu.
Поведение видеокарт с ARM нестабильно. Мы сталкивались с нестабильным поведением видеокарт и до конца не понимаем, как это решить. Поэтому пока клиенты с видеокартами останутся на x86.
О других особенностях и результатах клиентских тестов читайте по ссылке → [2]

Чтобы ответить на этот вопрос, мы взяли на изучение сервер GIGABYTE E252-P30 с 80-ядерным процессором Ampere Altra. Хотели убедиться, насколько ARM отвечает заявленным характеристикам, поэтому протестировали его и сравнили с сервером на процессоре от AMD (точнее на двух CPU) — c 64 ядрами в сумме.
В Selectel Lab [3] мы не только тестируем железо, сравнивая заявленные характеристики с реальными, но и выясняем, насколько оборудование встраивается в общую систему дата-центров Selectel. Изучаем, получится ли у нас добавить необходимые нам автоматизации (например, установка ОС) и будет ли оборудования эффективно с точки зрения потребления энергии.
Мы провели тест на производительность с помощью Geekbench 5. На сервер решил установить Ubuntu, так как это наиболее частая в использовании ОС для ARM. В методиках испытаний использовали Ubuntu 22.04.01 LTS 5.15.0-50-generic aarch64 — свежий дистрибутив Ubuntu под архитектуру aarch64.

Мы выяснили, что в однопоточном режиме процессор выдает низкие результаты. Зато в мультипоточном демонстрирует высокую производительность. Так, ARM-процессор будет полезен в высокопроизводительных вычислениях, если для клиента это основная задача.
| Процессор | Кол-во ядер/ потоков | Base/Max частота, ГГц | Single-Core Score | Multi-Core Score |
| Ampere Altra Q80-30 | 80/80 | 1.00/3.00 | 883 | 42374 |
| 2x AMD EPYC 7513 | 64/128 | 2.60/3.65 | 1299 | 32377 |
Результаты тестирования Geekbench 5

Результат в режиме Single-core и Multi-core
В Multi-core режиме ARM-процессор обгоняет x86 по всем критериям. Особенно это заметно в параметрах с параллелизацией задач. Тут работает закон «чем больше ядер — тем лучше». При этом предпочтение отдаются физическим, а не гипертрейдинговым ядрам, с которыми работает x86-архитектура. Поэтому в ряде критериев — например, гауссовском размытии, HDR, Camera и т.д. — ARM лидирует очень уверенно.
Мы также измерили скорость, энергопотребление и провели стресс-тест. Нам было важно узнать, подходит ли ARM-процессор от Ampere для эксплуатации в дата-центрах.
Больше результатов тестов читайте в статье → [4]
Наша линейка серверов пополнилась конфигом Ampere Altra Max M128-30 [5] с ARM-процессором внутри. Поскольку мы стараемся сдавать выделенные серверы быстро, на помощь приходит кастомная сборка Arch Linux для автоматизации процессов. Мы планировали настроить дистрибутив для ARM за две недели, но возникли проблемы.

Читайте, как мы настраивали автоматическую загрузку сервера → [6]
Модифицировали сборочные скрипты archiso-aarch64. А именно — изменили класс, который использовался при сборке образа под legacy-режим загрузки.
В часть, ответственную за сборку UEFI-артефактов, импортирован класс, отвечающий за упаковку ядра и initramfs. Мы добавили в строку 622 _run_once _make_boot_on_iso9660. Это позволило нам получить необходимые артефакты для сетевой загрузки.
Запустили GitLab-runners на Raspberry Pi 4. В качестве executor в GitLab-runner используется Docker. Это сильно отличается от сборки x86-образа, где используется libvirt и QEMU. Последняя работает пока крайне медленно в режиме эмуляции aarch64, поэтому необходим более простой в настройке исполнитель. Мы выбрали RPi4.
Переписали скрипт автотестов и временно отказались от некоторых фич для arm64. Например, автоматической прошивки материнских плат и периферии, а также автоматической настройки BMC.
Отвечая на вопрос в заголовке, реально! На первый взгляд задача кажется несложной из-за минимальных отличий между aarch64 и x86_64, но чем глубже погружаешься, тем больше открывается нюансов. Поэтому мы принимали решения через практические эксперименты и опирались на опыт наших коллег. Зато, если у вас есть похожая задача, вам не обязательно проходить весь этот путь самостоятельно.
Подробная инструкция по настройке Arch Linux для ARM → [6]
Возможно, эти тексты тоже вас заинтересуют:
→ ARM анонсировала выпуск собственного процессора. Но зачем? [7]
→ И снова Linux: релиз ядра 6.3. Подробнее о возможностях и апдейтах в этой версии [8]
→ Ampere Altra Dev Kit: ATX-плата с ARM-процессором Amere Altra. Что за система и для чего она нужна? [9]
Автор: Анастасия Ербанова
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/avtomatizatsiya/384481
Ссылки в тексте:
[1] сервер: https://selectel.ru/services/dedicated/config/?utm_source=habr.com&utm_medium=referral&utm_campaign=dedicated_article_armdigest_020523_content&uuid=13c17fe4-646c-4539-ae80-3136171bf782
[2] Узнайте больше о развитии платформ →: https://habr.com/ru/companies/selectel/articles/717374/
[3] Selectel Lab: https://selectel.ru/lab/?utm_source=habr.com&utm_medium=referral&utm_campaign=dedicated_article_armdigest_020523_content
[4] Больше результатов тестов читайте в статье →: https://habr.com/ru/companies/selectel/articles/707926/
[5] конфигом Ampere Altra Max M128-30: https://selectel.ru/services/dedicated/config/?utm_source=habr.com%26utm_medium=referral%26utm_campaign=dedicated_article_armdigest_020523_content%26uuid=13c17fe4-646c-4539-ae80-3136171bf782/?utm_source=habr.com&utm_medium=referral&utm_campaign=dedicated_article_armdigest_020523_content
[6] Читайте, как мы настраивали автоматическую загрузку сервера →: https://habr.com/ru/companies/selectel/articles/714234/
[7] ARM анонсировала выпуск собственного процессора. Но зачем?: https://habr.com/ru/companies/selectel/articles/731184/
[8] И снова Linux: релиз ядра 6.3. Подробнее о возможностях и апдейтах в этой версии: https://habr.com/ru/companies/selectel/articles/731186/
[9] Ampere Altra Dev Kit: ATX-плата с ARM-процессором Amere Altra. Что за система и для чего она нужна?: https://habr.com/ru/companies/selectel/articles/726486/
[10] Источник: https://habr.com/ru/companies/selectel/articles/732680/?utm_source=habrahabr&utm_medium=rss&utm_campaign=732680
Нажмите здесь для печати.