Find file
Fetching contributors…
Cannot retrieve contributors at this time
58 lines (36 sloc) 1.49 KB
A tool to measure read/write performance for block devices.
It performs direct (unaffected by cache or filesystem) block transfers
(reads or writes) linearly or "randomly" (LFSR) while collecting timing
statistics on the transfers. You get min time/max time/avg time and standard
deviation, so you can perform better analysis of the received data. It has
tunable parameters such as aligning a transfer on a particular boundary,
adding an offset to that alignment, or doing a discard on the device
prior to transfers.
The tool originally started out as an addition to Arnd Bergmann's
excellent flashbench tool - git://
It's a bit rough, and hopefully I'll have the time to clean up the code a
bit soon.
Test 512-byte writes aligned to 4k.
sa -s 1s -a 4096 /dev/mmcblk0p15
Test 1024-byte writes straddling 8k boundary.
sa -s 1k -a 8192 -o 7680 /dev/mmcblk0p15
Test 8k reads.
sa -s 8k -d /dev/mmcblk0p15
Test maximum 1000 different 8k writes (as opposite to as many as can
fit in the device)
sa -s 8192 -c 1000 /dev/mmcblk0p15
Repeat above test five times, blk erasing the device before each repeat.
sa -s 8192 -c 1000 -r 5 -e /dev/mmcblk0p15
Use LFSR ("random") instead of sequential access.
sa -s 8192 -R /dev/mmcblk0p15
Print verbose info.
sa -v -s 8192 /dev/mmcblk0p15
Print really verbose info.
sa -v -v -s 8192 /dev/mmcblk0p15
Contact Info
Andrei Warkentin (,