Minio-性能测试案例
一、概述
1.官方介绍
官网提供的基准线测试地址: New MinIO NVMe Benchmark: 2.6Tbps on GET and 1.6Tbps on Write
官网的测试基准的硬件配置是真的高,能达到的性能也是真的强。这里主要是和大家展示其上限。我的实际环境只有HDD机械硬盘,并且使用的华为服务器,磁盘必须做RAID矩阵,对Minio也有很多影响。
二、测试环境
1.1 硬件环境
1. 硬件选择
官网的硬件推荐:Selecting the Best Hardware for Your MinIO Deployment
该链接给出了推荐硬件选择,这里硬件除了越大越好原则以及固态优先原则外,需要注意磁盘阵列不用RAID矩阵,而是JBOD【对写入影响很大!】。影响因素如下表:
影响因素 | 需求 | 影响程度 | 备注 |
---|---|---|---|
磁盘 | SSD | 重 | IO更快 |
磁盘文件格式 | XFS | 重 | 强烈建议配置 XFS 格式的驱动器用于存储。 MinIO 使用 XFS 作为内部测试和验证套件的一部分,为所有规模的性能和行为提供额外的性能。 |
集群磁盘大小 | 一致 | 中 | MinIO 将每个磁盘使用的大小限制为部署中的最小磁盘 |
集群磁盘文件格式 | 一致 | 重 | 因为某些磁盘具有不同或更差的读/写特性 |
磁盘矩阵 | JBOD | 重 | RAID允许某个磁盘损坏,但是性能差 |
内存 | 32G | 中 |
我的测试硬件为:
Node1 | Node2 | Node3 | |
---|---|---|---|
Minio磁盘文件格式 | XFS | XFS | XFS |
磁盘矩阵 | RAID5 | RAID5 | RAID5 |
磁盘大小 | 10*8T HDD | 10*8T HDD | 10*8T HDD |
内存 | 125G | 125G | 125G |
网络 | 10GB | 10GB | 10GB |
1.2 软件环境
Docker-compsoe部署Minio:我这是部署案例,我是测试是3台服务器集群。
version: '3'
services:
minio:
image: minio/minio
hostname: 'minio'
network_mode: host
environment:
TZ: Asia/Shanghai
MINIO_ROOT_USER: admin
MINIO_ROOT_PASSWORD: admin123
volumes:
- /etc/hosts:/etc/hosts
- ./data:/data
command: server --console-address ':9001' http://ip/data
privileged: true
restart: always
官网部署档:https://min.io/docs/minio/container/operations/installation.html
二、测试工具
考虑使用WARP【官方推荐的客户端测试工具,可以用非服务节点作为客户端发送压测数据】 和 Speedtest【就是其内部的MC测试方式】 对 MinIO 进行基准测试。基于网络客户端和服务器实例两种场景。
Minio分布式,RAID5测试,压测工具WARP。
1.S3_HTTP_PUT上传数据压测:
32并发,64MB文件对象,PUT S3接口 |
---|
![]() |
|
| 网络IO |
| 磁盘IO |
2. MC测试
节点 | 写入速率 | 备注 | 测试工具 |
---|---|---|---|
231/232/233 | 104-200.45 MiB/s | 3个minio节点(其他服务均无负荷) | mc(负载均衡) |
三、测试结果
建议使用RAID0代替RAID5,提升IO性能,舍弃数据冗余。单机情况下需要考虑数据备份,集群情况下基于纠错码恢复数据,多节点磁盘损坏可能导致数据丢失。硬件的选择对Minio有很大影响,之后我测试了RAID0,单节点磁盘写入能达到1GB/S的速率,但是不容忍磁盘损坏。