1. 使用MinIO官方工具(mc)进行基础性能测试
MinIO自带的mc
(MinIO Client)是针对MinIO服务器设计的轻量级工具,适合快速验证上传、下载等基础操作的吞吐量。
curl -LO https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
mc alias set
命令设置服务器地址、访问密钥(默认minioadmin
)和秘密密钥(默认minioadmin
):mc alias set myminio http://<minio-server-ip>:9000 minioadmin minioadmin
mc cp
命令复制文件,观察传输时间和速度(可通过-v
参数显示详细进度)。例如:
mc cp /path/to/local/largefile myminio/mybucket/
mc cp myminio/mybucket/largefile /path/to/save/
2. 使用fio进行深度磁盘I/O性能测试
fio是Linux下最灵活的I/O测试工具,支持模拟随机/顺序读写、多线程/进程、不同块大小等复杂场景,能精准评估MinIO底层的磁盘性能。
sudo apt-get update && sudo apt-get install fio -y
fio --name=seq_write --filename=/tmp/fio_testfile --size=1G --bs=1M --rw=write --numjobs=4 --time_based --runtime=60 --group_reporting
fio --name=rand_read --filename=/tmp/fio_testfile --size=1G --bs=4k --rw=randread --numjobs=8 --time_based --runtime=60 --group_reporting --direct=1
fio --name=mixed_rw --filename=/tmp/fio_testfile --size=1G --bs=8k --rw=randrw --rwmixread=70 --rwmixwrite=30 --numjobs=4 --time_based --runtime=60 --group_reporting
--filename
指定测试文件路径(建议使用MinIO挂载点或本地存储路径);--numjobs
控制并发线程数;--runtime
设置测试时长;--direct=1
启用直接I/O(绕过系统缓存,结果更接近真实场景)。3. 使用dd命令进行快速磁盘基准测试
dd是Linux内置的基础工具,适合快速测量磁盘的原始读写速度(不涉及MinIO服务端逻辑,仅测试存储介质性能)。
dd if=/dev/zero of=/tmp/dd_testfile bs=1M count=1024 conv=fdatasync
命令解释:if=/dev/zero
表示输入源为无限零流;of=/tmp/dd_testfile
指定输出文件;bs=1M
设置块大小为1MB;count=1024
生成1GB文件;conv=fdatasync
确保数据同步至磁盘。dd if=/tmp/dd_testfile of=/dev/null bs=1M count=1024 status=progress && sync
参数说明:if=/tmp/dd_testfile
指定输入文件;of=/dev/null
丢弃输出数据;status=progress
显示实时进度。4. 使用wrk进行REST API压力测试
wrk是一款高性能HTTP压力测试工具,适合测试MinIO的RESTful API(如对象上传、下载、列举等)的吞吐量和延迟,模拟多客户端并发请求。
wget https://github.com/wg/wrk/archive/refs/tags/v4.1.0.tar.gz
tar -xzf v4.1.0.tar.gz
cd wrk-4.1.0
make
sudo cp wrk /usr/local/bin/
PUT
对象接口为例,测试10个并发客户端在60秒内的上传性能:export MINIO_ACCESS_KEY=minioadmin
export MINIO_SECRET_KEY=minioadmin
wrk -t4 -c10 -d60s -H "Host: minio.example.com" -H "Content-Type: application/octet-stream" --latency \
-s post_object.lua http://<minio-server-ip>:9000/mybucket/testfile
脚本说明:post_object.lua
是自定义Lua脚本(需提前创建),用于构造PUT
请求;-t4
设置4个线程;-c10
设置10个并发连接;-d60s
设置测试时长为60秒;--latency
显示延迟分布。5. 监控系统资源使用情况
性能测试期间,需同步监控系统资源(CPU、内存、磁盘I/O、网络带宽),识别瓶颈点:
top
或htop
命令查看MinIO进程的CPU占用率(若CPU使用率持续超过80%,可能需要增加CPU核心数)。free -m
命令查看内存使用情况(若available
内存不足,可能导致频繁交换分区,影响性能)。iostat -x 1
命令查看磁盘的await
(平均I/O等待时间)、%util
(磁盘利用率,若超过70%说明磁盘繁忙)。iftop
或nload
命令查看网络接口的入站/出站流量(若带宽使用率接近上限,可能需要升级网络设备)。