Disk and data transfer rates

All these disks and stuff have me confused about what fast transfer rates are. Here’s some numbers, mostly practical rates, not theoretical. All numbers are Megabits / second. See also the Wikipedia List of device bit rates.

  • 168,000: RAM for an i7-2600 (theoretical) (ref)
  • 10,000: HDMI v1.3
  • 6400: PCI (64 bit, 100MHz)
  • 5000: USB 3.0 (theoretical)
  • 4800: 6.0Gbit SATA
  • 2400: 3.0Gbit SATA
  • 800-4000: SSD drives (ref)
  • 1000: 7200 rpm hard drive disk-to-buffer (ref)
  • 1000: gigabit ethernet
  • 800: IDE, UDMA 5 aka Ultra ATA/100 (ref)
  • 250-480: USB 2.0 hard drive (ref)
  • 100: 100M ethernet
  • 30: fast US home Internet
  • 20: 802.11g wifi (ref)
  • 12: USB 1.0
  • 6: my crappy home DSL
  • 1: AT&T 3G downloads (ref)
  • 0.05: old acoustic modems
Bottom line: USB 2.0 is a little slower than a desktop hard drive. And SATA is significantly faster than a hard drive. I wish I could narrow the SSDs down, I think performance on those things varies quite a bit. My friend Lars just built a RAID 5 array of SSDs that’s showing about 10,000 Mbit/sec.
Some practical tests on my brand new Sandy Bridge server with 7200 RPM disks plugged into SATA/6 and formatted ext4fs. All numbers are Megabits/second
  • 1000: hdparm -t, testing disk read throughput from the platter
  • 110,000: hdparm -T, testing read from RAM cache (ie: never touching SATA or disk)
  • 1088: writing 16 gigs of zeroes
    dd if=/dev/zero of=zeros bs=1M count=16384
  • 440: copying 16 gigs of zeroes on a single drive
    dd if=zeros of=zeros3 bs=1M
  • 872: copying 16 gigs of zeroes from one drive to another. Parallelism!
    dd if=zeros2 of=/tmp/zeros bs=1M
  • 570: rsyncing 300 gigs of files from a FAT32 drive over USB-3 to an SATA/6 drive.
  • 20,000: writing 1 gig of zeroes. ext4fs must fully cache this before commit
    dd if=/dev/zero of=zeros5 bs=1M count=1024
  • 88: creating a file of random bits from /dev/urandom. I had no idea that driver was that slow.
These tests are all for big files. Linux gets a lot slower when dealing with lots of little files. Running rsync from a USB 2 disk copying to an SATA disk I’d see a factor of 10 difference in disk throughput between giant files and lots of tiny files.