Laptops :: Poor dd Performance



Guys,

Need a little help with this one. Have a Dell D600 laptop with 2 40GB disk drives (1 internal, 1 in modular bay).  I boot DSL via a USB stick and then use dd to copy the entire primary drive to the modular drive.  Why?  I travel a lot and cannot afford the downtime to reinstall / configure anything.

Problem is that performance of the copy via dd is unacceptably poor.  It now takes around 10 hours to copy hda to hdc.  I have experimented with changing block sizes and also booting DSL to RAM, but no notable improvement.  Here is a little further information.

Maybe someone has had something similar to this.  15 years ago I was a UNIX admin, but in the meantime I have forgotten a hell of a lot.  

root@0[cdrom]# uname -a
Linux box 2.4.26 #1 SMP Sa Apr 17 19:33:42 CEST 2004 i686 unknown

root@0[cdrom]# lscpi
0000:00:00.0 Host bridge: Intel Corp. 82855PM Processor to I/O Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corp. 82855PM Processor to AGP Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #1 (rev 01)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #2 (rev 01)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB (ICH4) USB UHCI #3 (rev 01)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB (ICH4) USB2 EHCI Controller (rev 01)
0000:00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 81)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DBM LPC Interface Controller (rev 01)
0000:00:1f.1 IDE interface: Intel Corp. 82801DBM (ICH4) Ultra ATA Storage Controller (rev 01)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB (ICH4) AC'97 Audio Controller (rev 01)
0000:00:1f.6 Modem: Intel Corp. 82801DB (ICH4) AC'97 Modem Controller (rev 01)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000 M9] (rev 02)
0000:02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
0000:02:01.0 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
0000:02:01.1 CardBus bridge: O2 Micro, Inc. OZ711EC1 SmartCardBus Controller (rev 20)
0000:02:03.0 Network controller: Broadcom Corporation BCM94306 802.11g (rev 03)

root@0[cdrom]# hdparm -tT /dev/hda
/dev/hda:
Timing buffer-cache reads:   1532 MB in  2.00 seconds = 766.00 MB/sec
Timing buffered disk reads:    8 MB in  3.08 seconds =   2.60 MB/sec

root@0[cdrom]# hdparm -tT /dev/hdc
/dev/hdc:
Timing buffer-cache reads:   1528 MB in  2.00 seconds = 764.00 MB/sec
Timing buffered disk reads:    8 MB in  3.07 seconds =   2.61 MB/sec

root@0[cdrom]# time dd if=/dev/hda of=/dev/null bs=512 count=1953126
1953126+0 records in
1953126+0 records out

real 5m28.150s
user 0m0.690s
sys 4m4.080s


root@0[cdrom]# time dd if=/dev/hdc of=/dev/null bs=512 count=1953126
1953126+0 records in
1953126+0 records out

real 5m28.150s
user 0m0.690s
sys 4m4.080s

On my embedded DSL 1.4 /bin/dd is a link to /bin/busybox. Busybox is a nice program to work as multiple programs and save diskspace, but there is a downside. Not every thing works as normal. Command ps doesn't need -ef to show everything. And other commands might work differently.

You could try to download gnu-utils.dsl (I think it is called this) and get the "real" dd. Maybe that works better.

HTH.,

Remco

Remco,

Thanks for the tip.  I have the same link to busybox so I'll try to get the real dd and let you know how it works out.

John

Is dma turned on for your drives?

hdparm -d /dev/hda

should tell you

hdparm -d 1 /dev/hda

should turn it on for most drives if it isn't on already. If it is a really old PC you may have to specify the mode with -X at the same time  (read the man page for more details). I think you can enable dma with the cheatcode dma as well.

more info at wiki about hdparm too that could possibly speed things up for you:
http://damnsmalllinux.org/wiki/index.php/Hdparm%2C_using

Next Page...
original here.