Как выполнить тестирование и анализ производительности на minio
Как выполнить тестирование и анализ производительности на minio

Детали окружающей среды

сервер (формирует кластер, соотношение 12:4)

ip

hosts

жесткий диск

storage01

172.16.50.1

12*10T

storage02

172.16.50.2

12*10T

storage03

172.16.50.3

12*10T

storage04

172.16.50.4

12*10T

client

ip

host

headnode

172.16.50.5

node02

172.16.50.6

node03

172.16.50.7

node04

172.16.50.8

Зачем выбирать Speedtest и Warp в качестве инструментов тестирования?

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

Структура основы показана на рисунке ниже.

Детали окружающей среды

сервер (формирует кластер, соотношение 12:4)

ip

hosts

жесткий диск

storage01

172.16.50.1

12*10T

storage02

172.16.50.2

12*10T

storage03

172.16.50.3

12*10T

storage04

172.16.50.4

12*10T

client

ip

host

headnode

172.16.50.5

node02

172.16.50.6

node03

172.16.50.7

node04

172.16.50.8

Зачем выбирать Speedtest и Warp в качестве инструментов тестирования?

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

Структура основы показана на рисунке ниже.

Начать тестирование

speedtest

  1. Перед запуском необходимо скачать клиент minio.
Язык кода:javascript
копировать
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
mv mc /usr/local/bin/
  1. Запишите хост в /etc/hosts
  2. Настроить клиент
Язык кода:javascript
копировать
/usr/local/bin/mc alias set minio http://172.16.50.1:9000 <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY>
  1. Начать тестировать, выполнять (ранее называлось Speedtest, теперь изменено на поддержку перф)
Язык кода:javascript
копировать
/usr/local/bin/mc support perf minio/<bucket>

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

Язык кода:javascript
копировать
NODE                    RX              TX
http://storage01:9000   1.8 GiB/s       2.0 GiB/s
http://storage02:9000   1.8 GiB/s       2.0 GiB/s
http://storage03:9000   2.7 GiB/s       2.5 GiB/s
http://storage04:9000   2.4 GiB/s       2.2 GiB/s

NetPerf: ✔

NODE                    PATH    READ            WRITE
http://storage02:9000   /data1  192 MiB/s       235 MiB/s
http://storage02:9000   /data2  219 MiB/s       240 MiB/s
http://storage02:9000   /data3  186 MiB/s       262 MiB/s
http://storage02:9000   /data4  191 MiB/s       230 MiB/s
http://storage02:9000   /data5  179 MiB/s       221 MiB/s
http://storage02:9000   /data6  170 MiB/s       222 MiB/s
http://storage02:9000   /data7  200 MiB/s       219 MiB/s
http://storage02:9000   /data8  198 MiB/s       230 MiB/s
http://storage02:9000   /data9  166 MiB/s       207 MiB/s
http://storage02:9000   /data10 206 MiB/s       209 MiB/s
http://storage02:9000   /data11 198 MiB/s       213 MiB/s
http://storage02:9000   /data12 164 MiB/s       205 MiB/s
http://storage04:9000   /data1  172 MiB/s       259 MiB/s
http://storage04:9000   /data2  201 MiB/s       250 MiB/s
http://storage04:9000   /data3  218 MiB/s       256 MiB/s
http://storage04:9000   /data4  188 MiB/s       245 MiB/s
http://storage04:9000   /data5  157 MiB/s       197 MiB/s
http://storage04:9000   /data6  155 MiB/s       205 MiB/s
http://storage04:9000   /data7  154 MiB/s       210 MiB/s
http://storage04:9000   /data8  143 MiB/s       185 MiB/s
http://storage04:9000   /data9  181 MiB/s       207 MiB/s
http://storage04:9000   /data10 174 MiB/s       214 MiB/s
http://storage04:9000   /data11 173 MiB/s       218 MiB/s
http://storage04:9000   /data12 178 MiB/s       206 MiB/s
http://storage03:9000   /data1  194 MiB/s       337 MiB/s
http://storage03:9000   /data2  204 MiB/s       267 MiB/s
http://storage03:9000   /data3  212 MiB/s       261 MiB/s
http://storage03:9000   /data4  200 MiB/s       235 MiB/s
http://storage03:9000   /data5  168 MiB/s       216 MiB/s
http://storage03:9000   /data6  209 MiB/s       221 MiB/s
http://storage03:9000   /data7  179 MiB/s       222 MiB/s
http://storage03:9000   /data8  170 MiB/s       220 MiB/s
http://storage03:9000   /data9  144 MiB/s       186 MiB/s
http://storage03:9000   /data10 142 MiB/s       172 MiB/s
http://storage03:9000   /data11 149 MiB/s       171 MiB/s
http://storage03:9000   /data12 132 MiB/s       206 MiB/s
http://storage01:9000   /data1  99 MiB/s        119 MiB/s
http://storage01:9000   /data2  103 MiB/s       114 MiB/s
http://storage01:9000   /data3  104 MiB/s       114 MiB/s
http://storage01:9000   /data4  98 MiB/s        186 MiB/s
http://storage01:9000   /data5  186 MiB/s       261 MiB/s
http://storage01:9000   /data6  224 MiB/s       251 MiB/s
http://storage01:9000   /data7  188 MiB/s       240 MiB/s
http://storage01:9000   /data8  222 MiB/s       252 MiB/s
http://storage01:9000   /data9  185 MiB/s       247 MiB/s
http://storage01:9000   /data10 209 MiB/s       236 MiB/s
http://storage01:9000   /data11 191 MiB/s       224 MiB/s
http://storage01:9000   /data12 222 MiB/s       250 MiB/s

DrivePerf: ✔

        THROUGHPUT      IOPS
PUT     1.3 GiB/s       21 objs/s
GET     4.2 GiB/s       67 objs/s

MinIO 2022-08-25T07:17:05Z, 4 servers, 48 drives, 64 MiB objects, 62 threads

ObjectPerf: ✔

При необходимости мы можем внести некоторые корректировки и провести независимое тестирование. Например, если вам нужно измерить только скорость чтения и записи объекта, вы можете использовать следующую команду

Язык кода:javascript
копировать
mc support perf object minio

Та же причина,Мы также можем измерить пропускную способность жесткого диска или сети индивидуально.,В качестве следующей команды

Язык кода:javascript
копировать
# driver
root@storage01:~# mc support perf object minio
        THROUGHPUT      IOPS
PUT     1.6 GiB/s       26 objs/s
GET     4.0 GiB/s       63 objs/s
MinIO 2022-08-25T07:17:05Z, 4 servers, 48 drives, 64 MiB objects, 27 threads
ObjectPerf: ✔
Язык кода:javascript
копировать
# throughtput
root@storage01:~# mc support perf net minio
NODE                    RX              TX
http://storage01:9000   1.9 GiB/s       2.1 GiB/s
http://storage02:9000   2.4 GiB/s       2.2 GiB/s
http://storage03:9000   2.6 GiB/s       2.4 GiB/s
http://storage04:9000   2.1 GiB/s       2.3 GiB/s
NetPerf: ✔

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

Язык кода:javascript
копировать
root@storage01:~# mc support perf object minio --duration 20s --size 128MiB
        THROUGHPUT      IOPS
PUT     2.3 GiB/s       18 objs/s
GET     3.8 GiB/s       30 objs/s
MinIO 2022-08-25T07:17:05Z, 4 servers, 48 drives, 128 MiB objects, 41 threads
ObjectPerf: ✔

warp

существовать Начать тестирование До,Warp должен быть установлен на клиенте.,GitHub - minio/warp: S3 benchmarking toolЕсть несколько версий на выбор,Рекомендуется использовать бинарные пакеты.,Относительно легко.

Язык кода:javascript
копировать
wget https://github.com/minio/warp/releases/download/v0.6.2/warp_0.6.2_Linux_x86_64.tar.gz
mkdir warp
tar zxf warp_0.6.2_Linux_x86_64.tar.gz -C warp
# Выполнить клиента
./warp client

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

После включения warp на всех клиентах мы можем выбрать запуск одного из них для выполнения эталонного теста гибридного Warp.

Язык кода:javascript
копировать
warp mixed --duration=3m --warp-client=headnode --warp-client=node0{2...3} --host=storage0{1...4}:9000 --access-key=minio --secret-key=miniodev
warp: Benchmark data written to "warp-remote-2022-09-03[172425]-Fj1O.csv.zst"
Mixed operations.
Operation: DELETE, 10%, Concurrency: 40, Ran 2m58s.
 * Throughput: 18.47 obj/s
Operation: GET, 45%, Concurrency: 40, Ran 2m58s.
 * Throughput: 831.05 MiB/s, 83.11 obj/s
Operation: PUT, 15%, Concurrency: 40, Ran 2m58s.
 * Throughput: 276.45 MiB/s, 27.65 obj/s
Operation: STAT, 30%, Concurrency: 40, Ran 2m58s.
 * Throughput: 55.30 obj/s
Cluster Total: 1106.95 MiB/s, 184.46 obj/s over 2m58s.

Мы также можем отдельно провести стресс-тестирование операции GET, чтобы получить максимальную пропускную способность записи.

Далее мы тестируем операцию DELETE.

Язык кода:javascript
копировать
root@headnode:~# warp delete --duration=3m --warp-client=headnode --warp-client=node0{2...3} --host=storage0{1...4}:9000 --access-key=minio --secret-key=miniodev
warp: Benchmark data written to "warp-remote-2022-09-03[173528]-1d62.csv.zst"
----------------------------------------
Operation: PUT
* Average: 0.56 MiB/s, 576.46 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 0.14 MiB/s, 144.36 obj/s
 * http://storage02:9000: Avg: 0.14 MiB/s, 143.90 obj/s
 * http://storage03:9000: Avg: 0.14 MiB/s, 143.78 obj/s
 * http://storage04:9000: Avg: 0.14 MiB/s, 144.32 obj/s
Throughput, split into 86 x 1s:
 * Fastest: 655.8KiB/s, 655.89 obj/s
 * 50% Median: 584.4KiB/s, 584.43 obj/s
 * Slowest: 438.5KiB/s, 438.49 obj/s
----------------------------------------
Operation: DELETE
* Average: 897.41 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 225.39 obj/s
 * http://storage02:9000: Avg: 221.08 obj/s
 * http://storage03:9000: Avg: 220.70 obj/s
 * http://storage04:9000: Avg: 222.31 obj/s
Throughput, split into 41 x 1s:
 * Fastest: 998.26 obj/s
 * 50% Median: 890.61 obj/s
 * Slowest: 861.53 obj/s
warp: Cleanup done
Проверьте операцию DELETE
root@headnode:~# warp stat --autoterm --duration=3m --warp-client=headnode --warp-client=node0{2...3} --host=storage0{1...4}:9000 --access-key=minio --secret-key=miniodev
warp: Benchmark data written to "warp-remote-2022-09-03[173008]-vsV9.csv.zst"
----------------------------------------
Operation: PUT
* Average: 0.56 MiB/s, 584.19 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 0.14 MiB/s, 145.46 obj/s
 * http://storage02:9000: Avg: 0.14 MiB/s, 145.46 obj/s
 * http://storage03:9000: Avg: 0.14 MiB/s, 145.32 obj/s
 * http://storage04:9000: Avg: 0.14 MiB/s, 144.19 obj/s
Throughput, split into 33 x 1s:
 * Fastest: 609.4KiB/s, 624.07 obj/s
 * 50% Median: 585.7KiB/s, 599.81 obj/s
 * Slowest: 499.3KiB/s, 511.37 obj/s
----------------------------------------
Operation: STAT
* Average: 10262.16 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 2549.94 obj/s
 * http://storage02:9000: Avg: 2566.62 obj/s
 * http://storage03:9000: Avg: 2572.47 obj/s
 * http://storage04:9000: Avg: 2572.58 obj/s
Throughput, split into 179 x 1s:
 * Fastest: 10622.95 obj/s
 * 50% Median: 10268.04 obj/s
 * Slowest: 9574.31 obj/s
warp: Cleanup done.
Загружайте фрагменты файлов пакетами для тестирования производительности.
root@headnode:~# warp multipart --parts=500 --part.size=10MiB --warp-client=headnode --warp-client=node0{2...3} --host=storage0{1...4}:9000 --access-key=minio --secret-key=miniodev
warp: Benchmark data written to "warp-remote-2022-09-03[174331]-AWo5.csv.zst"
----------------------------------------
Operation: PUT
* Average: 559.26 MiB/s, 55.93 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 137.98 MiB/s, 13.80 obj/s
 * http://storage02:9000: Avg: 140.59 MiB/s, 14.06 obj/s
 * http://storage03:9000: Avg: 138.60 MiB/s, 13.86 obj/s
 * http://storage04:9000: Avg: 141.93 MiB/s, 14.19 obj/s
Throughput, split into 16 x 1s:
 * Fastest: 616.2MiB/s, 61.62 obj/s
 * 50% Median: 562.9MiB/s, 56.29 obj/s
 * Slowest: 437.3MiB/s, 43.73 obj/s
----------------------------------------
Operation: GET
* Average: 1026.15 MiB/s, 102.62 obj/s
Throughput by host:
 * http://storage01:9000: Avg: 254.73 MiB/s, 25.47 obj/s
 * http://storage02:9000: Avg: 257.86 MiB/s, 25.79 obj/s
 * http://storage03:9000: Avg: 257.91 MiB/s, 25.79 obj/s
 * http://storage04:9000: Avg: 255.68 MiB/s, 25.57 obj/s
Throughput, split into 298 x 1s:
 * Fastest: 1133.4MiB/s, 113.34 obj/s
 * 50% Median: 1030.0MiB/s, 103.00 obj/s
 * Slowest: 876.0MiB/s, 87.60 obj/s
warp: Cleanup done.

Хорошо, выше приведены некоторые тесты и резюме, которые я сделал, надеюсь, это будет полезно всем.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose