2

I installed ubuntu desktop version 11.04 on the little NAS box I'm building. I didn't purchase HDD yet, so I tried to install ubuntu on the SDHC card. But it's terribly slow! I would expect it to be faster than normal 5400rpm hdd, since seek times on any flash memory is low.

Pc details: 2gb ddr3 ram, 1.8 dual core atom, asrock d525 mobo, and 8gb SD card. In theory this should be more than enough for ubuntu.

But, few things worry me. First of all I believe I connected card reader to usb port. So that would limit speed. In the face of the fact that reader resides on usb, is this slowness expected?

I ran ubuntu test suit, and on hdd it reported reading speed 800mb/s. How should I check device speed? Is there any other way?

4 Answers 4

3

The USB 2.0 speed is probably not even the bottleneck, but most SD cards and card readers are really slow.

You could try to use palimpsest to measure the speed, although when I tried it with an SD card it said that the drive is too slow to even measure it.

2
  • 1
    Read speed gave me around 20mb/s And write was 15mb/s hm, seems ok... how does normal hdd compare? I remember my 5400 doing 50mb/s r/w? not sure.
    – user25389
    Oct 7, 2011 at 22:41
  • 20 and 15 MB/s are better than I would have guessed. Here's a benchmark for a HDD from last year. Palimpsest shows 95 to 100 MB/s read speed, although I'm not sure how idle the drives were.
    – elmicha
    Oct 8, 2011 at 0:05
2

Hard drives just about always have caches, typically 8 GB but often much larger.

They have both read-ahead and write-behind caches. The read-ahead will read the next few blocks after a a block was just read in anticipation of them being read in the near future, but will remove them from the cache if they don't get read before the cache fills up with other block.

Your SDHC card probably has no cache at all. While it would benefit from the fast seek times, you would be seeing the direct read and write behavior of the flash.

Writing flash is very slow because it must be erased and then written to in a second pass.

Flash wears out when you write to it too many times. Once you've done so it won't store data reliably. To prolong the life, wear leveling is used in which the physical sector used to store a logical sector number constantly changes. Thus there is effectively a filesystem underneath the filesystem that Linux actually sees.

The wear leveling is implemented by the hardware of your SDHC card and may not be implemented with very fast circuitry.

Flash can be made very, very fast as with solid state drives with SATA or SAS (Serial Attached SCSI) interfaces, but I expect those drives do have large RAM caches as well as faster wear leveling hardware.

3
  • 8 GB cache is far too high. You probably meant 8 MB.
    – Lekensteyn
    Oct 8, 2011 at 10:43
  • Lekenstyn, you are correct. I should not drink and post. Oct 8, 2011 at 10:47
  • This makes sense... Thanks for this explanation, I was thinking the same... but you confirmed my theory :) I did implement few changes to decrease wear. Editing out fstab etc.
    – user25389
    Oct 9, 2011 at 7:58
1

SD cards are rated for different speeds. If you don't still have the packaging for your card, you could look it up at the manufacturer's website.

I recently bought a 16 GB MicroSDHC card to run Linux on my Gumstix Overo Fire ARM board. It's a very high-speed card as they go, I think it was called a Class 10 or some such. That's a lot bigger card that your typical ARM Linux requires but I wanted lots of room for my own data.

Are you making your NAS out of a PC motherboard? Or did you buy a ready-made NAS? In either case, your USB port might only be USB 1.1. If so it will work for storage, but it will be quite slow. I would expect all of today's motherboards to be either USB 2.0 or 3.0, but if it's a NAS you bought that you're not making out of PC components, the chances are pretty good that it's a 1.1 port just meant for attaching a keyboard and mouse.

1
  • I made it myself. Please see the details of the PC. I actually wrote down the hardware. I used Asrock D525PV3 mobo, with dual core atom, all usb on this mobo are 2.0. Ready made NAS takes all the fun out of the affair :)
    – user25389
    Oct 9, 2011 at 7:54
0

Even if your NAS has a USB 2 or USB 3 port, your card reader might only have a USB 1.1 port. If that were the case it would be very slow. You could speed it up by using a USB 2 or 3 card reader.

However I've bought two card readers, and I don't recall the USB version being specified on the packaging for either of them. A reader from a better-regarded vendor probably would specify the USB revision.

Edit: The box for my Dynex DX-CRMN1 says that it has a USB 2.0 interface. My Bad.

1
  • Card reader came with the case I bought off ebay from HongKong :) No info about it specified anywhere!... I used commands under ubuntu to somehow gauge the speed. I've no other way atm of knowing if it's usb 2.0 o 1.1. P.s. One thing I noticed is that it connects to usb port on mobo leaving out two pins. It doesn't sit fully. hm...
    – user25389
    Oct 9, 2011 at 7:56

You must log in to answer this question.