Amazon EC2 vs Atlex Cloud VPS: сравнение производительности
Все слышали про AWS. Можно сказать, что облаку Amazon удалось стать своего рода индустриальным стандартом. Мы не исключение. А потому решили проверить, как выглядит виртуальная машина в нашем клауде на базе OpenStack в сравнении с близкой по функционалу машиной AWS.
Подробности под катом.
От традиционных VPS облачные «инстансы» отличаются отсутствием необходимости вносить абонентскую плату сразу за месяц. Работает такая виртуальная машина примерно как такси — счетчик тикает, пока она едет. Придётся выложить некоторую сумму и за простой, поскольку даже выключенная машина использует емкости хранилища. Оплачивать фактически потреблённые вычислительные ресурсы гораздо дешевле и удобнее, если постоянной потребности в них нет. Разработчикам и тестировщикам такая схема позволяет серьезно экономить, и даже владельцы корпоративной ИТ-инфраструктуры могут отключать ненужные серверы, скажем, в нерабочее время или по завершении какого-то проекта. В облаке можно быстро нарастить ресурсы (добавить процессор-другой, увеличить объём оперативной памяти), если нагрузка выросла, или отказаться от лишних, когда потребность в них исчезнет. Сплошные выгоды: при этом не надо покупать железо и лицензии на операционную систему. Сервер поднимается за пару минут через веб-интерфейс и оплачивается, что называется, on-demand.
Общие вопросы
Пионером на этом рынке стала компания Amazon со своими Amazon Web Services (AWS). Потом подоспела корпорация Microsoft с платформой Azure и за ней уже появилась Google Cloud Platform — эта троица отхватила значительную часть рынка, но Amazon Elastic Compute Cloud (Amazon EC2) долгое время оставался синонимом масштабируемых вычислительных ресурсов в облаке. Помимо трёх гигантов аналогичные предложения есть у множества отечественных и зарубежных компаний. Потому вполне естественным для нас желанием было сравнить нашу четырехпроцессорную конфигурацию с предложением EC2.
Стоит отметить, что у российских сервисов есть несколько неоспоримых преимуществ. Их цены не привязаны к твёрдой валюте, вы не потеряете доступ к своим данным в случае очередного витка санкционной войны, а самое главное — наши компании используют предоплатную схему расчетов, хотя юридическим лицам доступна и ежемесячная оплата по счетам. Крупные западные провайдеры даже с физическими лицами работают по постоплатной схеме и требуют привязки банковской карты к счету. Если какой-нибудь злодей угонит ваш аккаунт, может возникнуть серьезная задолженность, такие прецеденты уже были.
Сам процесс регистрации, к примеру, в AWS также достаточно сложен — схема взыскания задолженности с физических лиц в России на практике работает плохо, поэтому ваш аккаунт скорее всего сразу заблокируют, якобы из-за проблем с методом платежа (списать с карты $1 это не мешает). Потом придётся обращаться в службу поддержки и отправлять провайдеру кучу дополнительных сведений (оплаченные счета за коммунальные услуги и т. д.).
Для выделения квот на ресурсы в каждом датацентре Amazon также придётся создавать запрос в службу поддержки и ждать около суток. Если поддержка у вас платная, скорость прохождения запроса может увеличиться, но этот момент мы не проверяли. Базовый бесплатный план позволяет только запрашивать лимиты и решать связанные с биллингом вопросы:
Тесты
Конфигурации виртуальных машин:
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). С нашей виртуальной машиной никаких сюрпризов не было, тест показал ожидаемую производительность:
С виртуальной машиной Amazon EC2 все оказалось значительно интереснее. В свойствах данного типа инстансов указан процессор Broadwell, но GeekBench упорно показывал нам Haswell:
Отличаются они только техпроцессом. Поэтому для нас, как сторонних заказчиков, разница в итоге не принципиальная.
К сожалению, подобрать полный аналог среди четырехпроцессорных конфигураций инстансов Amazon EC2 нам не удалось, но машины получились достаточно близкими. В том числе и по результатам.
CrystalDiskMark 6
Этот популярный бенчмарк проводит тесты последовательной и случайной записи/чтения с глубиной очереди равной 1, 8 и 32. Результаты на скриншотах говорят сами за себя — несмотря на использование твердотельных накопителей в хранилищах обеих конфигураций, дисковая подсистема нашей виртуальной машины гораздо шустрее. На самом деле, порог ещё выше, и тестовая программа до него добраться не смогла, при этом есть и балансировка нагрузки — разные клиенты не будут друг другу мешать:
General Purpose SSD от Amazon EC2 показал в разы более скромные результаты:
Тесты с 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 |
Облачный сервер Amazon EC2:
Транзакций в секунду |
Среднее время отклика (сек) |
Среднее время выполнения транзакции |
Количество транзакций |
Время выполнения теста |
Total Rows |
1,542 |
2,586 |
2,591 |
264 |
2 минуты 57 секунд |
11532 |
Пусть вас не удивляет несоответствие общего времени выполнения теста и среднего времени отклика, умноженного на количество запросов: четыре пользователя выполняют запросы одновременно, так что это вполне естественно.
Ценник
Прейскурант 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 результаты вычислительных тестов оказались формально чуть лучше, мы обходим их в разы по дисковым операциям. Главный вывод очевиден: хотя наш сервис не может тягаться с крупнейшии мировыми облачными провайдерами по количеству предлагаемых клиентам услуг, по качеству в своей узкой нише он вполне конкурентоспособен. Ну и по цене мы обходим их более чем вдвое.