Archil vs Amazon EFS
The results are in Benchmark against Amazon EFS and on archil.com/compare/amazon-efs.Method
- Host: AWS c7gn.2xlarge (Graviton3, 8 vCPU, 15 GiB), us-east-1, Amazon Linux 2023. Both file systems were in the same region and tested from the same host on 2026-10-15.
- Archil: a new Archil disk with no data source, mounted with Archil client v0.9.2 and default mount options.
- Amazon EFS: a new file system with General Purpose performance mode, Elastic throughput and Standard storage, mounted with amazon-efs-utils 3.0.1 (TLS, NFSv4.1, rsize/wsize 1 MiB). Amazon S3 Files is built on the same service.
- No network fetches: git clones came from local bare mirrors, and npm used
npm ci --prefer-offlinewith a prefilled cache. Only the file system under test was measured. - Timing: times are wall-clock time until the command returns.
- fio: fio 3.32, buffered I/O, 4 GiB file. 4 KiB random I/O used libaio, iodepth 16, 4 jobs. Cold reads were taken
after unmount,
drop_cachesand remount. - Tool versions: git 2.50.1, Node 24.18.0 / npm 11.16.0, SQLite 3.40.0.
Run it
Mount both file systems, then run every test below 3 times on each mount and take the median. SetMNT to the mount
under test. Inputs and caches stay on local disk.
git status, we flushed the mount (archil sync /mnt/archil on Archil,
sync -f on EFS). The flush isn’t part of the times in the table.
git. Mirror both repositories once, pinned to the commits we used:
3.21.2 for express, v16.0.0 for react):
python3 sqlite_bench.py "$MNT/sqlite" prints the time in seconds for each of the four tests. The script
has three parts, full, normal, and bulk; bulk runs the 1M-row insert and then the point reads against that table
in the same process, with no flush between them. On EFS we ran each part on its own with a 10-minute limit, for example
timeout 600 python3 sqlite_bench.py "$MNT/sqlite" bulk, and the point reads hit that limit.
sqlite_bench.py
sqlite_bench.py
sqlite_bench.py
bw_bytes and iops. Warm reads also ran after the sequential write; they aren’t in the table.
Archil vs JuiceFS vs Amazon S3 Files
The developer-workload numbers on archil.com/compare/juicefs and archil.com/compare/amazon-s3-files come from one AWS c7gn.2xlarge (arm64) in us-east-1 with every file system mounted on the same host:sync -f <dir> with archil sync /mnt/archil. With --writeback, JuiceFS acknowledges writes once
they are staged on local disk, so also wait until every staged block has uploaded:
create-next-app@15 resolves, so expect yours
to differ a little.
Archil vs Amazon S3 Files vs Mountpoint for Amazon S3
The latency, visibility, and new-file-system numbers on archil.com/compare/amazon-s3-files and archil.com/compare/mountpoint-for-amazon-s3 come from one AWS c7gn.2xlarge (arm64) in us-east-1. Each file system had two independent mounts on that host, a writer A and a reader B, each with its own cache:--shared. The S3 Files mount target was in the host’s Availability
Zone, on a versioned bucket. Mountpoint ran without --cache.
AWS API calls for the new-file-system test ran from a separate machine, which adds about 0.1 to 0.5 s per call.
Archil’s API call and every mount and write ran on the host. The measurement script will follow.