ZeroFS vs JuiceFS Benchmarks

Performance comparison conducted on Azure D48lds v6 (48 vCPUs, 96 GiB RAM) with Cloudflare R2 backend. Results published August 2025.

Test Setup

  • VM: Azure Standard D48lds v6, West Europe (Zone 1)
  • Storage: Cloudflare R2 (S3-compatible)
  • Benchmark suite: github.com/Barre/ZeroFS/bench
  • Operations per test: 10,000

Architecture Differences

ZeroFS: Stores data and metadata in S3. No separate database.

JuiceFS: Stores data in S3 and metadata in a separate database (SQLite, Redis, or TiKV).

Performance at a Glance

Key Performance Differences

Sequential Writes (higher is better)JuiceFS: 175x slower
ZeroFS
984 ops/s
JuiceFS
5.6 ops/s
Data Modifications (higher is better)JuiceFS: 183x slower
ZeroFS
1099 ops/s
JuiceFS
6 ops/s
File Append (higher is better)JuiceFS: 227x slower
ZeroFS
1204 ops/s
JuiceFS
5.3 ops/s
Empty Files (higher is better)ZeroFS: 1.2x faster
ZeroFS
1351 ops/s
JuiceFS
1151 ops/s
Git Clone (lower is better)ZeroFS: 13x faster
ZeroFS
2.6s
JuiceFS
34.4s
Cargo Build (lower is better)JuiceFS: 22x slower
ZeroFS
3m 4s
JuiceFS
>69m
TAR Extract (lower is better)ZeroFS: 76x faster
ZeroFS
8.2s
JuiceFS
10m 26s
Storage Used (lower is better)ZeroFS: 32x less
ZeroFS
7.6 GB
JuiceFS
239 GB
API Operations (lower is better)ZeroFS: 112x less
ZeroFS
8k
JuiceFS
898k

Benchmark Results

Synthetic Benchmarks

TestZeroFSJuiceFSDifference
Sequential Writes
Operations/sec984.295.62175x
Mean latency1.01ms177.76ms176x
Success rate100%100%-
Data Modifications
Operations/sec1,098.625.98183x
Mean latency0.91ms166.25ms183x
Success rate100%7.94%-
Single File Append
Operations/sec1,203.565.29227x
Mean latency0.83ms186.16ms224x
Success rate100%2.57%-
Empty Files
Operations/sec1,350.661,150.571.17x
Mean latency0.59ms0.83ms1.4x
Success rate100%100%-

Real-World Operations

OperationZeroFSJuiceFSNotes
Git clone2.6s34.4sZeroFS repository
Cargo build3m 4s>69mJuiceFS aborted - no progress
tar -xf (ZFS source)8.2s10m 26sZFS 2.3.3 release tarball

Key Observations

ZeroFS

  • Mean latencies between 0.59 ms and 1.01 ms across the four synthetic tests
  • 100% success rate across all benchmarks
  • Completed all real-world tests

JuiceFS

  • Failed 92% of data modification operations
  • Failed 97% of append operations
  • Unable to complete Rust compilation after 69 minutes
  • Errors: "No such file or directory (os error 2)" on file operations

Technical Details

Sequential Writes

Creates files in sequence. Tests metadata performance and write throughput.

ZeroFS: 10,000 files in 10.16 seconds
JuiceFS: 10,000 files in 29 minutes 37 seconds

Data Modifications

Random writes to existing files. Tests consistency and caching.

ZeroFS: All operations succeeded
JuiceFS: 9,206 failures out of 10,000 operations

Single File Append

Appends to a single file. Tests lock contention and write ordering.

ZeroFS: All operations succeeded
JuiceFS: 9,743 failures out of 10,000 operations

Empty File Creation

Pure metadata operations without data writes.

ZeroFS: 7.4 seconds total
JuiceFS: 8.7 seconds total

This was JuiceFS's closest result. The larger gaps appear in tests that write data.

Compilation Workload

Rust compilation of ZeroFS codebase. Tests mixed read/write patterns.

ZeroFS: Completed in 3 minutes 4 seconds
JuiceFS: Aborted after 69 minutes with no progress past initial dependencies

Archive Extraction

Extracting ZFS 2.3.3 source tarball. Tests sequential file creation with varying sizes.

ZeroFS: 8.2 seconds
JuiceFS: 10 minutes 26 seconds (76x slower)

Storage Efficiency

Final Bucket Statistics

MetricZeroFSJuiceFSDifference
Bucket Size7.57 GB238.99 GB31.6x larger
Class A Operations6.15k359.21k58.4x more
Class B Operations1.84k539.3k293x more

Both buckets hold the result of the same workload, measured after all tests completed. R2 bills for stored bytes and for Class A and Class B operations.

Summary

On this hardware and backend, throughput differences range from 1.17x (empty file creation) to 227x (single file append). JuiceFS failed 92% of data modification operations and 97% of appends, and the compilation workload was aborted after 69 minutes without progress past initial dependencies. The same workload left 7.57 GB in the ZeroFS bucket and 238.99 GB in the JuiceFS bucket.

Was this page helpful?