BrewFSBrewFS
BrewFSBrewFS
快速上手
基准测试总览RandRW 基准元数据密集基准多智能体扩展可复现性基准测试方法
基准测试

基准测试方法

BrewFS 如何测量和报告文件系统性能。

BrewFS 将性能视为特定负载和 profile下的结果,而不是文件系统的普适排名。每个公开结果都应说明后端、缓存状态、挂载行为、负载形态、主机、软件版本和完整 runner 命令。

当前 Redis + RustFS 参考环境

公开的 2026 年 7 月 24 日对比快照让两个文件系统运行在同一台主机上:

项目配置
元数据Redis
对象存储RustFS,S3 兼容
压缩双方均关闭
fio 访问方式Buffered fio I/O(direct=0)、io_uring、iodepth=1
fio block 大小已公开吞吐 profile 使用 4 MiB
每 job 大小 / 时长PERF_FIO_SIZE=512m;time-based 负载运行 20 秒
负载形态匹配的 fio job 形态;Large read/write 以 8 个 job 传输 4 GiB
主机Intel Xeon Platinum、8 vCPU、14 GiB 可用内存、Linux 6.8.0
存储130 GiB 虚拟块设备

BrewFS Redis 使用 commit_before_upload、2 GiB 读/写内存缓存、8 GiB 持久读缓存、 4 GiB SSD 写回缓存、6 个写回上传 worker、S3 并发 8、上传并发 16。JuiceFS 使用 writeback=true、4 GiB buffer、8 GiB 持久缓存、cache-large-write、4 个上传连接与 4 个 stage-write 线程。读结果基于持久预填充与保留本地缓存的重新挂载;写结果同时报告 应用可见的 tool-wall 吞吐,以及队列归零后的完整排空吞吐。

代表性 Redis 结果

在 14 项应用可见数据结果与 10 项元数据结果中,BrewFS 领先 24 项匹配结果里的 15 项 (数据面 10/14,元数据 5/10)。稳定持久缓存 Large read 基本持平。JuiceFS 仍在顺序读、 严格排空纯写,以及 TiKV create/open/rename 上领先。

负载BrewFSJuiceFS优势
随机读1,726.10 MiB/s1,256.80 MiB/s快 37%(约 1.37x)
前台混合随机 I/O495.54 MiB/s328.76 MiB/s快 51%(约 1.51x)
前台大文件写195.05 MiB/s102.40 MiB/s快 90%(约 1.90x)
完整排空混合随机 I/O218.60 MiB/s113.86 MiB/s快 92%(约 1.92x)
热本地缓存大文件读2,395.32 MiB/s2,356.73 MiB/s约快 2%
元数据 create1,004.61 ops/s549.01 ops/s快 83%(约 1.83x)
Readdir28,634.94 ops/s16,020.25 ops/s约 1.79x

完整排空吞吐按 fio 实际字节数除以 active I/O 时间与 post-write drain 之和计算,避免 更大的未排空队列反而抬高写入成绩。本快照不发布几何平均汇总。

这些数值只适用于所列的配置和负载,不能预测冷缓存、超出缓存大小的数据集、远程网络或不同调优方式下的表现。

复现 profile

# BrewFS 对比 profile
PERF_LOG_TO_CONSOLE=false PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_redis_perf.sh --s3 --writeback-throughput-profile

# JuiceFS 对比 profile
JUICEFS_META_BACKEND=redis PERF_LOG_TO_CONSOLE=false \
PERF_FIO_SIZE=512m PERF_FIO_RUNTIME=20 \
bash docker/compose-xfstests/run_juicefs_perf.sh --writeback-throughput-profile

Compose runner 会在 docker/compose-xfstests/artifacts/ 下写入原始报告和日志。发布结果时应保留这些产物,使每条性能结论都可追溯到输入和输出。

公平比较规则

  1. 分开报告冷缓存和热缓存;微秒级读可能只是缓存命中,而不是对象存储读取。
  2. 明确负载形态、数据集、后端、主机、挂载选项、压缩与 runtime 设置。
  3. 标注所有语义取舍。commit-before-upload、只读 direct I/O 与 write-open cache 都是 opt-in profile,不是默认保证。
  4. 目标负载至少运行三次,并报告中位数。
  5. 非目标 fio 与元数据项目的回退保持在 5% 预算以内。
  6. 只要热路径改动可能影响文件系统行为,就重新运行 POSIX 套件;见 POSIX 测试。

如何解读结果

不要把结果直接归因于 Rust。缓存热度、dirty overlay、元数据往返、批处理和 FUSE runtime 都是被测变量。只有这些变量被记录、对齐和允许证伪时,性能数据才有解释力。

可复现性

每个基准都会公开完整的“契约”。

运维

运行、观测与维护 BrewFS 部署。

On this page

当前 Redis + RustFS 参考环境代表性 Redis 结果复现 profile公平比较规则如何解读结果