
如果你使用 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是一套基于FIO(Flexible I/O Tester)的Docker镜像工具集,用于存储性能测试。它提供了完整的测试流程:运行FIO测试任务、生成详细日志、绘制性能图表(如IOPS、带宽),并通过Web服务展示测试结果。适用于Docker和Kubernetes环境下的存储性能评估与可视化分析。
fio-genplots工具绘制IOPS、带宽等性能图表fio-plotserve提供Web服务,便捷查看测试结果1. 准备环境
构建镜像或使用公共镜像(portworx/fio-tool、wallnerryan/fio-genplots、wallnerryan/fio-plotserve、wallnerryan/fiotools-aio)。
2. 创建FIO任务文件
参考https://media.readthedocs.org/pdf/fio/latest/fio.pdf%E5%88%9B%E5%BB%BA%E6%B5%8B%E8%AF%95%E4%BB%BB%E5%8A%A1%E6%96%87%E4%BB%B6%EF%BC%88.fio%EF%BC%89%E3%80%82
3. 运行fio-tool执行测试
本地任务文件:
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ -e JOBFILES=<你的FIO任务文件名> \ docker.xuanyuan.run/portworx/fio-tool
远程任务文件(通过REMOTEFILES指定URL):
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ -e REMOTEFILES="http://url.com/<你的任务文件>.fio" \ -e JOBFILES=<你的FIO任务文件名> \ docker.xuanyuan.run/wallnerryan/fio-tool
4. 运行fio-genplots生成图表
bashdocker run -v /tmp/fio-data:/tmp/fio-data \ docker.xuanyuan.run/wallnerryan/fio-genplots <fio2gnuplot选项>
5. 运行fio-plotserve服务图表和日志
bashdocker run -p 8000:8000 -d -v /tmp/fio-data:/tmp/fio-data \ docker.xuanyuan.run/wallnerryan/fio-plotserve
访问http://localhost:8000查看结果。
6. 便捷方式:使用"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 docker.xuanyuan.run/wallnerryan/fiotools-aio
Kubernetes环境部署
创建Deployment:
bashkubectl apply -f kubernetes/fiotools-aio-portworx-read.yaml # 输出: # storageclass.storage.k8s.io "fio-tester-class-read" created # persistentvolumeclaim "fio-data-read" created # deployment.extensions "fio-tester-read" created # service "fiotools-read" created kubectl apply -f kubernetes/fiotools-aio-portworx-write.yaml # 输出类似上述
查看服务:
bashkubectl get svc fiotools-read kubectl get svc fiotools-write
访问测试结果:
bashkubectl port-forward service/fiotools-read 8001:8001 # 访问 http://localhost:8001
http://<Node-IP>:[8000|8001](需防火墙允许8000/8001端口)自定义任务配置: 修改Deployment的环境变量以提交新任务:
yamlenv: - name: REMOTEFILES value: "https://gist.githubusercontent.com/wallnerryan/06cb07d3d8bee67af025a60a88da053f/raw/a46d97f30b79c2a2a6b42333e7114d85e84c450f/editablejob.fio" - name: JOBFILES value: editablejob.fio - name: PLOTNAME value: editablejob
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 docker.xuanyuan.run/wallnerryan/fio-tool
生成带宽图表:
bashdocker run -v /tmp/fio-data:/tmp/fio-data docker.xuanyuan.run/wallnerryan/fio-genplots \ -t My16kAWSRandomReadTest -b -g -p *_bw*
生成IOPS图表:
bashdocker run -v /tmp/fio-data:/tmp/fio-data docker.xuanyuan.run/wallnerryan/fio-genplots \ -t My16kAWSRandomReadTest -i -g -p *_iops*
启动Web服务:
bashdocker run -p 8000:8000 -d \ -v /tmp/fio-data:/tmp/fio-data \ docker.xuanyuan.run/wallnerryan/fio-plotserve
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 \ docker.xuanyuan.run/wallnerryan/fio-tool
本地任务文件:
bashdocker run -v /Users/wallnerryan/Desktop/fio:/tmp/fio-data \ -e JOBFILES=job.fio docker.xuanyuan.run/wallnerryan/fio-tool
非boot2docker/docker-machine环境使用
远程任务文件:
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 docker.xuanyuan.run/wallnerryan/fio-tool
本地任务文件:
bashmkdir /tmp/fio-data cp <你的FIO任务文件> /tmp/fio-data/ docker run -v /tmp/fio-data:/tmp/fio-data \ -e JOBFILES=<你的FIO任务文件名> docker.xuanyuan.run/wallnerryan/fio-tool
fio-tools容器默认会清理/tmp/fio-data卷,如需保留数据,请提前复制到本地。directory=/my/mounted/volume,以测试Docker卷。-v /tmp/fio-data而非-v /tmp/fio-data:/tmp/fio-data(仅单独运行工具镜像时需后者)。.png文件查看性能图表。!Alt text
bw=和BW=说明
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务