# xfio **Repository Path**: cdevel/xfio ## Basic Information - **Project Name**: xfio - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-08 - **Last Updated**: 2025-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # xfio 一个分布式fio性能测试的控制中心和注册中心,能够管理worker节点的注册和任务分发,结果拉取汇总分析,用例模型管理。 ## 功能特性 - **节点管理**:注册、心跳检测、状态监控 - **测试用例管理**:创建、存储、管理fio测试配置 - **任务分发**:将测试任务分配给worker节点执行 - **结果汇总**:收集各节点测试结果并进行分析 - **RESTful API**:提供标准的HTTP接口 ## 架构组件 1. **Controller (控制中心)**:中央管理节点,负责协调所有操作 2. **Worker (工作节点)**:执行fio测试的实际节点 3. **SQLite数据库**:存储worker信息、测试用例、任务状态和结果 ## 系统要求 - Go 1.19+ - fio 工具 (仅在worker节点需要) ## 安装和运行 ### 1. 控制中心 ```bash cd /home/xfio/fio-test-controller-go go mod tidy go run main.go ``` 控制中心将启动在 `http://localhost:8000` ### 2. Worker节点 ```bash go run worker.go ``` ## API端点 ### 节点管理 - `POST /workers/register` - 注册新的worker节点 - `GET /workers` - 列出所有worker节点 - `GET /workers/{id}` - 获取指定worker信息 - `POST /workers/{id}/heartbeat` - worker心跳检测 - `DELETE /workers/{id}` - 移除worker节点 ### 测试用例管理 - `POST /test-cases` - 创建新的测试用例 - `GET /test-cases` - 列出所有测试用例 - `GET /test-cases/{id}` - 获取指定测试用例 ### 任务管理 - `POST /tasks/assign` - 分配测试任务给worker - `GET /tasks` - 列出所有任务 - `GET /tasks/{id}` - 获取指定任务信息 - `POST /tasks/{id}/start` - 开始执行任务 - `POST /tasks/{id}/complete` - 完成任务并报告结果 - `GET /tasks/worker/{worker_id}/pending` - 获取指定worker的待处理任务 ### 结果分析 - `GET /results/summary` - 获取测试结果汇总 - `GET /results/analysis/{test_case_id}` - 获取特定测试用例的分析 ## 使用示例 运行使用示例: ```bash go run example_usage.go ``` ## 数据库结构 - `workers` - 存储worker节点信息 - `test_cases` - 存储测试用例配置 - `tasks` - 存储任务状态和结果 ## 开发说明 项目包含以下主要文件: - `main.go` - xfio控制中心主服务 - `worker.go` - Worker节点实现 - `example_usage.go` - 使用示例 - `go.mod` - Go模块定义 ## 扩展功能 - 支持多种fio测试配置 - 可扩展的worker节点管理 - 分布式任务调度 - 交互式测试用例创建向导 - 结果数据可视化(未来版本) - 测试历史记录和趋势分析(未来版本) ## 交互式测试用例创建 本项目包含交互式测试用例创建工具,可以引导用户创建各种类型的fio性能测试: ### 基础向导工具 ```bash # 编译工具 go build -o guided_testcase_creator guided_testcase_creator.go # 运行工具 ./guided_testcase_creator ``` ### 高级向导工具 ```bash # 编译工具 go build -o enhanced_guided_creator enhanced_guided_creator.go # 运行工具 ./enhanced_guided_creator ``` ### 自动构建脚本 使用提供的构建脚本一键编译所有向导工具: ```bash # Make the script executable chmod +x build_guided_tools.sh # Run the build script ./build_guided_tools.sh ``` 高级向导工具提供以下功能: - 预设测试模板(顺序读/写,随机读/写,混合读写) - 参数验证和输入提示 - 配置参数覆写功能 - 支持所有主要的fio参数配置 - 与控制器API的直接集成