Skip to content

On Pandaboard SD card performance

I have the Pandaboard running as my home server for a while now. Until last weekend, I was using a Microdrive as its root filesystem. Sadly, the drive seems to be broken. :-( That means I finally had a chance to try bootstrapping a server very quickly using Puppet. This worked fairly well, which means the time investment is paying off already.

Since all the storage I had at home was the 32GB SD card I bought for this thing anyway, I decided to give it another chance. At some point I was reminded already that alignment really matters with these things. Some Bonnie++ runs do seem to confirm this. I removed the second partition on the SD, and recreated it on a 4MB barrier. (The trick to do this is to use the "u" command in fdisk to switch units to sector instead of cylinders, and make sure the start sector is a multiple of 8192.)

To be honest, I did run most of these benchmarks with the SD card reader/writer in my desktop machine. Only the last test was done on my Pandaboard, but as you can see the results are very similar.

Version 1.96Sequential OutputSequential InputRandom
Seeks
Sequential CreateRandom Create
SizePer CharBlockRewritePer CharBlockNum FilesCreateReadDeleteCreateReadDelete
K/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPUK/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU/sec% CPU
ext3-noalign4G18941351414878126469821147220.90164630++++++++2832332144++++++++32214
Latency6643ms28833ms19841ms6668us483ms47888msLatency1335us655us933us531us85us60814us
ext34G43793372715631127259921484221.50169381++++++++4303537436++++++++43045
Latency412ms32024ms5622ms6422us469ms52114msLatency1574us760us713us1644us13us585us
logfs4G11497513670535304106781592076.531620339++++++++47312217558++++++++151611
Latency10944us1810ms4562ms29505us54279us2401msLatency568ms9300us7881us2783ms1483us570ms
nilfs24G797957118251861271198241122617.32916210236++++++++++++++++459271++++++++1088656
Latency20454us2767ms2788ms25974us21810us3432msLatency4928ms1288us1020us1339us358us294us
ext44G443911831529299226029925041222.401635678++++++++4369737927++++++++43936
Latency32264us920ms926ms12851us14137us5042msLatency530us1451us1316us393us401us771us
ext4-panda1496M106961683888865766399222431230.1116347926++++++++403523876065++++++++1038863
Latency78219us3925ms961ms13732us104ms1251msLatency1190us1801us1892us762us61us671us

Click here for a table not f*cked up by my blog software.

Although the throughput numbers for ext3 are pretty similar for non-aligned and aligned access, look at the latency numbers. Unfortunately I haven't got a clue how Bonnie++ calculates these and can't find very good documentation on it. Throughput may be average and latency worst-case? Either way, as you can see a misaligned partition can cause some slowdowns.

What surprised me more is that a switch to ext4fs sped up things a lot more, up to the point that the performance is perfectly reasonable! I'm running with this SD as my root filesystem now and everything just works. (While before a simple apt-get install run could take several minutes.)

While I was at it, I also tried out logfs and nilfs2, which are officially optimised for flash media. However, AFAIK they're more meant for raw NAND storage, not for block devices with all the NAND logic abstracted away (like anything you buy in stores these days). Not worth it for these SDs.

Obviously this test is far from scientific. Only in the case of ext4-panda have I run the test five times to then pick a decent result (there were some outliers in all areas). All other tests were done on a freshly formatted filesystem, which I'm sure also doesn't make the result that reliable.

Just my 2 cents! But my Pandaboard's definitely happier now. Here's hoping that wear leveling works well..

If you're interested, here is a more thorough overview of SD card performance. The LWN article about flash storage it links to is interesting too. The Flash card I used here is a 32GB class 10 Transcend card.

Trackbacks

No Trackbacks

Comments

Display comments as Linear | Threaded

The Great Hoyhoy on :

All of these numbers are in nominal terms though. Can you republish them in inflation adjusted terms?

Wilmer on :

Come on man, don't make fun of the Irish economy!

Wilmer on :

Other article that I couldn't find back at the time of writing, with more info on flash card speed: http://www.hjreggel.net/cardspeed/

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.


BBCode format allowed
Form options