docker
This commit is contained in:
@@ -67,6 +67,52 @@ go build -o auto-check .
|
||||
| `memnative` | stressapptest | 内存稳定性精压(数据完整性校验) |
|
||||
| `full` | stress-ng | CPU+内存+磁盘 三合一综合压测 |
|
||||
|
||||
## 压测执行方式(Docker 容器)
|
||||
|
||||
压测统一在 Docker 容器中执行:工具与测试脚本预装在镜像里,无需在目标机在线安装,环境一致性好(飞牛 NAS 默认已安装 Docker)。
|
||||
|
||||
### 架构设计
|
||||
```
|
||||
auto-check/
|
||||
├── docker/ # Docker 镜像维护目录(独立)
|
||||
│ └── stress-test/
|
||||
│ ├── Dockerfile # 镜像定义
|
||||
│ ├── scripts/ # 测试脚本(打包进镜像)
|
||||
│ │ ├── run.sh # 入口脚本(环境变量驱动)
|
||||
│ │ ├── cpu.sh # CPU 压测
|
||||
│ │ ├── memory.sh # 内存压测
|
||||
│ │ ├── disk.sh # 磁盘压测
|
||||
│ │ └── ...
|
||||
│ └── README.md
|
||||
└── pkg/stress/
|
||||
└── runner.go # 核心逻辑:送镜像 + 驱动容器测试
|
||||
```
|
||||
|
||||
### 工作流程
|
||||
1. 检测目标机 Docker 可用性(不可用则判失败)
|
||||
2. 检查镜像是否存在(不存在则上传工程目录中的镜像 tar 并 `docker load`,不依赖 registry)
|
||||
3. 启动容器执行测试(脚本在镜像内,环境变量传参)
|
||||
4. 解析容器输出 → 生成报告
|
||||
|
||||
### 配置方式(在 `auto-check.yaml` 中)
|
||||
```yaml
|
||||
stress:
|
||||
docker_image: "stress-test:latest" # 压测镜像(飞牛 NAS 默认支持 Docker)
|
||||
docker_tar: "docker/stress-test/stress-test.tar" # 本地镜像文件,目标机无镜像时自动上传并 load
|
||||
docker_args: "--network=host --privileged"
|
||||
```
|
||||
|
||||
### 构建镜像(维护时使用)
|
||||
```bash
|
||||
cd docker/stress-test
|
||||
docker build -t stress-test:latest .
|
||||
# 导出到工程目录,供测试时上传分发(不依赖 registry)
|
||||
docker save -o stress-test.tar stress-test:latest
|
||||
```
|
||||
|
||||
### 详细文档
|
||||
镜像维护说明请参考:[docker/stress-test/README.md](docker/stress-test/README.md)
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
@@ -77,11 +123,11 @@ auto-check/
|
||||
├── pkg/
|
||||
│ ├── discovery/ # 设备发现
|
||||
│ ├── sshclient/ # SSH 客户端
|
||||
│ ├── stress/ # 压力测试
|
||||
│ ├── stress/ # 压力测试(Docker 容器驱动)
|
||||
│ │ ├── types.go # 类型定义
|
||||
│ │ ├── tools.go # 工具检测 + 监控
|
||||
│ │ ├── runners.go # 压测实现
|
||||
│ │ └── runner.go # 调度器
|
||||
│ │ ├── tools.go # Docker 环境检测
|
||||
│ │ ├── metrics.go # 指标定义 + 配置
|
||||
│ │ └── runner.go # 调度器(送镜像 + 驱动容器)
|
||||
│ └── report/ # 报告模块
|
||||
├── go.mod
|
||||
└── README.md
|
||||
|
||||
Reference in New Issue
Block a user