paint-brush
Бенчмаркинг MinIO с помощью WARP и Speedtestby@minio
12,070
12,070

Бенчмаркинг MinIO с помощью WARP и Speedtest

MinIO8m2023/11/08
Read on Terminal Reader

Когда производительность имеет решающее значение, вам нужно знать, что вы достигаете максимально возможной производительности.
featured image - Бенчмаркинг MinIO с помощью WARP и Speedtest
MinIO HackerNoon profile picture
0-item
1-item


Клиенты внедряют MinIO в свои среды, чтобы получить высокопроизводительное S3-совместимое объектное хранилище, работающее на любом физическом или виртуальном оборудовании и Kubernetes. Наши опубликованные тесты показывают, что MinIO — это самое быстрое доступное объектное хранилище, но оно может работать так же быстро, как и оборудование и сеть, которые вы ему предоставляете. Наша команда уделяет большое внимание производительности, поэтому мы делаем все возможное, чтобы помочь администраторам максимально эффективно использовать MinIO. Чтобы убедиться, что базовая инфраструктура может оптимально поддерживать MinIO, мы предлагаем два метода оценки производительности и выявления потенциальных узких мест: WARP и Speedtest.


Современные приложения, такие как AI/ML, расширенная аналитика и базы данных, требуют высокопроизводительного объектного хранилища. Сочетание масштабируемости и высокой производительности MinIO делает любую рабочую нагрузку, независимо от ее сложности, доступной. Когда производительность имеет решающее значение, вам нужно знать, что вы достигаете максимально возможной производительности. Результаты WARP и Speedtest можно использовать для отслеживания производительности с течением времени и заранее выявлять потенциальные проблемы, прежде чем они перерастут в серьезные проблемы.


WARP — это полнофункциональное программное обеспечение для оценки производительности S3 с открытым исходным кодом, созданное для проведения тестов между клиентами WARP и хостами объектного хранилища. WARP измеряет производительность GET и PUT от нескольких клиентов по сравнению с кластером MinIO. WARP имеет множество опций, настраиваемых с помощью командной строки или переменных среды, что позволяет вам создавать тесты, соответствующие вашим рабочим нагрузкам. Помните: крайне важно осмысленно оценивать производительность и тестировать ее с использованием данных и рабочей нагрузки, которые отражают реальные условия, в которых работает ваше объектное хранилище.


Напротив, Speedtest — это простой в использовании автоматизированный тест производительности, который обеспечивает упрощенный интерфейс и краткие результаты. В ноябре мы представили Speedtest , чтобы предоставить администраторам MinIO возможность запускать распределенную оценку производительности своих кластеров MinIO с помощью одной команды. Speedtest запускает PUTS, затем GETS, постепенно увеличивая нагрузку, чтобы определить максимальную совокупную пропускную способность. Выполнение тестов может занять от нескольких секунд до нескольких минут в зависимости от вашего кластера MinIO.


Между WARP и Speedtest есть некоторые важные различия. WARP — это полноценный инструмент, который тестирует производительность вашего кластера MinIO посредством операций, выполняемых клиентами WARP. Клиентские машины проводят PUTS и GETS объектов по сети в ваш распределенный кластер MinIO. Это делает WARP отличным механизмом для тестирования ожидаемой производительности клиент-сервер. Напротив, Speedtest запускается на экземплярах MinIO для выполнения операций PUTS и GETS объектов с другими экземплярами MinIO в том же кластере. Таким образом, Speedtest сообщает вам, на что способна серверная часть уравнения производительности.


WARP содержит практически все тесты (GET, PUT, DELETE, LIST, STAT, RETENTION), которые вы, возможно, захотите запустить для объектного хранилища, а тестовые запуски могут включать в себя индивидуальное сочетание размеров объектов, соответствующее вашим рабочим нагрузкам. Speedtest запускает заданные параметры тестирования, чтобы быстро определить максимальную пропускную способность. Хотя WARP требует дополнительного программного обеспечения, Speedtest входит в состав MinIO и может быть запущен из интерфейса mc или консоли MinIO. Чтобы помочь в устранении неполадок, клиенты могут одним щелчком мыши поделиться результатами Speedtest с инженерами MinIO.

WARP: полноценный инструмент для тестирования объектных хранилищ

Во-первых, давайте посмотрим на WARP. WARP — это инструмент, который позволяет вам тщательно протестировать производительность MinIO или любого S3-совместимого объектного хранилища в различных условиях. По умолчанию WARP выполнит смешанный тест чтения и записи на всех дисках, используемых MinIO, работающем в распределенном режиме.


Варп-поток


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


WARP находится в репозитории GitHub , там же вы найдете подробную документацию.


Мы собираемся начать с развертывания MinIO в распределенном режиме . Вы можете загрузить MinIO и установить его в своей среде самостоятельно или воспользоваться этим руководством, чтобы установить MinIO на AWS EC2 .


В любом случае, мы собираемся начать с распределенного развертывания MinIO:


Архитектура МинИО


Как только MinIO будет запущен и заработает, вы сможете измерять производительность с помощью WARP, так что давайте начнем.

Шаг 0. Создайте 4 экземпляра (также известных как узлы) с помощью Distributed MinIO.

Для любого пользовательского интерфейса Amazon или AWS CLI выполните действия из предыдущей записи блога , чтобы развернуть экземпляры, но не настраивайте дополнительное хранилище. Экземпляры, на которых работает WARP, должны быть достаточно мощными, чтобы быстро генерировать объекты и измерять операции PUT и GET, но не требовать объема хранилища, необходимого узлу MinIO.


Создание экземпляров

Шаг 2. Добавьте хосты в файл /etc/hosts на клиентах WARP.

  1. Получите IP-адреса экземпляров MinIO.
  2. Получите IP-адреса клиентов WARP
  3. Добавьте этот адрес в файл /etc/hosts:


 172.31.23.237 host1 172.31.26.78 host2 172.31.26.90 host3 172.31.19.110 host4 172.31.27.18 warp1 172.31.23.81 warp2 172.31.19.28 warp3 172.31.19.7 warp4


Обратите внимание: мы рекомендуем перечислять хосты и работать с ними в последовательном порядке. Это упрощает запуск WARP из командной строки и облегчает поиск каждого клиента WARP и хоста MinIO.

Шаг 3. Установите WARP на клиентах и запустите его.

 [root@ip-172-31-19-7 ec2-user]# wget https://github.com/minio/warp/releases/download/v0.5.5/warp_0.5.5_Linux_arm64.tar.gz 2022-02-08 20:06:04 (66.3 MB/s) - 'warp_0.5.5_Linux_arm64.tar.gz' saved [3943887/3943887] [root@ip-172-31-19-7 ec2-user]# tar -xzvf warp_0.5.5_Linux_arm64.tar.gz LICENSE README.md warp_logo.png warp [root@ip-172-31-19-7 ec2-user]# ./warp client warp: Listening on :7761


Обратите внимание, что каждый клиент WARP прослушивает порт 7761.

Шаг 4. Запустите WARP и запустите смешанный тест.

 [root@ip-172-31-27-18 ec2-user]# WARP_ACCESS_KEY=minioadmin WARP_SECRET_KEY=minioadmin ./warp mixed --warp-client warp{1...4}:7761 --host host{1...4}:9000 --duration 120s --obj.size 64M --concurrent 64 warp: Benchmark data written to "warp-remote-2022-02-08[201339]-qymu.csv.zst" Mixed operations. Operation: DELETE, 10%, Concurrency: 256, Ran 1m54s. * Throughput: 39.90 obj/s Operation: GET, 45%, Concurrency: 256, Ran 1m54s. * Throughput: 10903.28 MiB/s, 178.64 obj/s Operation: PUT, 15%, Concurrency: 256, Ran 1m54s. * Throughput: 3628.27 MiB/s, 59.45 obj/s Operation: STAT, 30%, Concurrency: 256, Ran 1m54s. * Throughput: 119.98 obj/s Cluster Total: 14501.38 MiB/s, 397.44 obj/s over 1m55s. warp: Cleanup done. [root@ip-172-31-27-18 ec2-user]#


Вы завершили базовый тест производительности в смешанном режиме с использованием WARP. Хотя для демонстрации WARP мы использовали тест в смешанном режиме, обычно вы получаете лучшие результаты, более соответствующие реальному использованию), разбивая отдельные операции (GET, PUT, LIST) на отдельные тестовые прогоны вместо запуска смешанного теста. -режим теста.


Мы рекомендуем вам обратиться к документации , чтобы узнать о выполнении дополнительных тестовых сценариев. Например, вы можете включить TLS и шифрование на стороне сервера, чтобы измерить их влияние на вашу среду. Вы можете усилить нагрузку на инфраструктуру, увеличив количество одновременных тестов. Вы можете использовать случайное сочетание размеров объектов или указать размер объекта, соответствующий вашей текущей среде и рабочей нагрузке. Вы можете настроить тесты для запуска в течение определенного периода времени или для автоматического завершения, как мы делали выше.


Результаты WARP отображаются на экране и сохраняются в локальный файл CSV, сжатый с помощью zstandard.

Speedtest для быстрой и простой оценки производительности

Если вам не нужна полная гибкость WARP, мы создали быстрый и простой способ измерения производительности MinIO с помощью Speedtest. Speedtest чаще всего запускается в режиме автонастройки, постепенно увеличивая нагрузку для определения максимальной совокупной пропускной способности.


Вы можете использовать mc для запуска Speedtest:

 $ mc support perf object <alias>


 [root@ip-172-31-77-115 ec2-user]# ./mc support perf object myminio THROUGHPUT IOPS PUT 2.4 GiB/s 38 objs/s GET 4.6 GiB/s 73 objs/s Speedtest: MinIO 2022-02-01T18:00:14Z, 4 servers, 16 drives, 64 MiB objects, 72 threads


Или вы можете запустить Speedtest из консоли MinIO, графического пользовательского интерфейса на основе браузера для настройки, управления и составления отчетов по кластерам MinIO. Просто перейдите в меню «Поддержка» и нажмите «Производительность», затем нажмите кнопку «Пуск».


Тест производительности


Тест производительности будет запущен. По завершении отображается совокупная производительность GET и PUT, а также производительность отдельных узлов.


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

Варп-скорость вперед!

Начните с загрузки MinIO сегодня. Присоединяйтесь к нашему сообществу Slack и обменивайтесь идеями с другими пользователями MinIO. Если у вас есть какие-либо конкретные вопросы об использовании WARP, свяжитесь с нами на нашем канале Slack (Мэтт Саррел и Сезар Селис) или отправьте нам электронное письмо по адресу [email protected].


Также опубликовано здесь .