This quick benchmark verifies a remote USB HDD is performing as USB 3. A malfunctioning drive may show as USB 3 in USBview, yet write at USB 2 speeds. This technique works on Linux, Mac, Cygwin, and Windows Subsystem for Linux.
Typical USB HDD write speed
- USB 2 hard limit: 60 MB/s by the 480 Mb/s raw USB 2 speed.
- real-world USB 2 HDD speed: 30-40 MB/s sequential write
In contrast, USB 3 HDD are limited by the magnetic hard drive speed with today’s hard drives, provided your chipset drivers aren’t messed up. I use this test for when Windows fails to load the USB 3 drivers for an HDD, causing the drive to operate at USB 2 speeds, which you can easily detect with this test.
This tests how fast you can write big files, which is a test of sequential write speed. Sequential write speed is important for many remote sensing problems, which are by definition often a time series of data.
dd if=/dev/zero of=/tmp/junk bs=1G count=4 oflag=dsync
That command writes 4 GB sequentially.
- USB 3 HDD: > 80-100 MB/s
- USB 2 HDD: < 60 MB/s
I have not yet found a way to get a usable estimate of read speed with
dsync, etc. options don’t seem to work on read.
Because of numerous caches from the CPU to the drive itself, using a simple method like this will not give precise results.
Better HDD benchmarks
bonnie++ for more accurate results, particularly for disk read benchmarks.
apt install bonnie++
Cygwin requires compiling bonnie++.