Benchmarks:WD Elements

For my work computer, I installed Arch Linux on an external USB hard drive. My idea behind that is that if I’m ever working from home and forget to bring my charger with me, I can just plug the drive into another computer and I’m back up and running. So far it’s worked great. A few months back though, I dropped the drive while it was running and while it was surprisingly okay (despite being read-only until reboot), it was a bit slower. I would assume a head crash, but thus far I have noticed no data corruption.

All that said, I want to get another drive that I can mirror with (software raid 1 anybody?), just in case something happens. I’ve been hunting around online for the last few days and have found it to be impressively difficult to find real specs on external USB hard drives. Sure, you can get that it’s USB3 and maybe even its rpm, but you’re almost guaranteed not to find cache size or even what drive is inside the enclosure, metrics I consider to be very important. That’s why I’ve decided to post the IO metrics for this drive. Hopefully someone will find these metrics useful.


  • Manufacturer: Western Digital

  • Name: Elements

  • Made in: Malaysia

  • Size: 1TB

  • Interface: USB 3.0/2.0

  • Average Write Speed: 104 MB/s

  • Average Read Speed: 107 MB/s


USB3 /dev/zero Write

The fastest place I can think of to get data from and avoid any bottlenecks outside of the drive is to write from /dev/zero. The amount of processing power that goes into writing all zeros is insignificant next to the power of the force…er…reading data from another drive, potentially introducing more bottlenecks and not getting good measurements. Let us begin…

dd if=/dev/zero of=/dev/sdc bs=1M count=8192
8191+1 records in
8191+1 records out
8589131776 bytes (8.6 GB) copied, 82.9999 s, 103 MB/s

Double the amount of data being written…

dd if=/dev/zero of=/dev/sdc bs=1M count=16384
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB) copied, 161.13 s, 107 MB/s

Looks like overall this drive consistently averages just over 100 MB/s plugged in to USB3.

USB3 Read to /dev/null

Here we’re basically doing the same as writing from /dev/zero, but instead we’re reading verbatim the first x consecutive number of bytes and sending them to a device that literally can’t be a bottleneck: /dev/null. It’s like sending dead satellites floating into space (spaaaaacce) instead of spending the time to land them (if they don’t burn up) and disassembling. If I had to pick somewhere to send something fast where there wouldn’t be any bottlenecks, the vast void of space is where I’d send it - that is equivelant to /dev/null. Not a great analogy, I know, but honestly, I just wanted to reference that Portal video.

dd if=/dev/sdc of=/dev/null bs=1M count=8192
8192+0 records in
8192+0 records out
8589934592 bytes (8.6 GB) copied, 80.5907 s, 107 MB/s


  • Average write speed: 104 MBps (832 Mbps = .832 Gbps)

  • Average read speed: 107 MBps (856 Mbps = .856 Gbps)

Overall I’d say this drive is okay. As mentioned, the maximum speed of the USB3 spec is 5 Gbps and this is getting just shy of 1/5 that. I won’t balk at that because a 100 megabytes per second transfer rate is still pretty impressive for an external hard drive (that’s 838,860,800 bits per second!).

One final thing to note, I ran these benchmarks on two systems, my laptop and my server, to make sure the USB3 port, processor, bus, etc. weren’t themselves bottlenecks. The transfer rates were nearly identical (insignificantly different).