Difference between revisions of "SD Card Performance Benchmarking"

From apertus wiki
Jump to: navigation, search
Line 14: Line 14:
where /dev/sdXX is the device for the SD card  
where /dev/sdXX is the device for the SD card  


this should run for a while an write pseudo random data to the sd card
this should run for a while an write pseudo random data to the sd card:
<pre class="code">15923412992 bytes (16 GB, 15 GiB) copied, 1415 s, 11,3 MB/s
dd: error writing '/dev/mmcblk0': No space left on device
121549+0 records in
121548+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1415,66 s, 11,3 MB/s
</pre>




any errors there are a general problem except for when the sd card is full  
any errors there are a general problem except for when the sd card is full  


once you know the number of blocks for the specific sd card
once you know the number of blocks (for theabove example: 121548) specific sd card you want to add count=xxx to avoid overrun
./prng sd001.seed | dd of=/dev/sdXX bs=128k iflag=fullblock oflag=direct status=progress count=121548


you want to add count=xxx to avoid overrun
=Benchmark Read Speed=
=Benchmark Read Speed=
   
   

Revision as of 21:27, 13 February 2021

1 Preparations

Note: Be aware that this will wipe/erase all data on the SD card we are benchmarking, also be extra careful to select the correct device/mount point to not wipe you PCs internal drive instead by accident.

get this http://vserver.13thfloor.at/Stuff/prng.c and build it with "-O3":

gcc prng.c -o prng -O3

copy 16 bytes from /dev/random into a file e.g. sd001.seed:

dd  if=/dev/random of=sd001.seed bs=16b count=1

2 Benchmark Write Speed

run:

./prng sd001.seed | dd of=/dev/sdXX bs=128k iflag=fullblock oflag=direct status=progress

where /dev/sdXX is the device for the SD card

this should run for a while an write pseudo random data to the sd card:

15923412992 bytes (16 GB, 15 GiB) copied, 1415 s, 11,3 MB/s
dd: error writing '/dev/mmcblk0': No space left on device
121549+0 records in
121548+0 records out
15931539456 bytes (16 GB, 15 GiB) copied, 1415,66 s, 11,3 MB/s


any errors there are a general problem except for when the sd card is full

once you know the number of blocks (for theabove example: 121548) specific sd card you want to add count=xxx to avoid overrun

./prng sd001.seed | dd of=/dev/sdXX bs=128k iflag=fullblock oflag=direct status=progress count=121548

3 Benchmark Read Speed

dd if=/dev/sdXX bs=128k iflag=direct count=xxx status=progress | md5sum

this will give a read performance and calculate a checksum

the checksum can then be verified with:

./prng sd001.seed | dd bs=128k count=xxx | md5sum

if the checksums do not match, the sd card is not keeping the data written