在开始性能测试前,需完成以下基础配置:
docker run -p 9000:9000 -p 9001:9001 --name minio \
-e "MINIO_ROOT_USER=admin" -e "MINIO_ROOT_PASSWORD=password123" \
minio/minio server /data --console-address ":9001"
sync; echo 3 > /proc/sys/vm/drop_caches),确保测试环境无干扰。dd是Ubuntu自带的简单磁盘I/O测试工具,适合快速评估MinIO底层存储性能。
dd if=/dev/zero of=/tmp/minio_test bs=1M count=1024 conv=fdatasync
if=/dev/zero(输入源为0数据流)、of=/tmp/minio_test(输出文件)、bs=1M(块大小1MB)、count=1024(1024块,共1GB)、conv=fdatasync(强制将数据写入磁盘,避免缓存影响)。dd if=/tmp/minio_test of=/dev/null bs=1M count=1024
of=/dev/null(丢弃输出数据),用于测试存储设备的读取速度。fio(Flexible I/O Tester)是专业级I/O测试工具,支持模拟随机/顺序读写、多线程/进程等复杂场景,能更精准评估MinIO性能。
sudo apt-get install fio
fio --ioengine=libaio --bs=4k --direct=1 --thread --time_based --rw=randread \
--filename=/tmp/fio_randread.test --runtime=60 --numjobs=16 --iodepth=16 \
--group_reporting --name=randread_test
fio --ioengine=libaio --bs=1M --direct=1 --thread --time_based --rw=write \
--filename=/tmp/fio_seqwrite.test --runtime=60 --numjobs=8 --iodepth=8 \
--group_reporting --name=seqwrite_test
--ioengine=libaio(异步I/O引擎)、--direct=1(绕过缓存)、--rw(读写模式)、--numjobs(线程数)、--iodepth(队列深度)。warp是MinIO官方提供的性能测试工具,专门针对对象存储场景设计,支持模拟多客户端并发访问,能全面评估MinIO的吞吐量、延迟等指标。
wget https://github.com/minio/warp/releases/download/v1.0.0/warp-linux-amd64.tar.gz
tar -xzf warp-linux-amd64.tar.gz
cd warp
export WARP_ACCESS_KEY=admin
export WARP_SECRET_KEY=password123
192.168.1.100:9000)的10MB对象并发上传性能(10个客户端,持续5秒):./warp client --host 192.168.1.100:9000 --access-key $WARP_ACCESS_KEY \
--secret-key $WARP_SECRET_KEY --duration 5s --obj.size 10M --concurrent 10
--host(MinIO服务器地址)、--obj.size(测试对象大小)、--concurrent(并发客户端数)、--duration(测试时长)。性能测试过程中,需实时监控系统资源使用情况,定位瓶颈:
top或htop查看MinIO进程的CPU占用率(若CPU使用率接近100%,可能需要增加CPU核心数)。free -m查看内存使用情况(若内存不足,可能导致频繁交换分区,影响性能)。iostat -x 1查看磁盘的读写速度(await值过高表示磁盘响应慢)、I/O等待时间(%util接近100%表示磁盘饱和)。iftop或nload查看网络带宽使用情况(若带宽接近上限,可能需要升级网络设备)。/tmp下的测试文件),避免残留数据影响结果。