Ubuntu 上 MinIO 性能测试与评估方法
一 测试目标与总体流程
ethtool <nic>。cpupower frequency-set -g performance),并按需配置 NUMA 绑定(numactl --hardware/--show)。二 基准测试工具与适用场景
| 工具 | 用途 | 关键命令或要点 |
|---|---|---|
| mc admin speedtest | 集群端到端吞吐基准(内置) | mc admin speedtest minio/ -v;自动调优逐步加压,适合快速评估集群上限;纠删码可通过环境变量设置:MINIO_STORAGE_CLASS_STANDARD=EC:4 |
| Warp | S3 场景化压测(对象大小/并发/模式可配置) | 多客户端并发,支持 GET/PUT、范围请求、混合负载;适合贴近业务的性能与延迟评估 |
| FIO | 单盘/多盘裸盘 I/O 基准 | 例如:fio -name=test -filename=/dev/nvme0n1 -direct=1 -iodepth=20 -rw=randread -ioengine=libaio -bs=8m -size=10G -runtime=300 -group_reporting |
| dperf | 文件系统/JBOD 吞吐与并发压力 | 例如:./dperf -b 4MiB /mnt/d{1..4}/t{1..40}(O_DIRECT、多文件/多线程) |
| iozone | 文件系统多文件混合访问基准 | 例如:iozone -s 1g -r 4m -i 0 -i 1 -i 2 -I -t 160 -F /mnt/d{1..4}/tmpfile.{1..40} |
| dd | 单盘快速顺序写/读验证 | 写:dd if=/dev/zero of=/dev/nvme0n1p1 bs=16M count=1024 oflag=direct;读:dd if=/dev/nvme0n1p1 of=/dev/null bs=16M count=1024 iflag=direct |
说明:Warp 为开源工具,适合做贴近业务的 S3 压测;mc admin speedtest 为 MinIO 内置能力,适合快速端到端吞吐评估。FIO/dperf/iozone/dd 用于底层存储与文件系统验证,帮助定位瓶颈来源。 |
三 标准测试场景与步骤
dd 顺序写/读验证单盘能力;fio 评估并发随机/顺序性能;dperf/iozone 验证 JBOD/文件系统表现。ethtool 确认 25/100 GbE 实际链路速率;必要时做节点间与客户端到集群的专项网络压测(如 netperf)。MINIO_STORAGE_CLASS_STANDARD=EC:2|EC:3|EC:4)。mc admin speedtest minio/ -v,记录 PUT/GET 的吞吐(GB/s)、节点间与客户端流量占比、p95/p99 延迟;若带宽接近网卡上限,写入通常低于读取(奇偶校验带来写入放大)。四 关键指标与判读
iostat -x 1);网络:带宽利用、丢包/重传(如 ethtool -S、节点间专用网)。五 监控与瓶颈定位
mc admin prometheus generate 生成 Prometheus 抓取配置,结合 Grafana 面板观测请求速率、延迟、桶/节点用量等;同时用 mc admin speedtest 做端到端对照。iostat -x 1、vmstat、sar、pidstat、top、perf 观察 CPU、内存、磁盘、网络与热点函数,定位资源瓶颈。fio/dperf/iozone)、纠删码策略(如 EC:4 对比 EC:2)、对象大小与并发模型(Warp 参数)。