Моё знакомство с вариантом ARM, приближенным к серверному, началось с установки на CubieTruck серверной версии Ubuntu и развёртывания тестового сайта на Drupal. Мне было интересно, сильно ли будет отличаться работа движка на Cubie от работы того же движка на сервере на базе Intel Dual-Core G850, который я использую для своих проектов. О результатах эксперимента, а также о разных отличиях платформ ARM и x86 в качестве серверного железа, я расскажу в своём посте.
Набор процессорных инструкций ARM начал зарождаться в 80-х годах ХХ века. К 1985 году появилась первая версия компьютера на базе ARM, а ещё через год свет увидела вторая версия. В те годы рынок только формировался, компании завоёвывали рынок и выбирали свои пути. В итоге Intel стал мировым лидером в производстве процессоров для пользовательских ПК и серверов, обладающим своими серьёзными практическими наработками и производственной базой. ARM же сосредоточился в основном на разработке архитектуры, ядер и лицензировании сторонних производителей.
Ещё одно отличие — в направлении развития. Intel начал с более мощных пользовательских решений и пошёл по пути снижения мощности и энергопотребления. ARM Holdings начинал со слабых и экономных решений, таких как процессоры для мобильных телефонов и роутеров, далее — для смартфонов, планшетов и прочих устройств, преимущественно работающих от батареи и часто не имеющих пространства для активного охлаждения.
Итак, давайте рассмотрим, какие преимущества и недостатки приписываются ARM платформам в сравнении с другими существующими (преимущественно с лидером индустрии — Intel).
Политика производства
Intel является единоличным разработчиком и производителем своих чипов и процессоров. Соответственно, он и только он задаёт направление развития чипов исходя из своих соображений. ARM сам по себе ничего не производит, он только продаёт авторские права на архитектуру и дизайн чипов. Чипы же производят все, кому не лень кто получил лицензию от правообладателя, компании ARM Holdings. Это позволяет технологии быть более гибкой и подстраиваться под нужды как конкретного потребителя, так и рынка в целом. Производители же получают возможность создавать адаптированные сугубо под свои нужды SoC (System on a Chip — системы, содержащие на чипе не только сам процессор, но и любые дополнительные необходимые для решения задачи аппаратные компоненты). Лицензионная плата взымается за каждый выпущенный чип и составляет, согласно публичным данным, несколько десятков центов за единицу.
В случае же с Intel, компания обеспечивает полный цикл, от производства до сбыта продукции. Именно поэтому компания достаточно жёстко ориентирована на объёмы продаж. Разве может быть иначе, если новый завод по производству чипов, которые устареют через несколько лет, стоит порядка 5 млрд. долларов? Естественно, стоимость таких заводов ложится на плечи будущих покупателей процессоров. Кроме того, компания должна выпускать универсальные массовые решения и не может позволить себе концентрироваться на нишевых узкоспециализированных задачах.
Занимательный факт: с октября 2013 года Intel также обладает лицензией на производство ARM чипов. Компании пришли к договорённости, что Intel построит 4-ядерный 64-битный ARM Cortex-A53. Следует также упомянуть, что AMD заявило о своих планах выпустить сервер на базе ARM ещё в 2012 году.
В январе 2014 года AMD презентовал первые образцы линейки серверных процессоров AMD Opteron A1100 Series, получивших кодовое имя “Seattle”. Это 4- или 8-ядерные процессоры ARM Cortex-A57, содержащие до 4 МБ кеша 2 уровня и до 8 МБ кеша 3 уровня, поддерживающие DDR3 и DDR4 память ECC производительностью до 1866 МТ/с, 8 SATA портов, 2 порта 10Gbps Ethernet и другие плюшки. Вместе с процессором была представлена платформа для разработчиков.
Мне не удалось найти информацию о цене и способах заполучить её, потому, если кто в курсе, поделитесь, пожалуйста. Исходя из пресс-релиза, можно сделать вывод, что компания планирует уводить серверный рынок от массовых решений, где примерно одни и те же конфигурации используются для разных задач, к более специализированным вариантам.
Более простая архитектура
ARM поддерживает меньше микропроцессорных команд и функций, чем x86. С одной стороны x86 поддерживает больше встроенных защит, плюшек и улучшайзеров, с другой — ARM обладает более простой топологией, более простым ассемблером и требует меньшего количества транзисторов на чипе. А это, в свою очередь, даёт ещё один бонус.
Меньше размер и энергопотребление
Меньшее количество транзисторов потребляет меньше электроэнергии и занимает меньше места при одинаковой технологии. Это стало ключевым фактором при выборе процессоров для мобильных платформ на ранних этапах их развития. Элементы питания тогда были не столь хороши, как сейчас, а большинство процессоров потребляли настолько много энергии, что требовалось питание от сети.
На данный момент технологии меняются не в пользу ARM. Intel — одна из немногих компаний, способных финансировать фундаментальные разработки. Размер транзистора также влияет на энергопотребление. Учёные и инженеры Intel уже достигли технологий 22 нм и даже 14 нм, в то время как большинство других производителей вынуждены довольствоваться более доступными 28 нм.
В пользу меньшего энергопотребления и экономии пространства свидетельствует выпущенное AppliedMicro семейство X-Gene. Их решение на базе архитектуры ARM вобрало в одном чипе 64-битный процессор с частотой до 2,4GHz, контроллер памяти, PCI, SATA, 2x10Gbps Ethernet и прочие полезные вещи. По заявлению разработчика, решение, адаптированное специально для веб-приложений, облачных и блейд-систем, по производительности близко к современным процессорам серий E3 и E5, при этом потребляет на 50% меньше электроэнергии и позволяет размещать оборудование до 4 раз плотнее благодаря тому, что практически всё необходимое для работы размещается на одном чипе. Благодаря этому владельцы смогут существенно снизить TCO (Total Cost of Ownership; расходы на содержание оборудования). На данный момент продукт доступен в виде набора для разработчиков.
Однако прототип блейд-версии также был создан. Размер всей платы можно оценить, представив себе размер планки памяти.
AppliedMicro совместно с партнёрами также подготовила ARM сборки популярных веток Linux и серверного ПО к ним, благодаря чему желающие могут уже сейчас поэкспериментировать с набором для разработчиков и ощутить все преимущества системы.
Меньше тепловыделение
Эта особенность вытекает как следствие из меньшего энергопотребления и законов физики. Принцип работы современных чипов примерно один и тот же, следовательно, КПД также примерно одинаков. Логично, что чипы, которые меньше потребляют энергии, при равном КПД будут меньше рассеивать тепла. А это снижает затраты на охлаждение и экономит пространство.
Выше производительность
Собственно, чистая производительность большинства ARM ниже. Только некоторые последние разработки догоняют процессоры от Intel. Однако если рассматривать производительность на Ватт, тут по многим данным ARM всё же выигрывает. Также по некоторым данным ARM выигрывает в соотношении производительность/$. Единственный нюанс — большинство из этих данных представлено в тестах самих разработчиков ARM-платформ, потому некоторые считают их сомнительными. Позволить же себе независимое тестирование платформ для разработчиков рядовой обыватель вряд ли сможет ввиду их стоимости.
Личная практика
Единственное устройство, на котором у меня была возможность попрактиковаться — CubieTruck. Это маленькое, но гордое устройство носит в себе 2-ядерный процессор ARM Cortex-A7, 2 ГБ оперативной памяти DDR3 480MHz (960MT/с), SATA-порт, micro-SD слот, умеет Ethernet, Wifi, Bluetooth и задорно мигать яркими диодами в процессе работы. К сожалению, лишнего SSD диска у меня не было, потому пришлось установить ОС на micro-SD класса 10. Предполагаю, что с SSD результаты эксперимента были бы получше. Также были установлены Apache, PHP + APC, MySQL.
В качестве тестового сайта я использовал Drupal 7 с автоматически сгенерированными 10000 страниц контента, из которых с помощью модуля Views случайным образом выбиралось 100. Тестирование производилось с помощью утилиты ab с общим количеством запросов 1000 и количеством конкурирующих запросов 10, 20 и 30. Собственно, при количестве запросов 30 тестирование не удалось, т.к. ab вылетел по тайм-ауту. Аналогичные тесты были проведены на сервере на базе Intel Dual-Core G850 с 4 Гб оперативной памяти и SATA дисками. Некоторые значения из тестов приведены в таблице ниже.
Среднее время генерации страницы бездействующим сервером (не во время тестов) в обоих случаях составляет 3-4 секунды, однако на Cubie случались спонтанные проявления нестабильности, выражавшиеся в таком вот абсолютно неожиданном времени генерации:
Таким образом, хотя CubieTruck и проигрывает Intel G850, но показывает себя весьма достойно как для железа, которое не проектировалось как специализированное серверное. На базе него вполне могут работать небольшие приложения, при этом стоимость оборудования (плата плюс SSD диск) составит порядка 150-200$. Стоит также упомянуть тот факт, что плата потребляет всего примерно 10-15W. Единственная беда с практическим использованием Cubie — проблема с размещением. Дата-центры отказываются ставить на колокацию столь нестандартное оборудование, а занимать даже полноценный 1U экономически нецелесообразно. Если вдруг сейчас эти строки читает кто-нибудь из киевских дата-центров, кто готов принять участие в эксперименте и поставить Cubie у себя на месяц-другой, буду рад посотрудничать.
Я с интересом ожидаю выхода Cubieboard 8, который, к сожалению, несколько задержался. Устройство будет содержать 8 ядер с рабочей частотой порядка 2GHz и поддерживать более 2 Гб оперативной памяти, что приближает его по характеристикам к серверам начального уровня. Надеюсь, в ближайшие несколько месяцев разработчики завершат финальную отладку и представят миру своё детище.
В завершение
Подводя итог, можно сказать, что хотя платформы на базе ARM ещё далеки от массового производства, но уже показывают некоторые конкурентные преимущества в сравнении с ключевыми игроками рынка. Остаётся только вопрос, как поведут себя игроки: станут ли они противостоять, или всё же присоединятся к новой технологии? Похоже, второй вариант развития событий становится всё более вероятным. По оценкам некоторых специалистов к 2019 году архитектура ARM будет охватывать до 25% серверного рынка, и AMD уже заявляет, что претендует на лидерство в этом сегменте.
Сейчас рынок ARM находится в зачаточно-экспериментальном состоянии. Кто-то разрабатывает тестовые платформы, кто-то собирает блейд-системы, кто-то запускает вычислительные кластеры на базе Cubieboard, которыми обрабатывает файлы в десятки гигабайт.
Однако уже сейчас можно всерьёз задумываться о коммерческом применении решений на базе ARM в ближайшем будущем, как это сделал небольшой французский стартап NanoXion, предложивший услугу colocation для Cubieboard. Спектр коммерческих идей может быть огромен — от услуги micro-dedicated на базе тех же CubieTruck, коих даже в 1U можно нашпиговать немало, до активного участия в продвижении на рынок решений вроде X-Gene и AMD Opteron A1100, при этом рынок пока практически свободен. Остаётся включить фантазию и правильно на него зайти.
Автор: Vasiliskov