TLDR
I am getting 124MB/s Read 70.8MB/s Write on SSD capabale of 500MB/s and I suspect something is wrong with EON Board since rpi4b usb 3 hub should be able to reach 4-5Gbps.
What is the average sequential read/write and random read/write speed you are getting on your SSD?
I am using fio to test it and my results are a bit disappointing…
I can’t even reach 1Gpbs from 4-5 Gbps theoretical maximum
The SSD itself is reaching 500MB/s (4Gbps) when tested directly from pc …
The problem seems to be in EON board
In case anyone want to repeat what I did and compare.
- Stop all processes before starting the test.
- Check with iotop and htop that nothing is running that can interfere with the results.
- Create a script fio.sh and copy it to the the disk you want to test.
- install fio if necessary
- run: chmod +x fio.sh
- run: fio.sh test_name
fio.sh:
#!/bin/bash
# Check if the name parameter is provided
if [ $# -eq 0 ]; then
echo "Usage: $0 <name>"
exit 1
fi
# Get the folder containing the script file
script_directory=$(dirname "$0")
# Get the current datetime in a desired format (e.g., YYYY-MM-DD-HH-MM-SS)
current_datetime=$(date +"%Y-%m-%d-%H-%M-%S")
# Create the fio configuration directly in the script
fio_config="[Disk-randwrite]
rw=randwrite
ioengine=libaio
bs=4k
size=2G
numjobs=1
runtime=30s
time_based
filename=${script_directory}/randwrite
[Disk-randread]
rw=randread
ioengine=libaio
bs=4k
size=2G
numjobs=1
runtime=30s
time_based
filename=${script_directory}/randread
[Disk-write]
rw=write
ioengine=libaio
bs=4k
size=2G
numjobs=1
runtime=30s
time_based
filename=${script_directory}/write
[Disk-read]
rw=read
ioengine=libaio
bs=4k
size=2G
numjobs=1
runtime=30s
time_based
filename=${script_directory}/read
"
# Save the fio configuration to a temporary file
echo "$fio_config" > "$script_directory/fio_config.fio"
# Run the fio test using the fio configuration and save the result to a file with the provided name and current datetime
result_file="fio_result_${1}_${current_datetime}.txt"
fio "$script_directory/fio_config.fio" > "$result_file"
# Print the content of the result file
cat "$result_file"
# Clean up the temporary fio configuration file
rm "$script_directory/fio_config.fio"
rm ${script_directory}/read ${script_directory}/write ${script_directory}/randread ${script_directory}/randwrite
My results:
Disk-randwrite: (g=0): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
Disk-randread: (g=0): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
Disk-write: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
Disk-read: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=1
fio-3.12
Starting 4 processes
Disk-randwrite: (groupid=0, jobs=1): err= 0: pid=4370: Mon Jul 31 22:48:18 2023
write: IOPS=16.7k, BW=65.1MiB/s (68.2MB/s)(1952MiB/30001msec); 0 zone resets
slat (usec): min=20, max=102711, avg=43.68, stdev=297.65
clat (usec): min=2, max=10249, avg= 4.06, stdev=28.14
lat (usec): min=23, max=102726, avg=48.39, stdev=299.68
clat percentiles (usec):
| 1.00th=[ 3], 5.00th=[ 3], 10.00th=[ 3], 20.00th=[ 3],
| 30.00th=[ 3], 40.00th=[ 3], 50.00th=[ 3], 60.00th=[ 3],
| 70.00th=[ 3], 80.00th=[ 3], 90.00th=[ 3], 95.00th=[ 4],
| 99.00th=[ 27], 99.50th=[ 38], 99.90th=[ 474], 99.95th=[ 676],
| 99.99th=[ 799]
bw ( KiB/s): min=30328, max=125392, per=55.44%, avg=74881.88, stdev=28855.40, samples=52
iops : min= 7582, max=31348, avg=18720.40, stdev=7213.85, samples=52
lat (usec) : 4=97.50%, 10=1.09%, 20=0.14%, 50=0.90%, 100=0.15%
lat (usec) : 250=0.10%, 500=0.04%, 750=0.08%, 1000=0.02%
lat (msec) : 2=0.01%, 4=0.01%, 20=0.01%
cpu : usr=10.02%, sys=83.65%, ctx=2220, majf=0, minf=25
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,499608,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Disk-randread: (groupid=0, jobs=1): err= 0: pid=4371: Mon Jul 31 22:48:18 2023
read: IOPS=645, BW=2584KiB/s (2646kB/s)(75.7MiB/30002msec)
slat (usec): min=202, max=316648, avg=1534.73, stdev=7424.90
clat (usec): min=2, max=446, avg= 4.08, stdev= 6.65
lat (usec): min=206, max=316655, avg=1539.72, stdev=7425.41
clat percentiles (usec):
| 1.00th=[ 3], 5.00th=[ 3], 10.00th=[ 3], 20.00th=[ 4],
| 30.00th=[ 4], 40.00th=[ 4], 50.00th=[ 4], 60.00th=[ 4],
| 70.00th=[ 4], 80.00th=[ 5], 90.00th=[ 5], 95.00th=[ 6],
| 99.00th=[ 11], 99.50th=[ 28], 99.90th=[ 99], 99.95th=[ 139],
| 99.99th=[ 269]
bw ( KiB/s): min= 119, max=13368, per=2.08%, avg=2575.46, stdev=2720.93, samples=59
iops : min= 29, max= 3342, avg=643.78, stdev=680.27, samples=59
lat (usec) : 4=74.19%, 10=24.79%, 20=0.28%, 50=0.51%, 100=0.13%
lat (usec) : 250=0.09%, 500=0.01%
cpu : usr=0.66%, sys=7.80%, ctx=19339, majf=0, minf=21
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=19379,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Disk-write: (groupid=0, jobs=1): err= 0: pid=4372: Mon Jul 31 22:48:18 2023
write: IOPS=17.3k, BW=67.5MiB/s (70.8MB/s)(2048MiB/30323msec); 0 zone resets
slat (usec): min=18, max=94731, avg=36.27, stdev=440.09
clat (usec): min=2, max=9499, avg= 2.92, stdev=15.93
lat (usec): min=21, max=94739, avg=39.63, stdev=440.55
clat percentiles (usec):
| 1.00th=[ 3], 5.00th=[ 3], 10.00th=[ 3], 20.00th=[ 3],
| 30.00th=[ 3], 40.00th=[ 3], 50.00th=[ 3], 60.00th=[ 3],
| 70.00th=[ 3], 80.00th=[ 3], 90.00th=[ 3], 95.00th=[ 3],
| 99.00th=[ 4], 99.50th=[ 5], 99.90th=[ 57], 99.95th=[ 149],
| 99.99th=[ 412]
bw ( KiB/s): min=46608, max=144056, per=70.52%, avg=95252.61, stdev=37639.23, samples=44
iops : min=11652, max=36014, avg=23813.16, stdev=9409.85, samples=44
lat (usec) : 4=99.46%, 10=0.36%, 20=0.01%, 50=0.07%, 100=0.01%
lat (usec) : 250=0.06%, 500=0.02%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%, 10=0.01%
cpu : usr=9.12%, sys=52.74%, ctx=10896, majf=0, minf=23
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,524289,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Disk-read: (groupid=0, jobs=1): err= 0: pid=4373: Mon Jul 31 22:48:18 2023
read: IOPS=30.4k, BW=119MiB/s (124MB/s)(3557MiB/30001msec)
slat (usec): min=5, max=1022.2k, avg=26.36, stdev=3374.93
clat (usec): min=2, max=3921, avg= 2.52, stdev=13.61
lat (usec): min=8, max=1022.2k, avg=29.17, stdev=3375.00
clat percentiles (usec):
| 1.00th=[ 3], 5.00th=[ 3], 10.00th=[ 3], 20.00th=[ 3],
| 30.00th=[ 3], 40.00th=[ 3], 50.00th=[ 3], 60.00th=[ 3],
| 70.00th=[ 3], 80.00th=[ 3], 90.00th=[ 3], 95.00th=[ 3],
| 99.00th=[ 3], 99.50th=[ 4], 99.90th=[ 55], 99.95th=[ 127],
| 99.99th=[ 416]
bw ( KiB/s): min= 2480, max=354392, per=100.00%, avg=133029.57, stdev=85427.11, samples=53
iops : min= 620, max=88598, avg=33257.36, stdev=21356.79, samples=53
lat (usec) : 4=99.61%, 10=0.06%, 20=0.05%, 50=0.18%, 100=0.04%
lat (usec) : 250=0.05%, 500=0.01%, 750=0.01%, 1000=0.01%
lat (msec) : 2=0.01%, 4=0.01%
cpu : usr=11.42%, sys=48.12%, ctx=5402, majf=0, minf=22
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=910710,0,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
READ: bw=121MiB/s (127MB/s), 2584KiB/s-119MiB/s (2646kB/s-124MB/s), io=3633MiB (3810MB), run=30001-30002msec
WRITE: bw=132MiB/s (138MB/s), 65.1MiB/s-67.5MiB/s (68.2MB/s-70.8MB/s), io=4000MiB (4194MB), run=30001-30323msec
Disk stats (read/write):
sda: ios=26990/200047, merge=2/822, ticks=272935/909981, in_queue=1183017, util=99.49%