Amazon EC2 vs Atlex Cloud VPS: сравнение производительности

Все слышали про AWS. Можно сказать, что облаку Amazon удалось стать своего рода индустриальным стандартом. Мы не исключение. А потому решили проверить, как выглядит виртуальная машина в нашем клауде на базе OpenStack в сравнении с близкой по функционалу машиной AWS.

e0addd614a8652cf299278dadf4cf0a9.jpg

Подробности под катом.

От традиционных VPS облачные «инстансы» отличаются отсутствием необходимости вносить абонентскую плату сразу за месяц. Работает такая виртуальная машина примерно как такси — счетчик тикает, пока она едет. Придётся выложить некоторую сумму и за простой, поскольку даже выключенная машина использует емкости хранилища. Оплачивать фактически потреблённые вычислительные ресурсы гораздо дешевле и удобнее, если постоянной потребности в них нет. Разработчикам и тестировщикам такая схема позволяет серьезно экономить, и даже владельцы корпоративной ИТ-инфраструктуры могут отключать ненужные серверы, скажем, в нерабочее время или по завершении какого-то проекта. В облаке можно быстро нарастить ресурсы (добавить процессор-другой, увеличить объём оперативной памяти), если нагрузка выросла, или отказаться от лишних, когда потребность в них исчезнет. Сплошные выгоды: при этом не надо покупать железо и лицензии на операционную систему. Сервер поднимается за пару минут через веб-интерфейс и оплачивается, что называется, on-demand.

Общие вопросы


Пионером на этом рынке стала компания Amazon со своими Amazon Web Services (AWS). Потом подоспела корпорация Microsoft с платформой Azure и за ней уже появилась Google Cloud Platform — эта троица отхватила значительную часть рынка, но Amazon Elastic Compute Cloud (Amazon EC2) долгое время оставался синонимом масштабируемых вычислительных ресурсов в облаке. Помимо трёх гигантов аналогичные предложения есть у множества отечественных и зарубежных компаний. Потому вполне естественным для нас желанием было сравнить нашу четырехпроцессорную конфигурацию с предложением EC2.

Стоит отметить, что у российских сервисов есть несколько неоспоримых преимуществ. Их цены не привязаны к твёрдой валюте, вы не потеряете доступ к своим данным в случае очередного витка санкционной войны, а самое главное — наши компании используют предоплатную схему расчетов, хотя юридическим лицам доступна и ежемесячная оплата по счетам. Крупные западные провайдеры даже с физическими лицами работают по постоплатной схеме и требуют привязки банковской карты к счету. Если какой-нибудь злодей угонит ваш аккаунт, может возникнуть серьезная задолженность, такие прецеденты уже были.

Сам процесс регистрации, к примеру, в AWS также достаточно сложен — схема взыскания задолженности с физических лиц в России на практике работает плохо, поэтому ваш аккаунт скорее всего сразу заблокируют, якобы из-за проблем с методом платежа (списать с карты $1 это не мешает). Потом придётся обращаться в службу поддержки и отправлять провайдеру кучу дополнительных сведений (оплаченные счета за коммунальные услуги и т. д.).

50f26f4f0a1ad7c81f7006c643c5e081.jpg

Для выделения квот на ресурсы в каждом датацентре Amazon также придётся создавать запрос в службу поддержки и ждать около суток. Если поддержка у вас платная, скорость прохождения запроса может увеличиться, но этот момент мы не проверяли. Базовый бесплатный план позволяет только запрашивать лимиты и решать связанные с биллингом вопросы:

6cc5aa5471b18570ca65e7f219ccf2e6.jpg

Тесты


Конфигурации виртуальных машин:
Atlex (Чехия, Прага):

  • 4 vCPUs Intel Xeon E5–2620v4 (Broadwell U/ULT) с тактовой частотой 2,1 ГГц;
  • 8 ГБ оперативной памяти;
  • накопитель 100 ГБ SSD;
  • Microsoft Windows Server 2012 R2 Standart;
  • OpenStack (KVM).

Amazon EC2 (тип инстанса: t2.xlarge; датацентр: US East (Ohio), us-east-2b):

  • 4 vCPUs Intel Broadwell E5–2686v4 с тактовой частотой 2,3 ГГц
  • 16 Гб оперативной памяти;
  • накопитель 100 ГБ SSD;
  • Microsoft Windows Server 2012 R2 Standart;
  • Xen HVM DomU.

Конфигурации не вполне идентичные, но в Amazon EC2 инстансы можно создавать только по готовым шаблонам, и более близких вариантов с четырьмя vCPU нам подобрать не удалось. Поскольку в процессе тестирования мы не задействовали и 8 ГБ оперативной памяти, разница в объеме ОЗУ на результат не повлияла. У Amazon есть датацентры в Европе, но поскольку проверяем мы в основном вычислительные мощности и производительность дисковой подсистемы, местонахождение виртуального сервера также не принципиально.

Пинг


Сначала проверим доступность обеих виртуальных машин из русскоязычного сегмента глобальной сети — для чистоты эксперимента проверку будем проводить с ещё одного виртуального сервера, работающего во внешнем по отношению к обоим подопытным питерском датацентре. С помощью утилиты ping посмотрим время отклика хостов при размере сообщения 64 байта и 1 килобайт (отправляем 100 пакетов). Время отклика виртуальной машины Atlex составило 48,328 миллисекунд и 48,436 миллисекунд соответственно, при пересылке ни один пакет не пострадал (0% loss). Для машины Amazon EC2 в датацентре штата Огайо — 126,748 и 126,846. Для чистоты эксперимента мы создали ещё одну машину в датацентре Amazon во Франкфурте и там время отклика составило — 46,005 и 46,1 миллисекунд. То есть у нас в Чехии и у AWS в Германии показатели почти одинаковые.

GeekBench 4


Популярный пакет проводит больше двух десятков тестов, разделенных на несколько категорий: Cryptography, Integer, Floating Point, Memory. Используются операции сжатия, работа с JPEG, парсинг HTML, SQLite. Это один из самых всесторонних тестов для Windows, хотя дисковую подсистему он не охватывает (для этого мы использовали CristalDiskMark). С нашей виртуальной машиной никаких сюрпризов не было, тест показал ожидаемую производительность:

40e6f03fbf7f83f6c9a4605866a74ff3.jpg

sokn2z0qk9yytak_nmcg4p-j27a.png

7o6lzrdhnvo1carnu9tgqdfjjc8.png

С виртуальной машиной Amazon EC2 все оказалось значительно интереснее. В свойствах данного типа инстансов указан процессор Broadwell, но GeekBench упорно показывал нам Haswell:

7ff4507783761e84453eac3b2136b019.jpg

549d1794509538a1564c56503f260699.jpg

Отличаются они только техпроцессом. Поэтому для нас, как сторонних заказчиков, разница в итоге не принципиальная.

ujd8a_6uwrz8pctlcymp974t8ae.png

solbxyrpdnwkt4tg-adzxkjeadi.png

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

CrystalDiskMark 6


Этот популярный бенчмарк проводит тесты последовательной и случайной записи/чтения с глубиной очереди равной 1, 8 и 32. Результаты на скриншотах говорят сами за себя — несмотря на использование твердотельных накопителей в хранилищах обеих конфигураций, дисковая подсистема нашей виртуальной машины гораздо шустрее. На самом деле, порог ещё выше, и тестовая программа до него добраться не смогла, при этом есть и балансировка нагрузки — разные клиенты не будут друг другу мешать:

yg6g0mywywu2mvzciifwfonmwec.png

General Purpose SSD от Amazon EC2 показал в разы более скромные результаты:

cxhunsp0oirah5qpvc1tv40alcq.png

Тесты с Microsoft SQL


Для оценки производительности работы Microsoft SQL Server 2017 мы использовали тест TPC-H, который считается одним из отраслевых стандартов — его активно используют сами разработчики СУБД. Тест представляет собой набор бизнес-ориентированных гибких запросов и параллельно проводимой модификации данных. Он иллюстрирует работу систем поддержки принятия решений, анализирующих большие объемы данных, выполняющих запросы высокой степени сложности и дающих ответы на критически важные вопросы бизнеса. Полностью все спецификации TPC-H мы соблюдать не стали, поскольку это слишком сложно — там больше полутора сотен страниц убористого текста в pdf. Чтобы упростить процесс тестирования, мы скачали бесплатную версию программы Benchmark Factory for Databases. TPC-H предполагает генерацию восьми таблиц с использованием заданного параметра scale factor. У нас он равен 1, и объём базы составил 1,54 ГБ (1,18 ГБ заняли таблицы и 364,96 МБ — индексы).

Тест состоит из 22 SQL-запросов разной степени сложности, которые выполняют четыре виртуальных пользователя три раза по кругу (итого 264 SQL-запроса). Приятным сюрпризом в последней версии Benchmark Factory for Databases стала возможность генерации тестовых данных и загрузки их в базу. Раньше для этого приходилось скачивать исходные тексты утилиты dbgen от TPC и собирать их под Windows в Visual Studio. В этом тесте тоже все обошлось без сюрпризов.

Облачный сервер Atlex:

Транзакций в секунду
Среднее время отклика (сек)
Среднее время выполнения транзакции
Количество транзакций
Время выполнения теста
Total Rows
1,313
3,030
3,040
264
3 минуты 27 секунд
11616

4979652f3290f9843d614c4a2da0a400.jpg

Облачный сервер Amazon EC2:

Транзакций в секунду
Среднее время отклика (сек)
Среднее время выполнения транзакции
Количество транзакций
Время выполнения теста
Total Rows
1,542
2,586
2,591
264
2 минуты 57 секунд
11532

e6bd66ca43e5ecf7e6ac1b0606a50f0e.jpg
Пусть вас не удивляет несоответствие общего времени выполнения теста и среднего времени отклика, умноженного на количество запросов: четыре пользователя выполняют запросы одновременно, так что это вполне естественно.

Ценник


Прейскурант Amazon EC2 можно найти по ссылке. Цены могут довольно серьезно отличаться в зависимости от типа облачного виртуального сервера — для кратковременного тестирования мы использовали инстансы по требованию, но есть и другие варианты, если вы готовы, например, зарезервировать ресурсы сразу на год или утилизировать свободные вычислительные ресурсы Amazon EC2. Виртуальный облачный сервер t2.xlarge с Windows обойдётся пользователю в $0,2266 за час работы + налог (все цены в прайсе указаны без учета налогов и сборов). Если машина работает в течение месяца (~720 часов), пользователь заплатит около $163,15 без налога — точную сумму подсчитать невозможно, поскольку в месяцах разное количество дней. Плата за использование инстансов EC2 начисляется с шагом в одну секунду, а минимальный период использования составляет 60 секунд. Аналогичным образом плата за выделенное хранилище для томов EBS SSD (gp2) будет начисляться на посекундной основе с минимальным периодом использования 60 секунд. 1 ГБ хранения в датацентре штата Огайо стоит $0,10 в месяц ($10 без налога за 100 ГБ), но есть и схема оплаты с выделенными IOPS.
Наш виртуальный сервер обойдётся заказчику в 4208 рублей за месяц работы или примерно 5,56 рублей (в районе $0,1) в час. Тесты проводились на базе стандартного процессора Intel Xeon E5–2620v4, но мы недавно добавили новые процессоры с более высокой производительностью (тактовая частота 3,8 ГГц) для баз данных.

Итоги и выводы


Обе машины показали очень близкие результаты. Несмотря на то, что у инстанса Amazon EC2 результаты вычислительных тестов оказались формально чуть лучше, мы обходим их в разы по дисковым операциям. Главный вывод очевиден: хотя наш сервис не может тягаться с крупнейшии мировыми облачными провайдерами по количеству предлагаемых клиентам услуг, по качеству в своей узкой нише он вполне конкурентоспособен. Ну и по цене мы обходим их более чем вдвое.

© Habrahabr.ru