# FIO Severe test
#!/bin/sh
set -eu
# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"
# Output directory for logs.
LOG_DIR="/tmp"
# Common fio settings.
COMMON_OPTS="--ioengine=psync \
--iodepth=1 \
--numjobs=1 \
--runtime=30 \
--time_based \
--direct=1 \
--group_reporting \
--lat_percentiles=1 \
--percentile_list=50:90:95:99:99.9:99.99"
echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqwrite_raw_sync \
--filename="$TARGET_DEV" \
--rw=write \
--bs=1M \
--sync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/seqwrite_raw_sync_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqread_raw_direct_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=read \
--bs=1M \
$COMMON_OPTS \
--output="$LOG_DIR/seqread_raw_direct_severe_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randwrite_raw_sync \
--filename="$TARGET_DEV" \
--rw=randwrite \
--bs=4k \
--sync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/randwrite_raw_sync_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randread_raw_direct_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=randread \
--bs=4k \
$COMMON_OPTS \
--output="$LOG_DIR/randread_raw_direct_severe_test.txt"
echo
echo "Done. Logs:"
echo " $LOG_DIR/seqwrite_raw_sync_test.txt"
echo " $LOG_DIR/seqread_raw_direct_severe_test.txt"
echo " $LOG_DIR/randwrite_raw_sync_test.txt"
echo " $LOG_DIR/randread_raw_direct_severe_test.txt"
# FIO less Severe setting test
#!/bin/sh
set -eu
# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"
# Output directory for logs.
LOG_DIR="/tmp"
# Common fio settings.
COMMON_OPTS="--ioengine=psync \
--iodepth=1 \
--numjobs=1 \
--runtime=30 \
--time_based \
--direct=1 \
--group_reporting \
--lat_percentiles=1 \
--percentile_list=50:90:95:99:99.9:99.99"
echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqwrite_raw_direct \
--filename="$TARGET_DEV" \
--rw=write \
--bs=1M \
--end_fsync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/seqwrite_raw_direct_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=seqread_raw_direct_less_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=read \
--bs=1M \
$COMMON_OPTS \
--output="$LOG_DIR/seqread_raw_direct_less_severe_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randwrite_raw_direct \
--filename="$TARGET_DEV" \
--rw=randwrite \
--bs=4k \
--end_fsync=1 \
$COMMON_OPTS \
--output="$LOG_DIR/randwrite_raw_direct_test.txt"
sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null
fio --name=randread_raw_direct_less_severe \
--filename="$TARGET_DEV" \
--readonly=1 \
--rw=randread \
--bs=4k \
$COMMON_OPTS \
--output="$LOG_DIR/randread_raw_direct_less_severe_test.txt"
echo
echo "Done. Logs:"
echo " $LOG_DIR/seqwrite_raw_direct_test.txt"
echo " $LOG_DIR/seqread_raw_direct_less_severe_test.txt"
echo " $LOG_DIR/randwrite_raw_direct_test.txt"
echo " $LOG_DIR/randread_raw_direct_less_severe_test.txt"
Sequential read: ~27.5 MiB/s
Sequential write, severe sync: ~12.8 MiB/s
Sequential write, less severe: ~27.1 MiB/s
4 KiB random read: ~2.5k IOPS / ~10 MiB/s
4 KiB random write, severe sync: ~1.0k IOPS / ~3.9 MiB/s
4 KiB random write, less severe: ~1.7k IOPS / ~6.8 MiB/s| Test | Severe raw | Less severe raw | Change |
| ---------------- | -------------------------: | -------------------------: | ------------ |
| Sequential write | **12.8 MiB/s** | **27.1 MiB/s** | ~2.1× faster |
| Sequential read | **27.4 MiB/s** | **27.5 MiB/s** | Same |
| Random write | **1001 IOPS / 3.91 MiB/s** | **1730 IOPS / 6.76 MiB/s** | ~1.7× faster |
| Random read | **2600 IOPS / 10.2 MiB/s** | **2481 IOPS / 9.70 MiB/s** | Same range |
| Test | Filesystem severe fio | Raw block severe fio | Better number to quote |
| ---------------- | ---------------------: | -------------------------: | ----------------------------------------------------------------- |
| Seq write sync | ~23.7–24.1 MiB/s | **12.8 MiB/s** | Depends on workload; raw is stricter |
| Seq read direct | ~37.5 MiB/s | **27.4 MiB/s** | Raw is cleaner |
| Rand write sync | ~291 IOPS / 1.14 MiB/s | **1001 IOPS / 3.91 MiB/s** | Raw for media/block capability; filesystem for real file workload |
| Rand read direct | suspicious ~22k IOPS | **2600 IOPS / 10.2 MiB/s** | Raw result |
Quote from: LubOlimex on July 06, 2026, 01:26:32 PM1. There are both hardware and software limitations to use such a fast card optimally with this board.