1、硬件环境
| 组件 | 配置/版本 | 说明 | 备注 |
|---|---|---|---|
| 操作系统 | Ubuntu 22.04 LTS | 轻量级,低初始资源公司常用系统 | |
| cpu | 2核 | 低配置 | |
| 内存 | 4G | 重点关注资源 | |
| 存储 | 50G HDD(挂载到/data) | 单磁盘,无raid | 需要定时清理 |
| minIo版本 | RELEASE.2minio-test/023-12-06T09-09-22Z | 裸机部署/docker部署 | |
| 网络 | 本地千兆网络 | 专用测试网络,无其他干扰 |
2、基准测试工具
| 测试工具 | 功能说明 | 备注 |
|---|---|---|
| mc (MinIO Client) | 内置基准测试工具 | mc support perf的基准测试需要企业版才可以,所以基准测试需要另外工具来完成。 |
| minio/warp | minIO开源组织的客户端基准测试工具 | 需要独立安装,模拟真实的客户端 |
2.1、mc工具安装:
直接到github下载对应的二进制文件,注意下载的版本一定要大于等于minio的版本。
可执行文件下载地址:<https://dl.min.io/client/mc/release/linux-amd64/archive/>
项目地址:[GitHub - minio/mc: Unix like utilities for object store](https://github.com/minio/mc)
mc使用文档:[MinIO客户端 — MinIO中文文档 | MinIO Linux中文文档](https://www.minio.org.cn/docs/minio/linux/reference/minio-mc.html)
把二进制文件拷贝到要运行的机器直接执行,重命名成简短的mc:
minIO后台申请客户端访问秘钥:
accessKey: xxxxxx
secretKey: xxxx
设置mc连接配置命令:
设置成功界面
测试连接是否正常
2.2、minio/warp的安装
下载地址:Releases · minio/warp · GitHub
选择下载二进制文件并解压并拷贝到带压测的机器
授予运行权限:
配置yml文件来进行后续的测试:
2.3、测试数据准备
本地生产1k、10m、1minio-test/00m、5minio-test/00m、1G的txt文件并上传到mc客户端的机器来进行下一步压测。
使用python脚本来批量生产测试数据:
1、基础功能验证
| 测试项 | 步骤 | 预期结果 | 备注 |
|---|---|---|---|
| 服务启动 | 1. 运行启动minio 2. 检查日志无报错 | MinIO 服务正常启动,控制台可访问 | 具体指令运维处理 |
| Bucket 操作 | 创建 bucket、删除bucket、查看bucket | Bucket 创建成功,列表可见 | |
| 文件上传 | 1.上传 10个 10MB 文件 2. 检查minio服务列表是否新增 | 文件上传成功,元数据正确 | |
| 文件下载 | 1.下载已上传的10个10MB文件 2. 检查本地磁盘文件是否下载 | 文件内容完整,MD5 校验一致 | |
| 删除操作 | 1. 删除已上传的文件 2. 检查minio服务列表是否删除 | 文件被删除,Bucket 状态更新 |
2、边界性能测试
| 测试场景 | 方法 | 监控指标 | 预期阈值(参考) |
|---|---|---|---|
| 小文件高并发读写 | 使用 warp压测 1KB 文件,测试并发上限,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
| 大文件顺序读写 | 使用 warp压测 1minio-test/00MB 文件,测试并发上限,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
| 大小文件混合读写 | 使用 1k、1minio-test/00MB 文件持续测试读写,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
3、稳定性测试
| 测试项 | 方法 | 预期结果 |
|---|---|---|
| 长时间运行 | 持续运行 MinIO 24 小时,每小时上传 1minio-test/00 个 10MB 文件 | 服务无崩溃,无 OOM 终止 |
| 断点续传 | 1. 上传 5minio-test/00MB、1GB 文件时中断网络 2. 恢复网络后重试上传 | 文件续传成功,数据一致性校验通过 |
| 磁盘空间不足 | 1. 填充磁盘至 95% 2. 尝试上传新文件 | 返回明确错误(5minio-test/03 Service Unavailable) |
三、测试报告
1、基础功能测试
| 测试项目 | 指令 | 测试内容 | 是否符合预期 | 备注 |
|---|---|---|---|---|
| 服务启动 | 运维执行 | docker启动服务器 | 是 | |
| Bucket 操作 | 1. 创建 bucket:./mc mb minio/test-bucket 3. 查看bucket: ./mc ls minio | 创建/删除/查看 | 是 | |
| 文件上传 | 1. 上传 10个 10MB 文件:./mc cp -r testData/*10m.txt minio/test-bucket | 上传10个10M的txt文件 | 是 | |
| 文件下载 | 1. 下载已上传文件:./mc find minio/test-bucket --name "*m.txt" --exec "./mc cp {} downloadData/" | 批量把上传的下载到本地 | 是 | |
| 删除操作 | 1. 删除已上传的文件: 2. 检查列表更新: ./mc ls minio | 批量删除上传的文件 | 是 |
-
边界性能测试
2.1、小文件写上限
测试内容:
| 持续时间 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|
| 10min | 1kb | 16 | 不限制 | 否 |
执行指令:./warp run min_file_put.yml 配置文件:min_file_put.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 621455 | 个 | |
| 总对象数量 | 621455 | 个 | |
| 总对象大小 | 606.9 | MB | |
| 测试流程耗时 | 597 | s | |
| 平均吞吐量 | 1minio-test/035 | obj/s | 多少个对象每秒 |
| 最慢吞吐量 | 79.13 | obj/s | |
| 最快吞吐量 | 1281.87 | obj/s | |
| 50%中位数吞吐 | 1173.10 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均写入速率 | 1minio-test/035.1 | KB/s | |
| 最慢写入速率 | 79.1 | KB/s | |
| 最快写入速率 | 1281.9 | KB/s | |
| 50%写入速率 | 1173.1 | KB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | 16.1 | ms | |
| 50%延迟 | 14.9 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | 20.6 | ms | |
| 99%延迟 | 39.8 | ms | |
| 最快请求 | 4 | ms | |
| 最慢请求 | 1093.1 | ms | |
| 请求标准偏差 | 8.3 | ms |
在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。
|
3、稳定性测试
| 测试项 | 方法 | 预期结果 |
|---|---|---|
| 长时间运行 | 持续运行 MinIO 24 小时,每小时上传 1minio-test/00 个 10MB 文件 | 服务无崩溃,无 OOM 终止 |
| 断点续传 | ||
| 1. 上传 5minio-test/00MB、1GB 文件时中断网络 |
2. 恢复网络后重试上传
| 文件续传成功,数据一致性校验通过 | | 磁盘空间不足 |
1. 填充磁盘至 95%
2. 尝试上传新文件
| 返回明确错误(5minio-test/03 Service Unavailable) |
三、测试报告
1、基础功能验证
| 测试项 | 步骤 | 预期结果 | 备注 |
|---|---|---|---|
| 服务启动 | 1. 运行启动minio 2. 检查日志无报错 | MinIO 服务正常启动,控制台可访问 | 具体指令运维处理 |
| Bucket 操作 | 创建 bucket、删除bucket、查看bucket | Bucket 创建成功,列表可见 | |
| 文件上传 | 1.上传 10个 10MB 文件 2. 检查minio服务列表是否新增 | 文件上传成功,元数据正确 | |
| 文件下载 | 1.下载已上传的10个10MB文件 2. 检查本地磁盘文件是否下载 | 文件内容完整,MD5 校验一致 | |
| 删除操作 | 1. 删除已上传的文件 2. 检查minio服务列表是否删除 | 文件被删除,Bucket 状态更新 |
2、边界性能测试
| 测试场景 | 方法 | 监控指标 | 预期阈值(参考) |
|---|---|---|---|
| 小文件高并发读写 | 使用 warp压测 1KB 文件,测试并发上限,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
| 大文件顺序读写 | 使用 warp压测 1minio-test/00MB 文件,测试并发上限,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
| 大小文件混合读写 | 使用 1k、1minio-test/00MB 文件持续测试读写,持续10分钟 | 1. minio吞吐量 (ops/s) 3. minio读写速率 | 在系统资源没达到阈值的情况下minIO的吞吐和读写速率越大越好,p99延迟越低越好。 |
3、稳定性测试
| 测试项 | 方法 | 预期结果 |
|---|---|---|
| 长时间运行 | 持续运行 MinIO 24 小时,每小时上传 1minio-test/00 个 10MB 文件 | 服务无崩溃,无 OOM 终止 |
| 断点续传 | 1. 上传 5minio-test/00MB、1GB 文件时中断网络 2. 恢复网络后重试上传 | 文件续传成功,数据一致性校验通过 |
| 磁盘空间不足 | 1. 填充磁盘至 95% 2. 尝试上传新文件 | 返回明确错误(5minio-test/03 Service Unavailable) |
三、测试报告
1、基础功能测试
| 测试项目 | 指令 | 测试内容 | 是否符合预期 | 备注 |
|---|---|---|---|---|
| 服务启动 | 运维执行 | docker启动服务器 | 是 | |
| Bucket 操作 | 1. 创建 bucket:./mc mb minio/test-bucket 3. 查看bucket: ./mc ls minio | 创建/删除/查看 | 是 | |
| 文件上传 | 1. 上传 10个 10MB 文件:./mc cp -r testData/*10m.txt minio/test-bucket | 上传10个10M的txt文件 | 是 | |
| 文件下载 | 1. 下载已上传文件:./mc find minio/test-bucket --name "*m.txt" --exec "./mc cp {} downloadData/" | 批量把上传的下载到本地 | 是 | |
| 删除操作 | 1. 删除已上传的文件: 2. 检查列表更新: ./mc ls minio | 批量删除上传的文件 | 是 |
-
边界性能测试
2.1、小文件写上限
测试内容:
| 持续时间 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|
| 10min | 1kb | 16 | 不限制 | 否 |
执行指令:./warp run min_file_put.yml
配置文件:min_file_put.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 621455 | 个 | |
| 总对象数量 | 621455 | 个 | |
| 总对象大小 | 606.9 | MB | |
| 测试流程耗时 | 597 | s | |
| 平均吞吐量 | 1minio-test/035 | obj/s | 多少个对象每秒 |
| 最慢吞吐量 | 79.13 | obj/s | |
| 最快吞吐量 | 1281.87 | obj/s | |
| 50%中位数吞吐 | 1173.10 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均写入速率 | 1minio-test/035.1 | KB/s | |
| 最慢写入速率 | 79.1 | KB/s | |
| 最快写入速率 | 1281.9 | KB/s | |
| 50%写入速率 | 1173.1 | KB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | 16.1 | ms | |
| 50%延迟 | 14.9 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | 20.6 | ms | |
| 99%延迟 | 39.8 | ms | |
| 最快请求 | 4 | ms | |
| 最慢请求 | 1093.1 | ms | |
| 请求标准偏差 | 8.3 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存(M) | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4G | 135 | 读514.minio-test/01kb/s、写15.22MB/s | 读125.49io/s、写1850io/s | 发382kb/s、收1.35MB/s | |
| 系统资源监控截图: |
2.2、小文件读上限
测试内容:
| 持续时间 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|
| 10min | 1kb | 16 | 不限制 | 否 |
执行指令:./warp run min_file_get.yml
配置文件:min_file_get.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 58minio-test/0minio-test/027 | 个 | |
| 总对象数量 | 58minio-test/0minio-test/027 | 个 | |
| 总对象大小 | 566.4 | MB | |
| 测试流程耗时 | 597 | s | |
| 平均吞吐量 | 966 | obj/s | |
| 最慢吞吐量 | 780.98 | obj/s | 多少个对象每秒 |
| 最快吞吐量 | 1378.72 | obj/s | |
| 50%中位数吞吐 | 953.15 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均读取速率 | 966.4 | KB/s | |
| 最慢读取速率 | 781 | KB/s | |
| 最快读取速率 | 1378.7 | KB/s | |
| 50%读取速率 | 953.2 | KB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | 17 | ms | |
| 50%延迟 | 4 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | 77 | ms | |
| 99%延迟 | 85 | ms | |
| 最快请求 | 1 | ms | |
| 最慢请求 | 183 | ms | |
| 请求标准偏差 | 28 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存 | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4G | 2minio-test/00 | 读467.04kb/s、写0kb/s | 读114.minio-test/02io/s、写39.58io/s | 收410kb/s、发1MB/s |
系统资源监控截图:
2.3、小文件混合读写上限
测试内容:
| 持续时间 | 读写比例 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|---|
| 10min | 1:1 | 1kb | 16 | 不限制 | 否 |
执行指令:./warp run min_file_mixed.yml
配置文件:min_file_mixed.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 726991 | 个 | |
| 总对象数量 | 726991 | 个 | |
| 总对象大小 | 710 | MB | |
| 测试流程耗时 | 597 | s | |
| 平均吞吐量 | 605 | obj/s | |
| 最慢吞吐量 | 253.14 | obj/s | 多少个对象每秒 |
| 最快吞吐量 | 1896.77 | obj/s | |
| 50%中位数吞吐 | 1131.67 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均写入速率 | 605.2 | KB/s | |
| 最慢写入速率 | 253.1 | KB/s | |
| 最快写入速率 | 1896.8 | KB/s | |
| 50%写入速率 | 1131.7 | KB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | get:5.5/put:21.4 | ms | |
| 50%延迟 | get:2.6/put:13.8 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | get:8.9/put:52.1 | ms | |
| 99%延迟 | get:57.5/put:78.7 | ms | |
| 最快请求 | get:1.1/put:2.9 | ms | |
| 最慢请求 | get:418.2/put:827.4 | ms | |
| 请求标准偏差 | get:10.4/put:19.1 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存(M) | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4G | 2minio-test/00 | 读965.49kb/s、写13.78MB/s | 读235.71io/s、写1580io/s | 收1.33MB/s、发1.14MB/s |
系统资源监控截图:
2.4、大文件写上限
测试内容:
| 持续时间 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|
| 10min | 1minio-test/00MB | 16 | 不限制 | 否 |
执行指令:./warp run max_file_put.yml
配置文件:max_file_put.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 3minio-test/02 | 个 | |
| 总对象数量 | 3minio-test/02 | 个 | |
| 总对象大小 | 29.49 | GB | |
| 测试流程耗时 | 624 | s | |
| 平均吞吐量 | 0.48 | obj/s | |
| 最慢吞吐量 | 0.23 | obj/s | 多少个对象每秒 |
| 最快吞吐量 | 0.58 | obj/s | |
| 50%中位数吞吐 | 0.48 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均写入速率 | 48.24 | MB/s | |
| 最慢写入速率 | 22.6 | MB/s | |
| 最快写入速率 | 58.1 | MB/s | |
| 50%写入速率 | 47.9 | MB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | 32810 | ms | |
| 50%延迟 | 34478.9 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | 38530.9 | ms | |
| 99%延迟 | 38530.9 | ms | |
| 最快请求 | 11875.8 | ms | |
| 最慢请求 | 51338.9 | ms | |
| 请求标准偏差 | 4532.7 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存(M) | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4G | 46.7 | 读85.24kb/s、写35.16MB/s | 读20.81io/s、写1minio-test/00.71io/s | 收43.5MB/s、发182kb/s |
系统资源监控截图:
内存异常情况:容器内minio进程内存没降下来在波动
2.5、大文件读上限
测试内容:
| 持续时间 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|
| 10min | 1minio-test/00MB | 16 | 不限制 | 否 |
执行指令:./warp run max_file_get.yml
配置文件:max_file_get.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 672 | 个 | |
| 总对象数量 | 672 | 个 | |
| 总对象大小 | 65.62 | GB | |
| 测试流程耗时 | 6minio-test/01 | s | |
| 平均吞吐量 | 1 | obj/s | |
| 最慢吞吐量 | 1.11 | obj/s | 多少个对象每秒 |
| 最快吞吐量 | 1.12 | obj/s | |
| 50%中位数吞吐 | 1.11 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均读取速率 | 111.4 | MB/s | |
| 最慢读取速率 | 111.2 | MB/s | |
| 最快读取速率 | 111.8 | MB/s | |
| 50%读取速率 | 111.4 | MB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | 14364 | ms | |
| 50%延迟 | 14364.8 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | 14371.1 | ms | |
| 99%延迟 | 14373 | ms | |
| 最快请求 | 14116.7 | ms | |
| 最慢请求 | 14471.4 | ms | |
| 请求标准偏差 | 5.8 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存(M) | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4G | 30.4 | 读124M/s、写0M/s | 读390.48io/s、写21.98io/s | 收0M/s、发117M/s |
系统资源监控截图:
2.6、大文件混合读写上限
测试内容:
| 持续时间 | 读写比例 | 文件大小 | 客户端并发实例 | 每个实例请求限制 | 测试后是否清理数据 |
|---|---|---|---|---|---|
| 10min | 1:1 | 1minio-test/00MB | 16 | 不限制 | 否 |
执行指令:./warp run max_file_mixed.yml
配置文件:max_file_mixed.yml**
minIO指标:
| 数值 | 单位 | 备注 | |
|---|---|---|---|
| 总请求数量 | 347 | 个 | 失败4个 |
| 总对象数量 | 343 | 个 | |
| 总对象大小 | 33.89 | GB | |
| 测试流程耗时 | 6minio-test/02 | s | |
| 平均吞吐量 | 0.56 | obj/s | |
| 最慢吞吐量 | 0.1 | obj/s | 多少个对象每秒 |
| 最快吞吐量 | 1.52 | obj/s | |
| 50%中位数吞吐 | 0.48 | obj/s | 50%的请求吞吐量在obj/s以上 |
| 平均读写速率 | 56.26 | MB/s | |
| 最慢读写速率 | 10.3 | MB/s | |
| 最快读写速率 | 151.5 | MB/s | |
| 50%读写速率 | 48.4 | MB/s | 50%的请求写入速率在MB/s以上 |
| 平均请求延迟 | get:61minio-test/02.3/put:44123.2 | ms | |
| 50%延迟 | get:7110.3/put:45872.1 | ms | 50%的请求延迟在几毫秒以内 |
| 90%延迟 | get:7549.4/put:50947.4 | ms | |
| 99%延迟 | get:7549.4/put:50947.4 | ms | |
| 最快请求 | get:969.4/put:18358.1 | ms | |
| 最慢请求 | get:29346.4/put:99289.7 | ms | |
| 请求标准偏差 | get:1625.6/put:4973 | ms | |
| 测试报告截图: | |||
| 系统指标: |
| 系统内存(G) | 系统cpu(%) | 系统磁盘读写速率 | 系统磁盘IOPS | 网络带宽 | 备注 |
|---|---|---|---|---|---|
| 4 | 36.3 | 读16.43M/s、写30.12M/s | 读70.97io/s、写155.06io/s | 收30M/s、发32M/s | |
| 系统资源监控截图: |
2. ## 长期稳定性测试
| 测试项目 | 操作 | 是否符合预期 | 备注 |
|---|---|---|---|
| 长时间运行 | 运行24小时的脚本观察minio系统稳定性 | 是 | |
| 断点续传 | 文件传输一半断开网络 | 是 | 要结合Multipart Upload的功能把大文件拆分为小文件。 |
| 磁盘空间不足 | 磁盘满的情况下继续上传文件 | 是 | |
| **运行指令长期稳定性运行:**nohup ./warp run long_time_run.yml |
long_time_run.yml
**配置:**2个进程,每秒上传一个10M的文件,持续24小时,get、put、delete比例:5:3:2。
磁盘不足写不进去报错:
4、结果总结
docker虚拟化的机器内存可以达到4G,实际物理机会更低一些,这边grafana抓的内存不准。总体没有把内存耗光宕机所以内存不是瓶颈。
minIO不同操作资源瓶颈表现
| 操作 | 瓶颈资源 | 总结 | 备注 |
|---|---|---|---|
| 小文件写 | iops达到1850io/s,磁盘io平均耗时1minio-test/00%,压测期间内存峰值长期在4G | 小文件写磁盘io为主要瓶颈 | |
| 小文件读 | cpu峰值1minio-test/00%,内存峰值压测期间长期在4G | 小文件读cpu为主要瓶颈,查阅资料大概是文件读取后进行http请求、解压、哈希计算较为消耗cpu的操作。 | |
| 小文件1:1混合读写 | cpu峰值2minio-test/00%,io峰值1580io/s,内存峰值压测期间长期在4G | 小文件混合1:1读写cpu和io峰值交替频繁出现 | |
| 大文件写 | 写速率峰值73.5MB/s,io耗时交替出现峰值1minio-test/00%,内存峰值压测期间长期在4G | 大文件写表现主要在磁盘写入速率上,其次是iops | |
| 大文件读 | 读峰值124.51MB/s,io耗时较高在90%附近,内存峰值压测期间长期在4G | 大文件读主要表现在磁盘读取速率,其次是iops | |
| 大文件1:1混合读写 | 读均值30.12M/s,写均值16.43M/s,io耗时1minio-test/00%,内存峰值压测期间长期在4G | 大文件1:1混合读写的时候,io耗时长时间维持在1minio-test/00%,由于io耗时影响和读写同时压测读写速率都达不到各自的峰值 |
建议:用mingIO作为存储,高频读或者高频写任意组合的业务,磁盘的IOPS要好,磁盘转速要高,能选SSD固态盘的不要选HDD机械以保证业务的稳定性和峰值吞吐。如果是低频读写或者归档的业务可以考虑用HDD以节省成本。同时读频率较高的业务建议cpu核心数要高一些。