已开启
tag测试 #6
QLiangong创建于  7月25日
QLiangong
QLiangong成员
7月25日 创建
测试 1:验证路径查找(不需要跑 benchmark)
# 解压
cd /tmp
tar xzf /path/to/rust-bench/scripts/output/rust-bench-collector-v0.1.0-x86_64.tar.gz
cd rust-bench-collector-v0.1.0-x86_64

# 从任意目录运行,验证能找到 benchmark 模块
./collector bench_runtime_local +nightly --group monoio --help

# 预期:显示帮助信息,不报 "Failed to list benchmark dir"
# 如果报错 "Failed to list benchmark dir" → 路径查找修复未生效
测试 2:验证 monoio benchmark(最简单,无外部依赖)
# 启用 perf counters
sudo bash -c 'echo -1 > /proc/sys/kernel/perf_event_paranoid'

# 运行
cd /tmp/rust-bench-collector-v0.1.0-x86_64
./collector bench_runtime_local +nightly \
    --group monoio --id "test_1" --db results.db \
    --iterations 1 -- --warmup-minutes 0

# 预期输出:
# Using database `results.db`
# Compiling 1 runtime benchmark group(s)
# Compiling `monoio` (1/1)
# Executing 2 benchmarks
# Finished monoio/monoio-bench::ping-pong::1_150 (1/2)
# Finished monoio/monoio-bench::ping-pong::1_300 (2/2)

# 验证数据库
sqlite3 results.db "SELECT name, tag, repo FROM artifact;"
# 预期:test_1 | default | rust

sqlite3 results.db "SELECT COUNT(*) FROM runtime_pstat;"
# 预期:> 0
测试 3:验证 Site 显示
# 解压 site 包
cd /tmp
tar xzf /path/to/rust-bench/scripts/output/rust-bench-site-v0.1.0-x86_64.tar.gz
cd rust-bench-site-v0.1.0-x86_64

# 启动 Site
./site /tmp/rust-bench-collector-v0.1.0-x86_64/results.db &

# 等 3 秒
sleep 3

# 验证 Site 启动
curl -s -o /dev/null -w "%{http_code}" http://localhost:2346/compare.html
# 预期:200

# 验证 API
curl -s http://localhost:2346/perf/repos
# 预期:返回 JSON

# 浏览器访问
# http://localhost:2346/compare.html
# 检查:commits 下拉框有 test_1,选择 stat=wall-time 有数据

# 关闭 Site
pkill -f "site results.db"
测试 4:验证两次运行对比
cd /tmp/rust-bench-collector-v0.1.0-x86_64

# 跑第二次
./collector bench_runtime_local +nightly \
    --group monoio --id "test_2" --db results.db \
    --iterations 1 -- --warmup-minutes 0

# 启动 Site
cd /tmp/rust-bench-site-v0.1.0-x86_64
./site /tmp/rust-bench-collector-v0.1.0-x86_64/results.db &

# 浏览器访问对比页面
# http://localhost:2346/compare.html?start=test_1&end=test_2&stat=wall-time
# 预期:显示两个 run 的对比数据
测试 5:验证 site-config.toml
cd /tmp/rust-bench-site-v0.1.0-x86_64

# 检查文件存在
ls -la site-config.toml
# 预期:文件存在,名字是 site-config.toml(不是 .example)

# 检查内容(token 应该是注释掉的)
grep "token" site-config.toml
# 预期:# token = ""(注释状态)
likedislike
QLiangong
QLiangong成员
7月27日 评论:
# rust-bench v0.1.0

## 功能
- 6 个 runtime benchmark 模块:monoio、daft、auron、firecracker、wasmtime、tikv
- 本地测试模式(SQLite)和 CI 模式(PostgreSQL + webhook)
- Web 前端:compare 对比页面 + cross-machine 跨机器对比页面
- 支持 GitCode 和 GitHub 平台
- 支持 x86_64 和 aarch64 架构

## 下载
- rust-bench-collector-v0.1.0-x86_64.tar.gz
- rust-bench-collector-v0.1.0-aarch64.tar.gz
- rust-bench-site-v0.1.0-x86_64.tar.gz
- rust-bench-site-v0.1.0-aarch64.tar.gz

## 系统要求
- Linux(perf_event 硬件计数必需)
- Rust nightly 工具链(首次运行时编译 benchmark 模块)
- 启用用户态 perf counters: `echo -1 > /proc/sys/kernel/perf_event_paranoid`

## 快速开始
1. 下载 collector 包,解压
2. 运行: `./collector bench_runtime_local +nightly --group monoio --id "run_1" --db results.db --iterations 1 -- --warmup-minutes 0`
3. 下载 site 包,解压
4. 启动: `./site /path/to/results.db`
5. 浏览器访问: `http://localhost:2346/compare.html?start=run_1&end=run_1&stat=wall-time`

## 已测试
- monoio benchmark: 端到端验证(运行 → SQLite → Site → compare 页面)

## 已知限制
- 其他 benchmark 模块(daft、auron、firecracker、wasmtime、tikv)需要各自的外部依赖
- SQLite 模式不支持 job queue(CI 自动触发)
- 本地模式 benchmark 的 repo 标识默认为 "rust"
- 预编译二进制绑定编译机的 glibc 版本

## 完整文档
https://gitcode.com/xuanwu/rust-bench
likedislike
QLiangong
QLiangong成员
7月28日 评论:

图片.png

likedislike