
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
!Alt text !Alt text
FIO-Tools是一套用于存储性能测试的Docker工具集,集成了FIO测试执行、GNUPlot图表生成和Web服务展示功能。该工具集可帮助用户快速执行FIO性能测试,自动生成IOPS和带宽图表,并通过Web界面查看测试结果,适用于Docker和Kubernetes环境下的存储性能评估与基准测试。
1. 准备FIO作业文件
创建符合Fio Jobfile规范的测试作业文件,或使用远程作业文件。
2. 运行fio-tool执行测试
本地作业文件:
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ -e JOBFILES=<你的FIO作业文件名> \ portworx/fio-tool
远程作业文件(通过REMOTEFILES指定):
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ -e REMOTEFILES="http://url.com/<你的作业文件>.fio" \ -e JOBFILES=<你的FIO作业文件名> \ wallnerryan/fio-tool
3. 生成图表
使用fio-genplots生成可视化图表:
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ wallnerryan/fio-genplots <fio2gnuplot选项>
生成带宽图表:
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ wallnerryan/fio-genplots -t My16kAWSRandomReadTest -b -g -p *_bw*
生成IOPS图表:
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ wallnerryan/fio-genplots -t My16kAWSRandomReadTest -i -g -p *_iops*
4. 提供Web服务展示结果
bashdocker run -p 8000:8000 -d -v /tmp/fio-data:/tmp/fio-data \ wallnerryan/fio-plotserve
访问 http://localhost:8000 查看测试日志和图表。
5. 最简单方法:使用"all in one"镜像
自动执行测试、生成图表并提供Web服务:
bashdocker run -p 8000:8000 -v /tmp/fio-data \ -e REMOTEFILES="http://url.com/<你的作业文件>.fio" \ -e JOBFILES=<你的FIO作业文件名> \ -e PLOTNAME=MyTest \ -d --name MyFioTest wallnerryan/fiotools-aio
Kubernetes环境使用
部署测试实例:
bash# 部署读测试 kubectl apply -f kubernetes/fiotools-aio-portworx-read.yaml # 部署写测试 kubectl apply -f kubernetes/fiotools-aio-portworx-write.yaml
查看服务:
bashkubectl get svc fiotools-read kubectl get svc fiotools-write
访问测试结果:
bash# 端口转发访问读测试结果 kubectl port-forward service/fiotools-read 8001:8001 # 访问 http://localhost:8001 # 端口转发访问写测试结果 kubectl port-forward service/fiotools-write 8000:8000 # 访问 http://localhost:8000
配置环境变量:
yamlenv: - name: REMOTEFILES value: "https://gist.githubusercontent.com/wallnerryan/06cb07d3d8bee67af025a60a88da053f/raw/a46d97f30b79c2a2a6b42333e7114d85e84c450f/editablejob.fio" - name: JOBFILES value: editablejob.fio - name: PLOTNAME value: editablejob
Docker与Docker卷使用
bashdocker run \ -e REMOTEFILES="https://gist.githubusercontent.com/wallnerryan/fd0146ee3122278d7b5f/raw/cdd8de476abbecb5fb5c56239ab9b6eb3cec3ed5/job.fio" \ -v /tmp/fio-data:/tmp/fio-data \ --volume-driver flocker \ -v myvol1:/myvol \ -e JOBFILES=job.fio wallnerryan/fio-tool
"all in one"镜像配合Docker卷:
bashdocker run \ -p 8000:8000 \ -v /tmp/fio-data \ -e REMOTEFILES="https://gist.githubusercontent.com/wallnerryan/fd0146ee3122278d7b5f/raw/006ff707bc1a4aae570b33f4f4cd7729f7d88f43/job.fio" \ -e JOBFILES=job.fio \ -e PLOTNAME=MyTest \ --volume-driver flocker \ -v myvol1:/myvol \ -d \ --name MyTest wallnerryan/fiotools-aio
docker-machine/boot2docker环境使用
远程作业文件:
bashdocker run \ -e REMOTEFILES="https://gist.githubusercontent.com/wallnerryan/fd0146ee3122278d7b5f/raw/d089b6321746fe2928ce3f89fe64b437d1f669df/job.fio" \ -e JOBFILES=job.fio \ -v /Users/wallnerryan/Desktop/fio:/tmp/fio-data \ wallnerryan/fio-tool
本地作业文件:
bashdocker run -v /Users/wallnerryan/Desktop/fio:/tmp/fio-data \ -e JOBFILES=job.fio wallnerryan/fio-tool
非boot2docker/docker-machine的Docker环境使用
远程配置文件:
bashdocker run \ -e REMOTEFILES="https://gist.githubusercontent.com/wallnerryan/fd0146ee3122278d7b5f/raw/2eb7d0ae9b77fa5a93662fe8088df2d83fff9ab2/job.fio" \ -v /tmp/fio-data:/tmp/fio-data \ -e JOBFILES=job.fio wallnerryan/fio-tool
本地配置文件:
bashmkdir /tmp/fio-data cp <你的FIO作业文件> /tmp/fio-data/ docker run -v /tmp/fio-data:/tmp/fio-data \ -e JOBFILES=<你的FIO作业文件名> wallnerryan/fio-tool
/tmp/fio-data卷中的数据,如需保留测试结果,请提前备份文件。directory=/my/mounted/volume以测试Docker卷。-v /tmp/fio-data而非-v /tmp/fio-data:/tmp/fio-data(仅在单独运行工具镜像时需要后者)。!Alt text
| 环境变量 | 说明 |
|---|---|
| JOBFILES | 指定FIO作业文件名(本地或远程下载的文件) |
| REMOTEFILES | 远程FIO作业文件的URL(多个文件用空格分隔) |
| PLOTNAME | 图表名称前缀,用于区分不同测试结果 |
关于bw=和BW=参数的详细解释,请参考:[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务