如何确定 dd 命令的最佳字节大小

Jam*_*s T 24 linux optimization hard-drive clone

我知道做一个dd if=/dev/hda of=/dev/hdb深硬盘复制。我听说人们可以通过使用该bs选项增加一次读取和写入的字节数(默认值:512)来加快进程。

我的问题是:

什么决定了从硬盘驱动器复制的理想字节大小?

为什么这决定了理想的字节大小?

use*_*517 23

正如Chris S此答案中所写,最佳块大小取决于硬件。根据我的经验,它总是大于默认的 512 字节。如果您使用原始设备,则覆盖的文件系统几何结构将不起作用。我使用下面的脚本来帮助“优化”dd 的块大小。

#!/bin/bash
#
#create a file to work with
#
echo "creating a file to work with"
dd if=/dev/zero of=/var/tmp/infile count=1175000

for bs in  1k 2k 4k 8k 16k 32k 64k 128k 256k 512k 1M 2M 4M 8M 
 
do
        echo "Testing block size  = $bs"
        dd if=/var/tmp/infile of=/var/tmp/outfile bs=$bs
        echo ""
done
rm /var/tmp/infile /var/tmp/outfile
Run Code Online (Sandbox Code Playgroud)

  • 在 OS X 中,“1M...8M”应该小写为“1m...8m”。 (4认同)
  • @lain `/dev/zero` 已生成,无需从磁盘读取;你可以 `dd if=/dev/zero ibs=1M count=32 obs=$bs of=/var/tmp/outfile` @olivier-dulac 好吧,`dd` 已经打印了速度;我不认为“time”(或“/usr/bin/time”)添加任何有价值的信息。 (2认同)