Is there a generic utility to benchmark external memory device (eMMC, DDR) throughput on an embedded device (e.g. raspberry pi)? memtester, bonnie, bonnie++, memtest, dd?

I've been running into issues related to the "infelicities" of some of the open flags and the fact that linux caches things and was giving me extraordinary read speeds. I ended up ditching a C app and tested 10MiB operations straight from the command line with dd:

Sequential Write Test of eMMC

sync; echo 3 > /proc/sys/vm/drop_caches; time dd if=/dev/zero of=/dev/mydevicepartition count=20 bs=524288 conv=fsync

Sequential Read Test of eMMC

sync; echo 3 > /proc/sys/vm/drop_caches; time dd if=/dev/mydevicepartition of=/dev/null count=20 bs=524288

Someone else on this forum seems to have had similar issues.


Have you looked at the Linux Benchmark Suite? It includes multiple tools to measure performance on a wide range of storage formats, including disk (Memory cards, etc) and memory (RAM, L1 and L2 cache, etc).


Using dd option oflag direct bypasses RAM caching. Using block size of the order of the eMMC erase block size (typically 4M-16M) is recommended for optimal write performance.

Choosing the right benchmark depends upon the application of your embedded device obviously.

Mobibench: https://github.com/ESOS-Lab/mobibench

IOzone: http://www.iozone.org/

dd: http://man7.org/linux/man-pages/man1/dd.1.html

are some frequently used applications.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.