I got new SD card claimed to be 10 class of speed, but internal Disk utility in linux after test showed up only 6th class of speed. How can I check my card reader speed to be sure that it's not the limit of the device, but the limit of a card?

I don't have any approved SD cards to perform tests with them.

My card reader shows like this in lspci:

0000:07:00.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller (rev 05)
0000:07:00.1 SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 22)
0000:07:00.2 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 12)
0000:07:00.3 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 12)
  • How did you perform the tests?
    – bahamat
    Commented Jun 22, 2012 at 23:57
  • with gui tool "Disk utility" (read about it here: photographybanzai.com/2011/04/25/…)
    – Drey
    Commented Jun 24, 2012 at 13:18
  • I have a fast SD card and ran tests in Windows and then in Linux. It was much faster in Windows, and I assume the speeds I saw were the maximum capacity. In linux I use dd to test device speeds. In Windows just copied files using explorer. I don't know how to do checks without a card, other than reading lshw or lspci output.
    – Rolf
    Commented Apr 18, 2018 at 10:02
  • Related: RPi SD Cards noted that "the maximum throughput of the card reader of the Raspberry Pi is 25 MB/s and that most likely read and write speed won't exceed 22 MB/s." The speed can be determined because the hardware for Pi is well known. That is not really the case for internal card readers in the mini PC and notebook PC.
    – user125388
    Commented Nov 19, 2019 at 17:11
  • Post-bounty note: The bounty has failed to look for a good answer. Whilst nobody had voted, at least one new answer has a relevant starting point and therefore bounty was not wasted and given.
    – user125388
    Commented Nov 22, 2019 at 12:17

2 Answers 2


Testing the speed of an internal card reader with Disks

In order to find the maximum throughput via the internal card reader the other components must be faster (the read/write process on both sides of the card reader, and in particular, the card. And I think the real card speed [which may differ from the nominal speed] can only be verified in a system with a card reader, that is not the bottleneck (for example an adapter via USB 3).

  • We can expect that a good USB 3 adapter will be at least as fast as the memory card used in the test. We can also expect that an internal HDD or SSD is faster than the card. So it should be enough that the card and the USB 3 adapter are faster than the internal card reader in order to test the speed for reading and/or writing (of the internal card reader).

    A good test procedure includes flushing the buffers. Let us rely on Disks alias gnome-disks and simply run it using

    • the internal card reader
    • a USB 3 adapter via a USB 3 port on the computer

    • Remember to tick the box in order to test also writing.

If using the internal card reader takes longer time, you can conclude that it is the bottleneck.

enter image description here

General discussion including testing also other hardware

It is very important that you test not only what is the output from for example dd or pv, but you should measure the time of the read or write command including flushing the buffers. The following method should work in linux,

time ( read or write command ; sync )

and then divide the amount of data written by the 'real' time to get the real speed.

It is a good idea to test read/write of a single big file and of 'many small files'. (Writing 'many small files' is often much slower than writing a single big file measured in MB/s).

You can use some standard test or design a test for your particular use case, which may rank combinations of hardware and software in a different way from the standard test.

For write tests it is important that reading or creating the input is not the bottleneck. Running in a live system with the data in RAM is one alternative. For read tests you can write to /dev/null.

To find the bottleneck you can try with different

  • cards (different nominal speed)
  • adapters
  • USB ports or built-in card slots
  • computers
  • operating systems
  • OP had used the Disk Utility (nowadays, GNOME Disks) that has options to change the sample size and measure access time already. What OP wants to know is similar to knowing RPi has maximum throughput of 25MB/s, but in case of PC with an internal card reader.
    – user125388
    Commented Nov 21, 2019 at 4:42
  • 1
    @clearkimura, I think I understand what you mean. My answer is too general. I think it could be formulated like this: In order to find the maximum throughput via the internal card reader the other components must be faster (the read/write process on both sides of the card reader, and in particular, the card. And I think the real card speed [which may differ from the nominal speed] can only be verified in a system with a card reader, that is not the bottleneck (maybe an adapter via USB 3). By the way, I recently updated my old speed test in order to check the speed of a new nvme drive.
    – sudodus
    Commented Nov 21, 2019 at 7:30
  • @clearkimura, Well. Disks is a GUI tool, and not easy to combine with sync without manual intervention - unless the test in Disks includes sync (which I don't know). I can change the writing.
    – sudodus
    Commented Nov 22, 2019 at 7:39
  • Um... to clarify my earlier comment: If the answer merely suggest to run foo bar, which is not a valid command by itself, then better use GUI tool that OP have already. Else, the answer should suggest any CLI command like cp, dd, or other command with relevant options, which may not need a separate sync command even. Regardless of GUI or CLI tool, at least name one tool that can do the job. In short: Be specific, hence practical.
    – user125388
    Commented Nov 22, 2019 at 9:13
  • 1
    @clearkimura, I am suggesting Disks (high-lighted with bold font) in the edited answer.
    – sudodus
    Commented Nov 22, 2019 at 9:22

Companies usually quote their best-case speeds.

The highest speeds are achieved for sequential read writes. So most likely the 80MBps apply to that. Speed testing applications usually mix up lots of tests, like random read writes, etc. This gives you an average performance figure.

The best example of this is car or bike fuel efficiency figures. Companies will give you the results under test conditions. But it'll never be the same as you get in day to day usage.

Speed is not indicative of authenticity. Your card is most likely the genuine thing.

But still, if you want then-

I would suggest you try AJA System Test

Here is a list of card testers using an android device.

  • 5
    Well, no. Class 6 etc usually guarantees a minimum speed so you know if it's suited for your application eg. a camcorder, which needs a minimum data rate.
    – JPT
    Commented Nov 19, 2019 at 16:59
  • 1
    If testing equipment reports a lower official standard than the card claims to be then either the card is faulty/fake or the testing equipment is incorrect. This is what standards are. I would not the motor industry as an analogy. Big car manufacturers are being fined / sued for a lot of money over the behaviour you describe. Across Europe it's not legal to advertise unattainable stats. Commented Nov 22, 2019 at 8:22
  • The comments above are correct, but in my experience, the card will get slower after using it for a while. Particularly writing will get slower. It can help to wipe the device (overwrite the whole device with zeros) to get back almost the original write speed, but don't do it too often because of wear of the memory cells.
    – sudodus
    Commented Nov 22, 2019 at 10:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .