Skip to content

[Paper/M0][P0] Build a reproducible monorepo workspace benchmark and trace-replay harness #41

Description

@Ivanbeethoven

Parent research epic: #39

背景

现有 docs/perf_test.mdexamples/fs_read_perf.rs 能用于工程调试,但不足以支撑系统论文。需要统一环境、可重复 workload、严格的缓存状态、标准基线和统计方法。

目标

新增 bench/,同时支持:

  1. 可控合成 monorepo;
  2. 真实开源项目构建;
  3. FUSE operation trace replay;
  4. 多 workspace 并发;
  5. 故障注入;
  6. 自动生成机器可读结果和论文图表输入。

Baselines

必须实现:

  • 当前 ScorpioFS/Antares:每个 job 一个 FUSE workspace;
  • warm bare clone + git worktree
  • Git partial clone + sparse checkout;
  • materialized checkout + Linux kernel OverlayFS;
  • 新 ScorpioFS 各阶段实现。

可选:

  • EdenFS,只有在公开环境中可稳定复现时纳入;
  • 预热 checkout pool,模拟 GitFarm 类工作区池。

Cache States

必须明确区分:

C0: cold daemon + empty disk cache
C1: warm daemon + empty target snapshot
C2: warm shared snapshot + new workspace
C3: warm workspace
C4: warm content cache but cold kernel/FUSE cache

不得简单用“cold/warm”两个模糊标签。

Workloads

  • metadata storm:lookup/stat/readdir/readdirplus;
  • 小文件随机读取;
  • 大文件顺序读取;
  • 深目录 traversal;
  • sparse working-set read;
  • write/copy-up/rename/delete;
  • parallel candidate patches;
  • clean build 和 incremental build;
  • scripted Agent loop:search → inspect → edit → test → retry;
  • trace replay,确保不同系统收到相同逻辑请求。

Tasks

  • 新增合成仓库生成器,可控制文件数、目录深度、文件大小、重复内容率和修改比例;
  • 新增 workload manifest,固定 seed、target、command 和环境变量;
  • 新增 trace recorder/replayer;
  • 新增 baseline adapter 接口;
  • 新增并发控制,至少支持 1/4/16/64 workspace;
  • 记录 kernel、CPU、RSS、disk、network 和 mount 数;
  • 每次运行保存 commit SHA、kernel、CPU、内存、磁盘和配置;
  • 默认重复至少 10 次,输出 95% confidence interval;
  • 支持失败后保留原始日志;
  • 输出 manifest.json、raw CSV/JSONL 和 summary CSV;
  • 提供 smoke 和 full 两套配置;
  • 在 FUSE-capable VM/runner 中运行 smoke CI。

Acceptance Criteria

  • 一条命令可以运行 smoke benchmark;
  • 同一 manifest 在不同 baseline 上执行相同逻辑 workload;
  • 输出包含所有环境元数据;
  • 冷缓存和热缓存状态有自动检查,不依赖人工描述;
  • 结果脚本不从日志文本中脆弱地正则提取核心指标;
  • 同一机器连续两组 smoke run 的关键中位数偏差可解释并被记录;
  • benchmark 失败会返回非零状态;
  • artifact 不需要访问私有 Mega 数据才能完成最小复现。

论文产出

后续所有性能结论的共同实验底座。

Relevant Paths

bench/
examples/fs_read_perf.rs
docs/perf_test.md
tests/
.github/workflows/

Dependencies

建议使用 Issue 1 的统一指标,但仓库生成器和 baseline adapter 可先并行开发。


Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions