Does the “bs” option in “dd” really improve the speed?

What you have done is only a read speed test. if you are actually copying blocks to another device you have pauses in the reading while the other device is accepting the data you want to write, when this happens you can hit rotational latency issues on the read device (if it’s a hard disk) and so it’s often significantly faster to read 1M chunks off the HDD as you come up against rotational latency less often that way.

I know when I’m copying hard disks I get a faster rate by specifying bs=1M than by using bs=4k or the default. I’m talking speed improvements of 30 to 300 percent. There’s no need to tune it for absolute best unless it’s all you do every day. but picking something better than the default can cut hours off the execution time.

When you’re using it for real try a few different numbers and send the dd process a SIGUSR1 signal to get it to issue a status report so you can see how it’s going.

✗ killall -SIGUSR1 dd
1811+1 records in
1811+1 records out
1899528192 bytes (1.9 GB, 1.8 GiB) copied, 468.633 s, 4.1 MB/s

Leave a Comment