Recently, I wanted to play with the latest build of MeeGo on my Nokia N900. I also wanted to try it on a PandaBoard borrowed from a friend. To do that, I needed a better (greater capacity and higher write speed) microSD card than any I had in my collection. That need caused me to learn more about microSD memory cards. The results of learning about microSD and the speed classification were somewhat disappointing.

According to this article on Wikipedia, a Class 10 SD device is supposed to provide a minimum of 10 Megabytes per second in sequential write throughput. What I found is that, in reality, SD Class ratings are on a par with the claims of used car sales.

In order to try and objectively establish the actual throughput of various microSD cards, I needed some software tools. I’ve used two so far. ubuntu distributions include the Disk Utility, which will measure disk speeds. I believe the tool will only measure sequential writes, not random writes. It also doesn’t allow for any configuration of the testing characteristics, such as block size or file size or number of testing threads.

I also used the Linux utility fio. This is a much more comprehensive and capable tool, allowing you to configure essentially every aspect of its operation.

Using both of these tools with the first microSD card I bought for this new project, I was sorely disappointed. I bought a new Lexar 8 gigabyte microSDHC Class 10 card. The Class 10 states that the card is supposed to be capable of a minimum of 10 megabytes per second in sequential write throughput. My test results indicated otherwise.

Using both the ubuntu Disk Utility and fio, the best I was able to achieve was less than 3 megabytes for sequential write throughput. Using fio to execute a random write test, I learned that this Lexar card wasn’t capable of even one megabyte per second for a random write.

Now, I’m on the hunt for microSD cards with at least 8 gigabytes capacity, which will give me at least 5 gigabytes of throughput for random writes.

Advertisements