Оказывается, у VMware есть интересная утилита с открытым исходным кодом – Weathervane. Это бенчмаркинг-тул, предназначенный для запуска тестов производительности в виртуальных средах VMware vSphere (как онпремизных, так и облачных), с учетом симуляции реальной нагрузки различных приложений.
Weathervane позволяет, например, снять метрики с двух различных окружений или его конфигураций, что позволит выбрать наиболее производительную конфигурацию виртуального окружения и выставить самые эффективные настройки виртуальной среды. Также с помощью Weathervane компания VMware сама делает различные тесты, к примеру, вот документ о производительности контейнеров Docker в виртуальной среде VMware vSphere – “Performance of enterprise web applications in Docker containers on VMware vSphere 6.5”.
Weathervane имеет возможности по развертыванию нескольких независимых экземпляров приложения и его отдельных сервисов в контейнерах Docker, запуску различных нагрузок и конфигурации параметров их исполнения для измерения необходимых метрик производительности. То есть, это утилита для бенчмаркинга производительности именно на уровне приложений.
Weathervane состоит из трех основных компонентов:
+ Приложение (Auction application), которое развертывается в среде тестирования.
+ Драйвер рабочей нагрузки (Workload driver), который выдает реалистичную нагрузку для приложения с учетом заданных параметров тестирования
+ Компонент исполнения (Run harness), который автоматизирует процесс исполнения тестовых запусков приложения и собирает результаты, логи и, собственно, данные о производительности
Также в составе Weathervane есть Supporting tools, которые включают в себя скрипты для настройки экземпляра операционной системы со всем необходимым для запуска утилиты, создания образов Docker и подготовки приложения для запуска в среде тестирования.
При проведении тестирования вы можете изменять следующие параметры:
+ Число экземпляров на уровне каждого сервиса. Например, может быть любое число балансировщиков нагрузки, серверов приложений или узлов веб-серверов. Это позволяет создавать конфигурации любого масштаба.
+ Число ярусов целевой архитектуры. Например, вы можете не использовать некоторые компоненты, такие как балансировщики и веб-сервера, если вам нужно протестировать небольшую по объему среду.
+ Вариант развертывания среды. Например, Weathervane сейчас поддерживает PostgreSQL и MySQL в качестве транзакционной БД, а также Apache Httpd и Nginx в качестве веб-серверов. Ну и надо помнить, что это open source проект, а значит вы сами можете расширять его.
+ Конфигурацию сервисов. В настроечном файле можно изменять параметры для каждого из ярусов, которые будут применяться компонентом run harness перед началом каждого прогона бенчмарка.
Для больших инфраструктур и тестовых сред Enterprise-приложений Weathervane предоставляет следующие средства:
+ Вы можете запускать экземпляры приложения напрямую в ОС, неважно в физической или виртуальной машине, а также в контейнерах Docker (это позволит сравнить эти варианты развертывания между собой по производительности). Как мы писали выше, Weathervane содержит скрипты для создания образов Docker для всех сервисов приложений.
+ Вы можете задать пользовательскую нагрузку для экземпляров приложения, которая позволит оценить поведение приложения при критических нагрузках, циклических паттернах нагрузки и поведение сервиса в плане эластичности.
+ Поддерживается изменение числа экземпляров приложения прямо во время исполнения теста, что позволит снять метрики, относящиеся к эластичности сервиса (то есть его способности динамически выделять и освобождать ресурсы при изменении нагрузки). В будущем будет также добавлен мониторинг поведения среды в реальном времени, чтобы оперативно оценивать эластичность и инертность сервиса по отношению к нагрузке.
Источник vmgu.ru