USB flash drives typically have terrible random I/O performance and low IOPS. They are not optimized for system drive performance, so an A1 or A2 micro SD card should handily outperform most USB flash drives.
Use iozone3 from http://www.iozone.org/ - it's available in Debian stretch (from non-free) but seems to be missing in Raspbian so you have to compile it yourself (it's easy enough though, "make linux-arm").
Code: Select all
./iozone -e -I -a -s 100M -r 4k -i 0 -i 1 -i 2 -f iotest
Odd, over here in Australia I've been buying UHS-I cards with a slightly (and I mean slightly) lesser random read speed than these new shiny A1/A2/A3 cards for the same price (obviously I now buy A1 only)
Yes, 1500 IOPS up to 4000 IOPS is a big jump!
At the time of this writing due to lacking A2 host support (drivers) at least SanDisk A2 rated cards are outperformed by A1 cards from the same company (even the cheap Ultra A1 is faster everywhere except sequential write performance)
Application Performance Class 1 (A1)
This performance class requires at least 1500/500 read/write IOPS (IO operations per second) with a 4k blocksize (small data chunks) and at least 10 MB/s sustained sequential write performance. No special host requirements are needed, the card simply has to exceed the performance requirements on its own.
Application Performance Class 2 (A2)
Cache and Command Queuing require host (driver) support since the host needs to activate those new features first. The cache feature on A2 rated cards makes use of volatile RAM on the card requiring the host to learn new commands to issue flushing the cache (involving the risk of data losses -- for details see especially chapter 4.17 in Physical Layer Simplified Specification 6.0)