文件最后提交记录最后更新时间
!1032 feat(kvtest): add benchmark modes, gen-config deploy.json, and multi-node role assignment18 天前
feat(kvtest): add mixed workload benchmark mode (set+get concurrent)1 天前
feat(kvtest): add mixed workload benchmark mode (set+get concurrent)1 天前
feat(kvtest): add mixed workload benchmark mode (set+get concurrent)1 天前
bugfix for procmon and add clean command to deploy worker script8 天前
!924 feat(kvtest): add KVClient standalone performance test tool with TDD tests24 天前
!1032 feat(kvtest): add benchmark modes, gen-config deploy.json, and multi-node role assignment18 天前
!924 fix(kvtest): address PR review feedback - 5 bug fixes24 天前
feat(kvtest): add mixed workload benchmark mode (set+get concurrent)1 天前
!924 feat(kvtest): add KVClient standalone performance test tool with TDD tests24 天前
!924 feat(kvtest): add KVClient standalone performance test tool with TDD tests24 天前
bugfix for procmon and add clean command to deploy worker script8 天前
bugfix for procmon and add clean command to deploy worker script8 天前
README.md

kvtest

独立的 datasystem KVClient 性能测试工具,支持 Writer/Reader 角色分离、Cache 模式、Benchmark Set/Get 模式、多节点部署、K8s 自动发现。

编译与运行

cd tests/kvtest

# 编译(使用默认 SDK 路径 ../../output/cpp)
./build.sh

# 或指定 SDK 路径
./build.sh -s /path/to/sdk

# 启动依赖
etcd &
mkdir -p /tmp/ds_worker && cd /tmp/ds_worker
dscli start -w --worker_address 127.0.0.1:31501 --etcd_address 127.0.0.1:2379

# 运行
cd tests/kvtest/output
LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH ./kvtest config/my_config.json

# 查看统计 / 停止
curl http://127.0.0.1:9000/stats | python3 -m json.tool
curl -X POST http://127.0.0.1:9000/stop

Benchmark Set/Get 模式

用于精确测量 Set/Get 吞吐和延迟,支持 8 种测试模式:

# 本地 Set 吞吐基线(8线程,5轮)
cat > config/bench.json << 'EOF'
{
  "etcd_address": "127.0.0.1:2379",
  "listen_port": 9000,
  "test_mode": "set_local",
  "worker_memory_mb": 4096,
  "num_threads": 8,
  "total_rounds": 5,
  "data_sizes": ["8MB"],
  "set_api": "string_view",
  "cleanup_method": "del"
}
EOF

LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH ./kvtest config/bench.json

测试模式: set_local / set_remote / get_local / get_cross_node / get_remote_direct / get_remote_cross / mixed_local / mixed_cross_node

Set API: string_view(直接写入)/ create_buffer(SHM Buffer + latch)/ create_buffer_raw(SHM Buffer,无锁 memcpy)

输出: benchmark_phases.csv(per-round per-phase 延迟和 QPS)

测试

# C++ 单元测试 (68) + Python 单元测试 (53)
cd tests/kvtest
bash tests/run_all_tests.sh

# 集成测试(需要真实集群环境)
bash tests/test_cpu_affinity.sh   # CPU 绑核验证
bash tests/test_deploy.sh          # 多节点部署验证
bash tests/test_e2e.sh             # 端到端验收测试

文档

文档 内容
docs/user-guide.md 编译部署、配置参数、远程部署、指标采集、故障排查
docs/pipeline-guide.md Pipeline 模式:Writer/Reader 角色、QPS 控制、多实例部署
docs/cache-guide.md Cache 模式:cacheGetOrCreate、命中率控制、Key Pool 管理
docs/benchmark-guide.md Benchmark 模式:8 种 Set/Get/Mixed 测试模式、per-phase 计时
docs/design.md 架构设计:模块设计、线程模型、指标系统、QPS 控制机制