SD card maximum speed?
Hi,
I am about to purchase SD card(s) for my N800 and I was wondering about what is the maximum speed the device is capable of. Sandisk Ultra II supports at least 10MB/s read and 9MB/s write where as Sandisk Extreme III seems to promise at least 20MB/s read/write. In normal use the 10MB/s is most likely more than enough but I was thinking that when used as swap I would like the card to be as fast as possible but then again of the device cannot effectively use the 20MB/s it is waste of money. So my question: have people benchmarked their SD cards in N800? - J |
Re: SD card maximum speed?
Riff-Raff: No, but I can try. I don't have any Ultra cards handy, but will use a shell script when I get home.
|
Re: SD card maximum speed?
|
Re: SD card maximum speed?
Thanks for testing.
It doesn't look too good. At best only about 3MB/s write speed. :( Couple points: You can use the "time" utility for getting accurate duration measurements. Use: "time cp X Y" When using 64M file most (or at least some) of it are probably still in cache when copy finishes. I wonder if there is any good way to bypass caching for testing purposes. Creating file in internal memory time dd if=/dev/zero of=64 bs=1k count=64k 1. try: real 0m 53.52s 2. try: real 0m 53.48s time dd if=/dev/zero of=64 bs=4k count=16k 1. try: real 0m 14.98s 2. try: real 0m 15.02s time dd if=/dev/zero of=64 bs=8k count=8k 1. try: real 0m 14.83s 2. try: real 0m 14.77s time dd if=/dev/zero of=64 bs=16k count=4k 1. try: real 0m 15.58s 2. try: real 0m 15.72s time dd if=/dev/zero of=64 bs=32k count=2k 1. try: real 0m 14.94s 2. try: real 0m 14.80s It seems quite clear from this that SD's block size is 4k. Testing with Transcend 150x card in external slot: time dd if=/dev/zero of=64 bs=4k count=16k 1. try: real 0m 9.86s 2. try: real 0m 11.06s time dd if=/dev/zero of=64 bs=8k count=8k 1. try: real 0m 9.88s 2. try: real 0m 10.13s So write speed is about 6.4MB/s. With bigger block sizes the speed about same withing error margin. Lets try with bigger file size to try to see if cache effects this simple test: time dd if=/dev/zero of=256 bs=64k count=4k 1. try: real 0m 42.93s 2. try: real 0m 42.58s About same speed. How about read speed: On Transcend 150x time cp 256 /dev/null 1st try: 0m 35.13s 2nd try: 0m 34.05s Not much faster: 7.3MB/s Bottom line using very simple DD-write and copy test: Transcend 150x Write speed: 6.4MB/s Read speed: 7.3MB/s - J |
Re: SD card maximum speed?
Found this: http://www.hjreggel.net/cardspeed/
Apparently the best PC readers get about 22MB/s read and 12MB/s write speed from and to Transcend SD 150x 4GB. So if we assume 2GB is no different the n800 seems to be the bottleneck. :( In any case it would be very interesting to see benchmarks with the Sandisk Extreme III. - J |
Re: SD card maximum speed?
Quote:
Code:
sync So you could try something like this (untested! probably you will need bash): Code:
sync; time ( dd if=/dev/zero of=/media/mmc1/64m bs=1024 count=65536; sync ) Code:
sync; time dd if=/dev/zero of=/media/mmc1/64m bs=1024 count=65536; time sync |
Re: SD card maximum speed?
Again replying to myself:
Got results from Sandisk Extreme III: time dd if=/dev/zero of=256 bs=64k count=4k real 0m 34.28s time cp 256 /dev/null real 0m 33.48s Bottom line: Write 7.5MB/s Read 7.6MB/s - J |
Re: SD card maximum speed?
or try
Code:
date ; ...... ; sync ; date Cards marked 150x definitely need high speed mode (50Mhz, normal is 25Mhz). There is no support in kernel for this now but it may be aded in future (probably not in official kernel but custom one). Also please time read speed by first removing an reinserting the card (just to be sure, to flush buffer cache, n880 actually has some spare ram for caching, n770 not) and then time dd if=/dev/mmcblk0p1 of=/dev/null bs=4096 count=10000 this reads 40MB, or bs=8192 reads 80MB |
Re: SD card maximum speed?
It would be a good idea to not use files with content all 0'es. Linux and a lot of UNIX filesystem implementations "caches" content of multiple 0 bytes (at least to a "sector" length) and does not truly copy the 0 bytes from one device to another - but just mark their existence.
Could you please use either /dev/random or generate the file on another machine from /dev/random and use that file ? |
Re: SD card maximum speed?
Hi, could you check CPU utilization while reading/writing in full speed?
|
All times are GMT. The time now is 13:56. |
vBulletin® Version 3.8.8