I bought a new SD card and the claimed performance is a long way from my benchmark. Is there something I can do improve the transfer speed when working with this SD card?

Information on the disk:

$ df --output=source,fstype,size,target -h
Filesystem     Type      Size Mounted on
/dev/mmcblk0p1 fuseblk    60G /media/drew/6564-6433

Partition type: HPFS/NTFS
Contents:       exFAT (version 1.0)

The card's packaging claims:

Speed up to 30 MB/s* (200X)

Following the asterisk leads to:

Up to 30MB/s transfer speed; write speed lower. Based on internal testing; performance may be lower depending on host device. 1MP = 1,000,000 bytes. X = 150KB/s.

My machine didn't recognise the card's formatting at first, so I installed exfat-fuse the package and it worked at the next attempt.

I then ran a benchmark using gnome-disks:

enter image description here

As you can see, the average read speed of 7.1 MB/s which is a long way from 30 MB/s. That's 4.2 times slower (23%).

Is there anything I can do to improve the transfer speed when working with this SD card?

EDIT output of hdparam as requested in comments:

$ sudo hdparm -tT /dev/mmcblk0

 Timing cached reads:   12186 MB in  1.99 seconds = 6111.71 MB/sec
 Timing buffered disk reads:  34 MB in  3.17 seconds =  10.73 MB/sec

I executed this four times on an unoccupied machine and the results were consistent across runs.

The first number (6GB/s) is described as:

the speed of reading directly from the Linux buffer cache without disk access. This measurement is essentially an indication of the throughput of the processor, cache, and memory of the system under test.

The second number (10 MB/s) is described as:

This displays the speed of reading through the buffer cache to the disk without any prior caching of data. This measurement is an indication of how fast the drive can sustain sequential data reads under Linux, without any filesystem overhead.

So 10 MB/s may be the throughput for a different type of load, or possibly just for a shorter time (the incomplete chart above ran for around 5 minutes before I took that screenshot.) Either way, it's still not close to 30 MB/s!

  • 1
    Note that this isn't Ubuntu specific. My bet is that you have an UHS 2 spec card. This makes its write speed be average/max 2MB/s as can be seen in the benchmark. I believe there is a wikipedia article on this, try looking it up. Apart from that the achievable speed depends also on your other hardware - i.e. USB3.0 reader, ports and so on - or not. – Hannu Jun 11 '14 at 19:29
  • @Hannu, true that it's not Ubuntu specific, but I use Ubuntu and want to see if I can speed it up somehow. There must be many great tools that I don't know about. – Drew Noakes Jun 11 '14 at 19:30
  • 1
    What does hdparm -tT /dev/mmcblk0 show? – bain Jun 11 '14 at 20:27
  • 1
    "UHS 2" above should read "class 2", see en.wikipedia.org/wiki/Secure_Digital#Speed_class_rating – Hannu Jun 11 '14 at 21:05
  • 1
    MMC is a slow protocol. The Raspberry Pi people have had lots of problems with it. See Why is my SD Card slow and for IO scheduler hints answer to SD Card Transfer very slow – bain Jun 12 '14 at 0:20

Your Answer

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

Browse other questions tagged or ask your own question.