Вокруг процессоров ARM много шума. Популярность конкурента x86 растет с каждым годом — процессоры появляются как в настольном, так и в серверном сегментах. Мы не могли упустить перспективную технологию и хорошо изучили ARM, чтобы добавить

сервер

к ассортименту выделенных серверов. В этом сборнике вы узнаете о результатах тестирования ARM-процессора Ampere Altra, о том, как исправить проблемы с неподходящей версией Arch Linux и о будущем ARM в серверном сегменте. Если хотите углубить тему, вам под кат!

Действительно ли за процессорами ARM будущее?

Процессоры на базе x86 имеют закрытые решения: невозможно получить доступ к информации об архитектуре и изменить существующую конфигурацию. ARM, по сути, это просто ядро, причем в виде документации. Пользователь покупает систему управления и получает рекомендации, как и с какими трубопроводами, энергосистемами и внешними интерфейсными драйверами ее использовать. А потом выбирает техпроцесс и производителя. По сути, ARM — это своего рода компания-спасатель от блокировки вендора.

Подробнее о разработке платформы →

Перспективы развития процессоров ARM

Серверные процессоры на базе ARM появляются не так массово, как чипы для мобильных устройств. Однако сегодня технологические компании инвестируют в разработку собственного оборудования. Таким образом, Ampere активно продвигает свои процессоры, которые по характеристикам догоняют Graviton от AWS. Google и Microsoft переходят к разработке собственных чипов, снижая свою зависимость от Intel, а Amazon и Alibaba заявляют, что к 2025 году 25% всех новых экземпляров будут на их собственных процессорах ARM.

ansk7qwxrvsq izheo8ajhzia2y

Несмотря на то, что сегодня появляются готовые решения на ARM, спрос на них увеличивается.

ЧИТАТЬ   Кредиты для онлайн-покупок, новые счета в юанях и изменения депозита - обзор банковских изменений

В чем сейчас основные сложности работы с ARM?

Проблемы с версиями ВМ и библиотеками под ARM.

Один из клиентов Selectel, протестированных на ARM, обнаружил отсутствующую библиотеку Arch, которая поддерживает C++20, в то время как Arch на x86 содержит правильную библиотеку. Проблема решилась переходом на Ubuntu.

Поведение видеокарт с ARM нестабильно. Мы столкнулись с нестабильным поведением видеокарты и не до конца понимаем, как это исправить. Поэтому пока клиенты с видеокартами останутся на x86.

Узнать больше о других функциях и результатах тестирования клиентов можно по ссылке →

ju2zjh794kvbdvf0nkvdjish8dk

Превзойдут ли процессоры ARM производительность x86?


Чтобы ответить на этот вопрос, мы взяли для изучения сервер GIGABYTE E252-P30 с 80-ядерным процессором Ampere Altra. Мы хотели убедиться, что ARM соответствует заявленным характеристикам, поэтому протестировали и сравнили его с сервером на процессоре AMD (точнее, на двух CPU) — всего с 64 ядрами.

В В Selectel Lab мы не только тестируем оборудование, сравнивая заявленные характеристики с реальными, но и выясняем, насколько оборудование вписывается в общую систему дата-центров Selectel. Мы изучаем, сможем ли мы добавить необходимую нам автоматику (например, установка ОС) и будет ли оборудование эффективным с точки зрения энергопотребления.

Тесты ARM

Мы провели тест производительности с помощью Geekbench 5. Я решил установить Ubuntu на сервер, так как это наиболее часто используемая операционная система для ARM. Методы тестирования использовали Ubuntu 22.04.01 LTS 5.15.0-50-generic aarch64, новый дистрибутив Ubuntu для архитектуры aarch64.

Что имеем в сборке ↓

  • материнская плата GIGABYTE MP32-AR1-00
  • Процессор Altra Q80-30 Ampere
  • Память: 16 x 16 ГБ Micron DDR4 3200 МГц ECC (256 ГБ)
  • 2 SSD Micron_5300 480 ГБ
  • Твердотельный накопитель M.2 NVMe емкостью 1 ТБ (GIGABYTE GP-AG41TB)
  • три видеокарты Nvidia TESLA T4

Мы обнаружили, что в однопоточном режиме процессор выдает плохие результаты. Зато в многопоточном режиме демонстрирует высокую производительность. Таким образом, процессор ARM будет полезен в высокопроизводительных вычислениях, если это является основной задачей заказчика.

Результаты теста Geekbench 5

dlzdwvr kn1dn2d zdsrgvu9l8

Результат в одноядерном и многоядерном режиме

В многоядерном режиме процессор ARM превосходит x86 по всем параметрам. Особенно это заметно в настройках с распараллеливанием задач. Здесь работает закон «чем больше сердец, тем лучше». При этом предпочтение отдается физическим ядрам, а не гипертрейдингу, с которым работает архитектура x86. Поэтому по ряду критериев — например, размытие по Гауссу, HDR, камера и т. д. — ARM уверенно лидирует.

Мы также измерили скорость, энергопотребление и провели стресс-тест. Нам было важно знать, подходит ли процессор Ampere ARM для использования в центрах обработки данных.

Подробнее результаты испытаний читайте в статье →

Реально ли добавить серверы ARM в центры обработки данных?


Наш ассортимент серверов пополнился
Конфигурация Ampere Altra Max M128-30 с процессором ARM внутри. Поскольку мы стараемся арендовать выделенные серверы быстро, на помощь приходит кастомная версия Arch Linux для автоматизации процесса. Мы планировали настроить дистрибутив для ARM за две недели, но возникли проблемы.

s6rcky fhbl ejihfluw5rzgfsm

Что не так со сборкой?

  1. Разработчик продублировал большинство классов, заменив значения переменных на нужные для архитектуры aarch64. По этой причине в сборке не было артефакта для запуска сервера в режиме UEFI.
  2. Мы хотели использовать chroot с поддержкой кросс-архивных сборок, но утилита сломалась, «добавив» пакеты «внутрь» образа.
  3. Мы сильно настроили образ нашего сервиса, поэтому мы не могли использовать готовые бинарные пакеты в репозиториях.

Узнайте, как мы настраиваем автоматическую загрузку сервера →

Как мы решали проблемы

МСкрипты сборки archiso-aarch64 были изменены.

А именно, они изменили класс, используемый при сборке образа в устаревшем режиме загрузки.

Класс, отвечающий за упаковку ядра и initramfs, импортирован в часть, отвечающую за сборку артефактов UEFI. Мы добавили в строку 622 _run_once _make_boot_on_iso9660. Это позволило нам получить артефакты, необходимые для запуска сети.

Сзаброшенный бегунами GitLab на Raspberry Pi 4. GitLab-runner использует Docker в качестве бегуна. Это сильно отличается от создания образа x86, использующего libvirt и QEMU. Последний по-прежнему очень медленный в режиме эмуляции aarch64, поэтому требуется более простой для настройки исполнитель. Мы выбрали RPi4.

Переписывание сценария самопроверки ивременно удалены некоторые функции для arm64. Например, автоматическая прошивка материнских плат и периферии, а также автоматическая настройка BMC.

Ответьте на вопрос в заголовке, действительно! На первый взгляд задача кажется простой из-за минимальных отличий между aarch64 и x86_64, но чем глубже погружаешься, тем больше нюансов открывается. Поэтому мы принимали решения на основе практического опыта и опирались на опыт наших коллег. Но если у вас есть аналогичная задача, вам не обязательно проходить весь путь самостоятельно.

Пошаговая инструкция по настройке Arch Linux для ARM →

Эти тексты также могут вас заинтересовать:

→ ARM объявила о выпуске собственного процессора. Но почему?
→ И снова Linux: версия ядра 6.3. Узнайте больше о функциях и обновлениях в этом выпуске
→ Ampere Altra Dev Kit: плата ATX с процессором Amere Altra ARM. Что это за система и для чего она нужна?

Source

От admin