Fio (POSIX) Benchmark
Fio Tests Overview
Fio (Flexible I/O Tester) is an open source powerful tool used for benchmarking and testing the performance of storage systems. It supports a variety of I/O operations, including sequential and random reads/writes, and allows for highly customizable workloads. Fio is cross-platform, working on Linux, Windows, and macOS, and provides detailed performance metrics like IOPS, bandwidth, and latency.
This page demonstrate the fio testing results of Alluxio. The test cases can be applied to other storage systems.
Test details
Test environments
All instances are on the same availability zone in AWS.
Alluxio Worker
1 i3en.metal instance
Raid 0 of 8 nvme SSDs (created by mdadm command)
100Gbps network bandwidth
Ubuntu 24.04
An Alluxio worker process
A single ETCD node
Alluxio Client
1 c5n.metal instance
100Gbps network bandwidth
Ubuntu 24.04
Fuse 3.16.2
An Alluxio FUSE process
Single Worker & Client Test
This scenario tests the read performance against a single 100GB large file. Only 1 client and 1 worker are involved in the test.
Test preparation
Place a single 100GB file in the UFS. In this benchmark, we use an S3 bucket in the same region with the workers & clients.
Sequential read
Run the following commands on the Alluxio client:
The numjobs
param specifies the concurrent fio jobs that performs read. In this benchmark, numjobs
is set to 1
, 32
, or 128
. The bs
param specifies the block size used in the test. We use 256k
for throughput testing and 4k
for testing IOPS.
Random read
Same as the hot sequential read, but the rw
param is changed to randread
.
Results summary
Single Worker & Client Throughput (256k block size)
Bandwidth/Threads | Single Thread | 32 Threads |
---|---|---|
Sequential Read | 2081MiB/s | 8183MiB/s |
Random Read | 141MiB/s | 7504MiB/s |
Single Worker & Client IOPS (4k block size)
IOPS/Threads | Single Thread | 32 Threads | 128 Threads |
---|---|---|---|
Sequential Read | 55.9k | 244k | 179k |
Random Read | 1.6k | 70.1k | 162k |
Performance for cached data
Appendix - Alluxio Configurations
Cluster configuration (alluxio-site.properties
)
alluxio-site.properties
)JVM options (alluxio-env.sh
)
alluxio-env.sh
)Fuse mount options
Last updated