System Performance Engineering Report

Storage Subsystem Analysis & fsync Latency Profiles on ARM Embedded Nodes

Author: Staff Performance Engineering Updated: August 2026 Target: Embedded Linux (ARM)
Linux Kernel FIO Benchmark Storage I/O I/O Latency Reproducibility

1. System Under Test (SUT) Topology

To ensure rigorous reproducibility, the system topology, architecture, kernel parameters, and block storage media parameters were captured prior to benchmark execution.

Host Architecture
Hardkernel ODROID (armv7l)
Linux Kernel
5.4.274-270 #1 SMP PREEMPT
OS Environment
Ubuntu 20.04.6 LTS (Focal)
Block Device (Root)
/dev/mmcblk1p2 (118 GB ext4)
Interface Protocol
MMC / Secure Digital (SD 3.0)
Mount Options
rw,noatime,errors=remount-ro

2. Benchmark Methodology & Technical Purpose

Standard POSIX write() calls pass through the Linux page cache asynchronously, providing high throughput at the risk of volatility. In transactional systems (e.g., Prometheus WAL, PostgreSQL commit logs, or etcd clusters), the process requires durability guarantees via fsync().

This workload forces a flush on every 4KB write operation to isolate flash controller responsiveness, internal garbage collection overhead, and block bus saturation under zero write-buffering.

I/O System Call Sequence

FIO Benchmark
Kernel (VFS / ext4)
Flash Memory Controller
FIO
1. write(4KB block)
VFS
FIO
2. sys_fsync() invocation
VFS
VFS
3. MMC SYNCHRONIZE_CACHE
Controller
Controller
4. NAND Physical Write & ACK
VFS
VFS
5. fsync() return completion
FIO

3. Observed Benchmark Results

fio --name=fsync_test --filename=testfile.tmp --size=500M \
    --rw=randwrite --bs=4k --fsync=1 --ioengine=sync \
    --runtime=30 --time_based --group_reporting
Metric Measured Value Engineering Assessment
Write IOPS 200 IOPS Sufficient for low-throughput monitoring; will throttle write-heavy database transactions.
Throughput 804 KiB/s Constrained by single-threaded synchronous flush operations.
Mean Sync Latency 4.85 ms Acceptable baseline latency for consumer SD flash memory interfaces.
95th Percentile Latency 7.37 ms Demonstrates steady queue performance under normal operation.
Max Tail Latency 648.76 ms Severe Outlier: Controller stalled execution for ~0.65s due to background flash page erasures.
Device Utilization 99.75% Bus fully saturated despite low overall byte volume due to command overhead.

4. Storage Technology Performance Spectrum

To contextualize these measurements, the table below maps observed performance against typical storage hardware classes:

Storage Media Tier Typical 4k fsync IOPS Mean Latency Tail Latency (p99.99)
Consumer SD Card (SUT) 100 - 250 IOPS 4.0 - 10.0 ms > 500 ms
High-End A2 Class MicroSD 400 - 800 IOPS 1.2 - 2.5 ms ~ 100 ms
Industrial eMMC Module 1,500 - 4,000 IOPS 0.2 - 0.6 ms < 15 ms
SATA Enterprise SSD 10,000 - 25,000 IOPS 0.05 - 0.1 ms < 2 ms
NVMe PCIe SSD 50,000+ IOPS < 0.03 ms < 0.5 ms

5. Engineering Summary & Recommendations

The measured 200 IOPS baseline proves the storage node is capable of lightweight application logging. However, the presence of a **648ms max tail latency spike** requires mitigation to avoid application-level timeouts in Prometheus, Docker container logging, or database transactions: