# milvus_depoly_test **Repository Path**: jaqenNNNNN/milvus_depoly_test ## Basic Information - **Project Name**: milvus_depoly_test - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-09 - **Last Updated**: 2025-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Milvus 2.5.x 测试套件 完整的 Milvus 2.5.16 测试套件,包含功能、性能和可靠性测试。 ## 目录结构 ``` milvus_depoly_test/ ├── README.md # 本文档 ├── test.md # 原始测试需求 │ ├── tests/ # 测试套件 ⭐ │ ├── README.md # 测试总览 │ ├── functional/ # 功能测试 (2-5分钟) │ ├── performance/ # 性能测试 (30-60分钟) │ └── reliability/ # 可靠性测试 │ ├── manual/ # 手动脚本 │ └── chaos_mesh/ # Chaos Mesh ⭐推荐 │ ├── deployments/ # 部署配置 │ ├── verify_milvus_api.py # API验证工具 │ └── YAML配置文件 │ └── docs/ # 参考文档 ├── milvus-comprehensive-test-plan.md ├── vdbbench-practical-guide.md └── TEST_RESULTS_HISTORY.md ``` --- ## 快速开始 ### 1. 功能测试 (2-5分钟) 验证 Milvus 核心功能:连接、集合管理、向量CRUD、索引、搜索。 ```bash cd tests/functional python3 test_functional_suite.py ``` **测试内容**: 14个核心用例 - 连接与集合管理 (4个) - 向量数据插入/更新/删除 (3个) - 索引创建和管理 (2个) - 集合加载/释放 (2个) - 向量搜索和查询 (3个) **预期结果**: ``` 总测试数: 14 通过: 14 失败: 0 通过率: 100.0% ``` --- ### 2. 性能测试 (30-60分钟) 测试大规模场景性能:1000万向量的插入、索引构建、搜索。 ```bash cd tests/performance python3 test_performance_suite.py # 快速测试(10万向量) python3 test_performance_suite.py --vectors 100000 ``` **测试内容**: - TC-PERF-007: 批量插入吞吐量测试 - TC-PERF-009: HNSW 索引构建时间 - TC-PERF-001: 搜索 QPS 和延迟 **性能基线** (1000万向量, 768维): | 指标 | 目标值 | 优秀 | |------|--------|------| | 插入吞吐量 | > 15K vec/s | > 20K vec/s | | 索引构建时间 | < 60 分钟 | < 30 分钟 | | 搜索 QPS (c=50) | > 1000 | > 2000 | | P99 延迟 | < 100 ms | < 50 ms | --- ### 3. 可靠性测试 #### 方式A: 手动脚本 (30-45分钟) 使用 kubectl 手动注入故障,适合快速验证。 ```bash cd tests/reliability/manual python3 run_all_tests.py ``` **测试场景**: - Milvus 无状态节点重建 - MQ (Pulsar) 故障恢复 - etcd 单节点故障 - MinIO 单节点故障 --- #### 方式B: Chaos Mesh ⭐推荐 (20-30分钟) 专业的混沌工程测试,生产级可靠性验证。 ```bash cd tests/reliability/chaos_mesh # 1. 安装 Chaos Mesh ./install_chaos_mesh.sh # 2. 运行测试 python3 test_chaos_001_pod_kill.py ``` **测试场景**: - TC-CHAOS-001: Pod Kill (周期性故障) - TC-CHAOS-002: 网络分区 - TC-CHAOS-003: etcd 故障 - TC-CHAOS-004: MinIO 故障 - TC-CHAOS-005: Pulsar 故障 **为什么推荐 Chaos Mesh**: - ✅ 声明式配置,精确控制 - ✅ 自动清理和回滚 - ✅ 丰富的故障类型 - ✅ 可视化Dashboard - ✅ 生产级稳定性 --- ## 测试对比 | 特性 | 功能测试 | 性能测试 | 可靠性(手动) | 可靠性(Chaos Mesh) | |------|---------|---------|------------|-----------------| | 测试目的 | 功能验证 | 性能评估 | 故障恢复 | 混沌工程 | | 数据规模 | 1000条 | 1000万条 | 5万条 | 5万条 | | 执行时长 | 2-5分钟 | 30-60分钟 | 30-45分钟 | 20-30分钟 | | 技术要求 | 低 | 中 | 中 | 中 | | 生产推荐 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | --- ## 完整测试流程 ### 首次部署验证 ```bash # 步骤1: 功能测试 (验证基本功能) cd tests/functional && python3 test_functional_suite.py # 步骤2: 小规模性能测试 (快速验证) cd ../performance && python3 test_performance_suite.py --vectors 100000 # 步骤3: 可靠性测试 (验证高可用) cd ../reliability/chaos_mesh && python3 test_chaos_001_pod_kill.py ``` ### 生产环境验证 ```bash # 步骤1: 完整功能测试 cd tests/functional && python3 test_functional_suite.py # 步骤2: 大规模性能测试 cd ../performance && python3 test_performance_suite.py # 步骤3: 完整 Chaos 测试 cd ../reliability/chaos_mesh ./install_chaos_mesh.sh python3 test_chaos_001_pod_kill.py # 运行其他 Chaos 测试... ``` --- ## 环境要求 ### 硬件要求 | 测试类型 | CPU | 内存 | 磁盘 | |---------|-----|------|------| | 功能测试 | 2核 | 4GB | 10GB | | 性能测试 | 8核 | 32GB | 100GB | | 可靠性测试 | 4核 | 16GB | 50GB | ### 软件要求 - Kubernetes 1.20+ - Milvus 2.5.16 - PyMilvus 2.6.3 - Python 3.8+ - kubectl (可靠性测试) - Helm 3.x (Chaos Mesh) ### 当前环境 - **Milvus版本**: 2.5.16 - **部署方式**: Kubernetes集群模式 - **访问地址**: localhost:32744 (NodePort) - **依赖组件**: Pulsar (MQ), etcd (元数据), MinIO (存储) --- ## 常见问题 ### Q1: 测试需要多长时间? - **快速验证**: 5-10分钟 (仅功能测试) - **标准测试**: 1-2小时 (功能 + 性能 + 可靠性) - **完整测试**: 2-3小时 (所有测试 + 多轮验证) ### Q2: 测试会影响现有数据吗? 不会。所有测试都使用独立的集合名称: - 功能测试: `functional_test_collection` - 性能测试: `perf_test_10m` - 可靠性测试: `reliability_test_collection` / `chaos_test_collection` ### Q3: 如何解读测试结果? - **通过率 100%**: 系统功能完整,性能达标 - **通过率 > 90%**: 大部分功能正常,个别问题需排查 - **通过率 < 90%**: 存在严重问题,需深入排查 ### Q4: Chaos Mesh 和手动脚本选哪个? - **学习/验证**: 手动脚本更简单 - **生产环境**: Chaos Mesh 更专业、更可靠 - **CI/CD**: Chaos Mesh 更易集成 ### Q5: 如何调整测试规模? ```bash # 性能测试调整向量数量 python3 test_performance_suite.py --vectors 1000000 # 100万向量 # 可靠性测试调整数据量 # 修改测试脚本中的 TEST_DATA_SIZE 参数 ``` --- ## 详细文档 ### 测试套件文档 - **[tests/README.md](tests/README.md)** - 测试套件总览和快速开始 - **[tests/functional/README.md](tests/functional/README.md)** - 功能测试详细说明 - **[tests/performance/README.md](tests/performance/README.md)** - 性能测试详细说明 - **[tests/reliability/README.md](tests/reliability/README.md)** - 可靠性测试详细说明(包含手动和Chaos Mesh) ### 参考文档 - **[docs/milvus-comprehensive-test-plan.md](docs/milvus-comprehensive-test-plan.md)** - 详细的测试方案设计文档,包含测试用例、性能指标、故障测试等 - **[docs/vdbbench-practical-guide.md](docs/vdbbench-practical-guide.md)** - VDBBench 性能测试工具使用指南,适用于大规模性能测试 - **[docs/TEST_RESULTS_HISTORY.md](docs/TEST_RESULTS_HISTORY.md)** - 历史测试结果汇总,包含功能、性能测试数据和分析 --- ## 工具和脚本 ### API 验证工具 快速验证 Milvus 实例是否正常工作: ```bash cd deployments python3 verify_milvus_api.py ``` 验证内容:连接、创建集合、插入数据、搜索、清理。 --- ## 测试最佳实践 1. **分阶段测试**: 功能 → 性能 → 可靠性 2. **记录基准**: 保存首次测试结果作为基准 3. **定期回归**: 每次升级后重新运行测试 4. **监控资源**: 测试期间监控 CPU/内存/磁盘 5. **保留日志**: 保存测试日志供后续分析 --- ## 故障排查 ### 连接失败 ```bash # 检查 Milvus 服务状态 kubectl get pods -n milvus # 检查 NodePort 端口 kubectl get svc -n milvus ``` ### 测试超时 - 调整测试脚本中的超时参数 - 或减少测试数据量 ### 性能不达标 1. 优化索引参数 (M, efConstruction, ef) 2. 增加 QueryNode 副本数 3. 调整资源配置 (CPU/内存) 4. 检查磁盘 I/O 性能 --- ## 技术支持 - **Milvus 文档**: https://milvus.io/docs - **Chaos Mesh 文档**: https://chaos-mesh.org/docs - **PyMilvus API**: https://milvus.io/api-reference/pymilvus/ - **问题反馈**: GitHub Issues --- ## 版本信息 - **测试套件版本**: 1.0 - **Milvus 版本**: 2.5.16 - **PyMilvus 版本**: 2.6.3 - **创建时间**: 2025-11-09 - **维护者**: Claude Code --- ## 更新记录 | 日期 | 内容 | |------|------| | 2025-11-09 | 创建完整测试套件,包含功能/性能/可靠性测试 | | 2025-11-09 | 添加 Chaos Mesh 混沌工程测试 | | 2025-11-09 | 整理目录结构,归档历史文件 | | 2025-11-09 | 统一测试目录到 tests/ |