Тестирование производительности облачных инфраструктур

Как правильно тестировать облако перед размещением инфраструктуры? В этой статье мы рассказываем об основных сложностях при тестировании облака и рассматриваем, какие инструменты эффективные, а какие - нет.

Какие проблемы возникают при тестировании облака?

Выбирая облако для размещения инфраструктуры, пользователи часто просят «тест-драйв», чтобы оценить удобство работы и производительность ресурсов. Многие, даже опытные специалисты представляют процесс тестирования упрощенно, поэтому они ограничиваются запуском набора синтетических или рабочих тестов. Подобные тесты применяются для настольных компьютеров. На практике, у таких исследователей возникают сложности из-за относительной новизны облачных технологий и отличий виртуальных машин от «железных» серверов. Даже у IT-специалистов со стажем часто не хватает знаний и опыта тестирования облачных ресурсов, а общепринятых стандартов не существует.

Вот в чем главная причина: производительность классической программной системы оценивают при определенной рабочей нагрузке для фиксированной конфигурации. Но обеспечить стабильную нагрузку и конфигурацию ресурсов в публичном облаке не получится. Чтобы адаптироваться к меняющимся условиям арендаторов, провайдеры автоматически выделяют и освобождают ресурсы «на лету».

Вместо того, чтобы измерять среднюю производительности статической системы при максимальной нагрузке, логичнее оценить другие характеристики. Например, способность облачных сервисов адаптироваться к изменяющимся нагрузкам с точки зрения производительности и затрат. Дополнительная метрика должна охватывать надежность этих сервисов при сбоях отдельных узлов, а также при полном отключении ЦОД.

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

  • с различными возможностями;
  • с отличающимися гарантиями;
  • со своими параметрами сервиса, прописанными в договоре SLA.

Как говорят, приходится сравнивать яблоки с апельсинами.

О чем важно помнить до начала тестирования:

  • технологии распределенных вычислений быстро развивается и существует множество несовместимых реализаций;
  • рынок облачных IaaS молод и находится на стадии разработок, экспериментов;
  • у пользователя нет непосредственного контакта с оборудованием, поэтому он взаимодействует с арендованными ресурсами удаленно, через веб-интерфейс;
  • профессиональные пакеты ПО для тестирования стоят немалых денег

Применять «железные» тесты к облаку можно - но практическая польза от этого невелика

Можно ли применить «железные» тесты к облаку?

Для оценки производительности настольного компьютера используют несколько наборов тестов - отдельно центрального и графического процессоров, оперативной и дисковой памяти, сетевых адаптеров. Результаты испытаний новейших процессоров и видеокарт становятся объектами дискуссий в интернете.Скепсис, который вызывают такие тесты, вполне обоснован.

Оборудование зачастую переводят в режим, который не используется для ежедневной работы, чтобы получить рекордные результаты. Перед тестированием нередко выполняются «разгоны» процессоров и памяти с организацией дополнительного охлаждения, рискованные эксперименты с тонкими настройками BIOS, бета-версиями драйверов устройств и т.д. Возможно, полученные цифры обрадуют победителей, но они вряд ли смогут стабильно работать и дальше с такими настройками оборудования и ПО. Что касается виртуальной среды, там «разгон» компонентов невозможен.

Принцип работы ВМ существенно отличается от привычного для пользователей физического оборудования. Если процессорное ядро физического компьютера однозначно локализуется на кристалле CPU, то в IaaS – это имитация квоты, выделенной из общей мощности облака. Эта виртуальная квота создается при помощи гипервизора. Каждому пользователю предоставляют заказанный объем ресурсов, но реальное состояние и статус облачной инфраструктуры все время изменяется:

  • при добавлении и удалении запущенных «инстансов» – абстракций сред выполнения, виртуальных машин;
  • после запуска и остановки работающих приложений;
  • за счет колебаний пользовательской загрузки;
  • во время выполнения бэкапов, восстановления данных.

Отличия между выделенным сервером и ВМ Различия в структуре физического CPU и виртуальной машины

Таким образом, есть высокая вероятность того, что при повторных запусках одного и того же теста в разное время, результаты не будут идентичными.

Ответить на вопрос о применимости тестов для физического оборудования к облачным инфраструктурам можно так: применять «железные» тесты к облаку можно - но практическая польза от этого невелика.

Тестирования процессоров, памяти и дисков недостаточно для всесторонней оценки облака

Как тестировать облачные инфраструктуры?

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

Тестирования производительности отдельных подсистем (процессоров, памяти, дисков) для всесторонней оценки облака явно недостаточно, в отличие от подобных тестов настольных компьютеров. Но для самой начальной проверки работоспособности IaaS их все же используют.

Экономическая целесообразность для бизнеса – один из главных факторов, которые стимулируют развитие облачных вычислений. Это включает в себя доступность услуги, стабильную работу при колебаниях нагрузки, безопасность, резервное копирование и многое другое. Эти аспекты не всегда оцениваются цифрами производительности, но влияют на комфортное и предсказуемое использование услуги пользователем. Таким образом, не стоит ограничиваться формальным проведением теста с применением даже самого мощного ПО.

Минимальный (и достаточный, в большинстве случаев) сценарий тестирования перед началом работы может выглядеть так:

  • измерение быстродействия виртуальных машин в облаке;
  • тестирование скорости передачи данных между узлами инфраструктуры;
  • проверка доступности и масштабируемости, эластичности облачного сервиса в разное время суток;
  • испытания работоспособности бэкапа и восстановления данных;
  • оценка времени реагирования технической поддержки провайдера на обращение.

Для профессионального исследования и оценки производительности облачных ресурсов, можно воспользоваться этим тестовым ПО:

  • SPEC Cloud (TM) IaaS 2016 Benchmark;
  • Hewlett Packard Enterprise StormRunner Load;
  • LoadStorm;
  • SOASTA CloudTest;
  • LoadImpact;
  • BlazeMeter;
  • SmartBear LoadComplete;
  • Spirent Blitz;
  • SendGrid Loader.

Эти и подобные пакеты требуют серьезной подготовки и высокой квалификации пользователя для применения. Это ПО доступно по подписке или за разовую оплату; однако некоторые из перечисленных пакетов предлагаются в демоверсии с ограниченным сроком действия и усеченными возможностями.

В любом случае, необходимо иметь продуманный план - сценарий подготовки и запуска измерений, сбора и получения результатов (бенчмарок). При этом, используется понятие SUT (System Under Test, система в состоянии тестирования) – набор обязательных компонентов для запуска сценария измерения. Этот набор включает в себя те компоненты облака, параметры которых интересуют пользователя и все остальные, без функционала которых не обойтись при тестировании и параметры которых должны быть известны заранее. Кроме того, пакет ПО содержит драйверы, имитирующие рабочую нагрузку для тестируемой инфраструктуры IaaS.

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

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

Узнайте больше про высокодоступное публичное облако SIM-Cloud

Узнать больше

В заключение

Для тестирования облака стоит использовать специализированные тесты, а не применять «железные» из-за существенных отличий в принципах их работы. Лучший способ оценить возможности облачной инфраструктуры – использовать тесты, которые симулируют реальную работу систем. Более того, недостаточно оценить производительность компонентов. На эффективность работы в облаке влияют другие факторы, которые не оценить при помощи аппаратного тестирования. Среди таких факторов – время ответа поддержки провайдера, отказоустойчивость, защита данных и т.д.

Готовясь к тестированию, обсудите это с техподдержкой провайдера. Так вы получите квалифицированную консультацию заранее, избежите недоразумений из-за несовместимости аппаратных ресурсов или системы виртуализации провайдера с выбранным для проекта пакетом тестового ПО.

Эта статья была полезной?

Тэги:

#облако

Понравилась статья?

Согласие на использование файлов cookie

Нажимая «Я согласен», вы даете согласие на использование файлов cookie на нашем веб-сайте, чтобы предоставить вам наиболее релевантный опыт, запоминая ваши предпочтения и повторные посещения. Однако вы можете посетить «Управление файлами cookie», чтобы предоставить контролируемое согласие. Подробнее

Настройки файлов cookie

Функциональные

Необходимые файлы cookie имеют решающее значение для основных функций веб-сайта, и без них веб-сайт не будет работать должным образом.

Аналитические

Аналитические файлы cookie используются для понимания того, как посетители взаимодействуют с веб-сайтом.

Рекламные

Рекламные файлы cookie используются для предоставления посетителям релевантной рекламы и маркетинговых кампаний.